博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Struts2中访问HttpServletRequest和HttpSession
阅读量:6249 次
发布时间:2019-06-22

本文共 4214 字,大约阅读时间需要 14 分钟。

hot3.png

关键字: struts2 httpservletrequest httpsession

      在没有使用Struts2之前,都习惯使用HttpServletRequest和HttpSession对象来操作相关参数,下面介绍一下在Struts2中访问隐藏的HttpServletRequest和HttpSession的两种方法:

1.非Ioc方式

这种方式主要是利用了com.opensymphony.xwork2.ActionContext类以及ora.apache.struts2.ServletActionContext类,具体的方法如下所示。

获得request对象:

1)HttpServletRequest request = ServletActionContext.getRequest ();

2).ActionContext ct= ActionContext.getContext();

   HttpServletRequest request=

(HttpServletRequest)ct.get(ServletActionContext.HTTP_REQUEST);

获得session对象:

在Struts2中底层的session都被封装成了Map类型,我们称之为SessionMap,而平常我们所说的session则是指HttpSession对象,具体的获得方法如下所示。

1).Map session=ActionContext.getSession();

2).Map session=(Map)ActionContext.getContext().get(ActionContext.SESSION);

得到这个SessionMap之后我们就可以对session进行读写了,如果我们想得到原始的HttpSession可以首先得到HttpServletRequest对象,然后通过request.getSession()来取得原始的HttpSession对象。一般情况下SessionMap已经可以完成所有的工作,我们不必再去强行使用底层的session了。

2.IoC方式

这种方式相对来说变化就比较少了,下面给出代码大家自己看吧:

import javax.servlet.http.HttpServletRequest;   import javax.servlet.http.HttpServletResponse;   import javax.servlet.http.HttpSession;     import org.apache.struts2.interceptor.ServletRequestAware;   import org.apache.struts2.interceptor.ServletResponseAware;   import org.apache.struts2.interceptor.SessionAware;     import com.opensymphony.xwork2.ActionContext;   import com.opensymphony.xwork2.ActionSupport;     publicclass IoCServlet extends ActionSupport implements SessionAware, ServletRequestAware, ServletResponseAware {       private String message;       private Map att;       private HttpServletRequest request;       private HttpServletResponse response;                  public String getMessage() {           return message;               }              publicvoid setSession(Map att) {           this.att = att;       }              publicvoid setServletRequest(HttpServletRequest request) {           this.request = request;       }              publicvoid setServletResponse(HttpServletResponse response) {           this.response = response;       }              @Override      public String execute() {                   att.put("msg", "Hello World from Session!");                      HttpSession session = request.getSession();                      StringBuffer sb =new StringBuffer("Message from request: ");           sb.append(request.getParameter("msg"));           sb.append("
Response Buffer Size: ");           sb.append(response.getBufferSize());           sb.append("
Session ID: ");           sb.append(session.getId());                      message = sb.toString();           return SUCCESS;       }   }

 

import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse;  import javax.servlet.http.HttpSession;    import org.apache.struts2.interceptor.ServletRequestAware;  import org.apache.struts2.interceptor.ServletResponseAware;  import org.apache.struts2.interceptor.SessionAware;    import com.opensymphony.xwork2.ActionContext;  import com.opensymphony.xwork2.ActionSupport;    publicclass IoCServlet extends ActionSupport implements SessionAware, ServletRequestAware, ServletResponseAware {      private String message;      private Map att;      private HttpServletRequest request;      private HttpServletResponse response;                public String getMessage() {          return message;              }            publicvoid setSession(Map att) {          this.att = att;      }            publicvoid setServletRequest(HttpServletRequest request) {          this.request = request;      }            publicvoid setServletResponse(HttpServletResponse response) {          this.response = response;      }            @Override      public String execute() {                  att.put("msg", "Hello World from Session!");                    HttpSession session = request.getSession();                    StringBuffer sb =new StringBuffer("Message from request: ");          sb.append(request.getParameter("msg"));          sb.append("
Response Buffer Size: ");          sb.append(response.getBufferSize());          sb.append("
Session ID: ");          sb.append(session.getId());                    message = sb.toString();          return SUCCESS;      }  }

转载于:https://my.oschina.net/u/1462795/blog/305094

你可能感兴趣的文章
php构造函数创建对象,7.10 构造函数来创建对象
查看>>
oracle解密后台包,oracle9i加密解密包用法
查看>>
oracle数据库nmon日志在哪,oracle技术之nmon使用说明
查看>>
oracle10g实例修改表空间,oracle10g建表空间和修改oracle字符和删除表空间和用户(加 标注)...
查看>>
linux命令语法规则,Linux系统tar命令怎么使用语法规则
查看>>
linux查看服务器静态路由配置,配置Linux静态路由和配置IP
查看>>
linux应用程序使用时钟中断,Linux时钟中断(2.6.23)(三)
查看>>
win7读取linux硬盘序列号,Windows 下获取硬盘序列号
查看>>
linux音频设备接口,OSS--跨平台的音频接口简介
查看>>
华为网卡linux驱动安装,Linux Nvidia显卡驱动安装
查看>>
linux sql撤销,取消请求的sql语句
查看>>
c语言学习 二维指针,二维数组和指针(C语言)
查看>>
图像压缩算法构造最优解c语言,C语言与程序设计第12章递归.ppt
查看>>
c语言飞机源代码,C语言写的飞机源码
查看>>
C语言 如果某个数大于10 归零,C:当指针实际指向某个东西时,函数继续接收归零指针(示例代码)...
查看>>
c c 语言项目实战 pdf,[计算机]C实战项目.pdf
查看>>
linux中solr创建core,Solr6.6 创建core
查看>>
android的边框阴影,android 自定义shape 带阴影边框效果
查看>>
android centos 的编码,Centos 安装 android sdk
查看>>
反编译android 状态栏沉浸,手把手教你傻瓜式开启状态栏沉浸模式
查看>>