<
constant
name="struts.devmode"
value="true"
/>
在servlet中可以通過
servlet api
來獲取session
,在struts中如何獲取
session呢?
解析:將使用者名稱放入session 兩種方案
1. 與
servlet api
解耦的訪問方式
--->01.使用
actioncontext
類獲取servletapi
物件對應的
map物件
--->02.struts2向
action
注入servletapi
物件對應的
map物件
2. 與
servlet api
耦合的訪問方式
解耦方式:
方案一:
對servlet api進行封裝 ,借助
actioncontext
提供了三個map物件訪問
request
、session
、作用域
通過actioncontext類獲取這三個
map物件
object get("request")
map getsession()
案例:登陸成功後,記錄使用者名稱到session中,登陸失敗,跳會登陸頁面
步驟一:書寫action
方案二:向action中注入
servletapi
物件對應的
map物件
步驟一:書寫action
耦合方式:
方式一:通過
actioncontext
的子類servletactioncontext實現
方式二:向action例項注入
servlet api物件
在struts2中,提供了另外一種直接使用域物件的方式,就是讓
action
視線modeldriven
介面。modeldriven
讓你可以直接操作程式中的領域物件,允許你在
web層和業務邏輯層使用相同的物件。
01.action類
public
classloginactionextendsactionsupportimplementssessionaware,modeldrivenelse{
returnlogin
;/**
* 引數當中的就是session物件
*@parammap */
public
voidsetsession(mapmap) {
this.map=map;
publicmapgetmap() {
returnmap;
public
voidsetmap(mapmap) {
this.map = map;
publicuser getuser() {
returnuser;
public
voidsetuser(user user) {
this.user = user;
publicuser getmodel() {
returnuser;
2、login.jsp頁面
<
s:form
method="post"
action="login"
>
請輸入使用者名稱:
<
s:textfield
name="name"
>
s:textfield
>
<
br/>
<
s:textfield
name="password"
>
s:textfield
><
br/>
<
s:submit
value="登陸"
>
s:submit
>
s:form
>
程式設計的解耦和耦合
耦合 coupling 表示兩個子系統 或類 之間的關聯程度。當乙個子系統 或類 發生變化時對另乙個子系統 或類 的影響很小,則稱它們是鬆散耦合的 反之,如果變化的影響很大時,則稱它們是緊密耦合的。耦合的強弱取決於模組間接間的複雜性 引用模組的位置和資料的傳送方式等。解耦就是解除耦合關係。模組間有依...
Struts與Servlet API解耦的訪問方式
非ioc 方式 1 struts2 對httpservletrequest 和servletcontext 進行了封裝,構造了三個 map物件來替代這三種物件 public class loginaction implements action 2 想要在 action 類中直接使用 這些物件 pu...
程式中的耦合與解耦學習(二) 內聚性
內聚性 cohesion 也稱為內聚力,是一軟體度量,是指機能相關的程式組合成一模組的程度,或是各機能凝聚的狀態或程度。是結構化分析的重要概念之一。量測內聚性的方式很多,有些方法是由分析源 得到非量化的結果,有些方法則是檢查源 的文字特徵,以得到內聚性的量化分數。內聚性是屬於順序式的量測量,一般會以...