STRUTS2获得作用域、参数、响应对象简单说明.doc_第1页
STRUTS2获得作用域、参数、响应对象简单说明.doc_第2页
STRUTS2获得作用域、参数、响应对象简单说明.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

STRUTS2获得作用域、参数、响应对象简单说明在struts1中,获得到系统的request或者session对象非常方便,都是按照形参传递的,但是在struts2中,request和session等都被隐藏了 主要使用的类:RequestMap,SessionMap,ApplicationMap, AttributeMap(可以获得所有作用域值), 接口:requestAware,ServletRequestAware,SessionAware,ApplicationAware分别实现不同的接口就可以得到上边相应类的对象,需要强转,还有ServletResponseAware接口获得响应对象,ParameterAware获得所有请求参数 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 (); BActionContext ct= ActionContext.getContext() HttpServletRequest request= (HttpServletRequest)ct.get(ServletActionContext. HTTP_REQUEST ); C. ActionContext.getContext().put(HTTP_REQUEST, request); or ActionContext context = ActionContext.getContext(); HttpServletRequest request = (HttpServletRequest)context.get(StrutsStatics.HTTP_REQUEST); 获得session对象: 在Struts2中底层的session都被封装成了Map类型,我们称之为SessionMap,而平常我们所说的session则是指HttpSession对象,具体的获得方法如下所示。 AMap session=ActionContext.getSession(); BMap session=(Map)ActionContext.getContext().get(ActionContext.SESSION); C可以先获得请求,然后通过请求获得HttpSession 得到这个SessionMap之后我们就可以对session进行读写了,如果我们想得到原始的HttpSession可以首先得到HttpServletRequest对象,然后通过request.getSession()来取得原始的HttpSession对象。一般情况下SessionMap已经可以完成所有的工作,我们不必再去碰底层的session了。 注销: if (session instanceof org.apache.struts2.dispatcher.SessionMap) try (org.apache.struts2.dispatcher.SessionMap) session).invalidate(); catch (IllegalStateException e) logger.error(msg, e); 获得响应方式: A 通过Ioc方式,实现ServletResponseAware接口 B ServletActionContext.getResponse(); C (HttpServletResponse)ServletActionContext.get(ServletActionContext.HTTP_RESPONSE) 使用常量Key进行获取可以得到所有作用域对象及parameter,response对象。利用的就是Serv letActionServlet实现的接口:StrutsStatics和父类ActionContext中的常量key. 获得请求参数: A. 通过Ioc方式:实ParameterAware接口。 Action中:private Map map /重写接口方法 Public void setParameters(Map parameters) This.map= parameters; B. Map parameters = ActionContext.getContext().getParameters(); C. ActionContext.getContext().get(ActionContext. pARAMETERS); 获得application a. 通过Ioc方式:实ApplicationAware接口。 Action中:private ApplicationMap map /重写接口方法 Public void setApplication(Map application) This.map= application; b.ActionContext.ge

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论