`
yangzhibin_java
  • 浏览: 50873 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

struts2 获取request、session的方法

阅读更多

一,获取方式:

从Servlet容器中获取的方法
与Servlet容器无关的获取方法

IoC方式
非Ioc方式

 

二,获取方法

  2.1 与servlet无关:

    2.1.1 非IoC模式

ActionContext context ;//该方法还可以取得值栈(getValueStack()),使用push(obj)往值栈中放数据
Map request ;
Map session ;
Map application ;

//以下初始化方法要放在方法中
context = ActionContext.getContext();

request = (Map)context.get("request");//获取request
session = context.getSession();//获取session
application = context.getApplication();//获取application

request.put("req", "request属性");
session.put("ses", "session属性");
application.put("app", "application属性");
 
<!--jsp中取值-->
request属性接受:<s:property value="#request.req"/>${requestScope.req}
session属性接受:<s:property value="#session.ses"/>${sessionScope.ses}
application属性接受:<s:property value="#application.app"/>${applicationScope.app}

    2.1.2  IoC模式

//实现接口
public class LoginAction extends ActionSupport implements RequestAware,SessionAware,ApplicationAware

Map request ;
Map session ;
Map application ;

public void setRequest(Map request) {
		this.request = request;
}
public void setSession(Map session) {
	this.session = session;
}
public void setApplication(Map application) {
	this.application = application;
}	 

 2.2 与servlet有关

    2.2.1 非IoC模式

HttpServletRequest request;
HttpSession session ;
ServletContext application;

request = ServletActionContext.getRequest();//获取request
session = request.getSession();
application = ServletActionContext.getServletContext();//获取application

request.setAttribute("req", "request属性111");
session.setAttribute("ses", "session属性111");
application.setAttribute("app", "application属性111");

    2.2.1 IoC模式

//实现接口
public class LoginAction extends ActionSupport implements ServletRequestAware,ServletContextAware


HttpServletRequest request;
ServletContext application; 


public void setServletRequest(HttpServletRequest request) {
	this.request = request;
}
public void setServletContext(ServletContext application) {
	this.application = application;
}
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论
1 楼 thinkingmysky 2011-09-07  
比如说login.action?params=123.这个params是在LoginAction类里面没有对应的属性和get、set方法的,因为这个只是临时使用!

这里就有一个很严重的问题,Struts2的Action根本就不能实现很好的解耦,对于与servlet无关的的获取客户端的request里面的params的ActionContext.getContext().get("request") 或者 实现这些所谓的RequestAware,SessionAware,ApplicationAware接口也根本无法获取获取URL后面直接跟的参数。

我已经测试了好多边了!

请问楼主是这样的么?

相关推荐

Global site tag (gtag.js) - Google Analytics