Struts使用用解耦合的方式獲取Session

2021-08-09 19:07:45 字數 2718 閱讀 1259

<

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 也稱為內聚力,是一軟體度量,是指機能相關的程式組合成一模組的程度,或是各機能凝聚的狀態或程度。是結構化分析的重要概念之一。量測內聚性的方式很多,有些方法是由分析源 得到非量化的結果,有些方法則是檢查源 的文字特徵,以得到內聚性的量化分數。內聚性是屬於順序式的量測量,一般會以...