分享

struts2.x_HttpRequest对象

 怀旧妞妞 2010-10-18

JAVA获得request.session.Context等对象:
一非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了
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; 
}

 

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多