STRUTS2获得session和request
在struts1中,获得到系统的request或者session对象非常方便,都是按照形参传递的,但是在struts2中,request和session都被隐藏了
struts提供两种方式访问session和request,其中比较常用的是利用SPRING里面所说的IOC即控制反转
IOC方式:
action类实现ServletRequestAware接口,并新建一个HttpServletRequest request
public class UserLoginAction extends ActionSupport implements ServletRequestAware{
public void setServletRequest(HttpServletRequest request) {
this.request=request;
}
然后可以生成的request得到对象,如request.getRemoteAddr()
action类实现SessionAware接口,并创建一个MAP对象session
public class UserLoginAction extends ActionSupport implements ServletRequestAware,SessionAware{
public void setServletRequest(HttpServletRequest request) {
this.request=request;
}
public void setSession(Map session) {
this.session=session;
}
非IOC方式
非Ioc方式
这种方式主要是利用了com.opensymphony.xwork2.ActionContext类以及org.apache.struts2.ServletActionContext类,具体的方法如下所示。
获得request对象:
A . HttpServletRequest request = ServletActionContext.getRequest ();
B.ActionContext ct= ActionContext.getContext()
HttpServletRequest request=
(HttpServletRequest)ct.get(ServletActionContext. HTTP_REQUEST );
获得session对象:
在Struts2中底层的session都被封装成了Map类型,我们称之为SessionMap,而平常我们所说的session则是指HttpSession对象,具体的获得方法如下所示。
A.Map session=ActionContext.getSession();
B.Map session=(Map)ActionContext.getContext().get(ActionContext.SESSION);
得到这个SessionMap之后我们就可以对session进行读写了,如果我们想得到原始的HttpSession可以首先得到HttpServletRequest对象,然后通过request.getSession()来取得原始的HttpSession对象。一般情况下SessionMap已经可以完成所有的工作,我们不必再去碰底层的session了。
分享到:
相关推荐
struts2 获取request session对象
struts2中request和session的获取
struts2访问application、session以及request等web资源的示例代码
Struts2的Action中获得request response session几种方法
struts1中使用request、response都是方法自带的,而struts2中的request、response、session都被隐藏的了,该带代码文档会清晰的让你明白struts2中request、response在自定义方法中如何随意使用
本文讲述了serlvet API无耦合的方式
一个Demo告诉你struts2如何创建 request response session application
NULL 博文链接:https://aimilin6688.iteye.com/blog/1279546
从开发者角度看,就是说需要显示给用户的数据可以直接从Action中获取,而不像Struts1.x那样,必须把相应的Bean存到Page、Request或者Session中才能获取。Struts1.x 必须继承org.apache.struts.action.Action或者其...
NULL 博文链接:https://fish198398.iteye.com/blog/785319
2.Struts2和Struts1.x的差别, 最明显的就是Struts2是一个pull-MVC架构。 这是什么意思呢?从开发者角度看, 就是说需要显示给用户的数据可以直接从Action中获取, 而不像Struts1.x那样,必须把相应的Bean存到...
RequestMap,SessionMap,ApplicationMap, AttributeMap. struts提供两种方式访问session,request ,response,ActionContext 使用。 获得作用域及参数响应对象及三种符号说明
2.修改题目1,将提交的“用户名信息”保存到request中,“密码信息”保存到session中,而“用户是否已经注册的判定信息”保存在application中,并在显示页面中,分别从request、session和application中获取数据并...
在Struts2中底层的session都被封装成了Map类型,我们称之为SessionMap,而平常我们所说的session则是指HttpSession对象,具体的获得方法如下所示。 A.Map session=ActionContext.getSession(); B.Map session=(Map...
将struts2的知识进行综合整理,以达到全面复习。 例如:一、Struts2标记库中迭代标签iterator的()方法是判断当前元素是否是第偶数个元素。 A.isOdd B.isLast C.isFirst D.isEven 二、假设在session中存在名为...
session = ServletActionContext.getRequest().getSession(); 例: public String findAll(){ HttpSession session = ServletActionContext.getRequest().getSession(); list = userService.find(); session....
Struts2+Mysql实现CURD,stuts2中使用servlet中Request,session,context对象
传值问题 在其中取值的方法有两种: #+映射名, 直接写映射名。 1.不加#的方式获取(所有对象放置在栈顶): a.XXaction中有该字段的成员变量. b.XXaction中该对象返回个给...页面struts2标签保存的数据也需要使用#来获取
在Web应用程序开发中,除了将请求参数自动设置到Action的字段中,我们往往也需要在Action里直接获取请求(Request)或会话 (Session)的一些信息, 甚至需要直接对JavaServlet Http的请求(HttpServletRequest),响应...