Struts 2获得request,response,session对象
来源:互联网 发布:极客学院python视频 编辑:程序博客网 时间:2024/05/16 23:34
很多时候我的同事会问我:“如果我要取得Servlet API中的一些对象,如request、response或session等,应该怎么做?这里的execute不像Struts 1.x的那样在参数中引入。”开发Web应用程序当然免不了跟这些对象打交道。在Strutx 2.0你可以有两种方式获得这些对象:非IoC(控制反转Inversion of Control)方式和IoC方式。
非IoC方式
要获得上述对象,关键Struts 2.0中com.opensymphony.xwork2.ActionContext类。我们可以通过它的静态方法getContext()获取当前Action的上下文对象。另外,org.apache.struts2.ServletActionContext作为辅助类(Helper Class),可以帮助您快捷地获得这几个对象。
- HttpServletRequest request = ServletActionContext.getRequest();
- HttpServletResponse response = ServletActionContext.getResponse();
- HttpSession session = request.getSession();
如果你只是想访问session的属性(Attribute),你也可以通过ActionContext.getContext().getSession()获取或添加session范围(Scoped)的对象。
IoC方式
要使用IoC方式,我们首先要告诉IoC容器(Container)想取得某个对象的意愿,通过实现相应的接口做到这点。具体实现,请参考例6 IocServlet.java。
packagetutorial;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.http.HttpSession;
importorg.apache.struts2.ServletActionContext;
importcom.opensymphony.xwork2.ActionContext;
importcom.opensymphony.xwork2.ActionSupport;
publicclassNonIoCServletextendsActionSupport{
privateString message;
public String getMessage() {
returnmessage;
}
@Override
public String execute() {
ActionContext.getContext().getSession().put( "msg","Hello World from Session!");
HttpServletRequest request =ServletActionContext.getRequest();
HttpServletResponse response =ServletActionContext.getResponse();
HttpSession session =request.getSession();
StringBuffer sb =newStringBuffer("Message from request:");
sb.append(request.getParameter( "msg"));
sb.append( "<br>Response Buffer Size: ");
sb.append(response.getBufferSize());
sb.append( "<br>Session ID: ");
sb.append(session.getId());
message =sb.toString();
returnSUCCESS;
}
}
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.http.HttpSession;
importorg.apache.struts2.ServletActionContext;
importcom.opensymphony.xwork2.ActionContext;
importcom.opensymphony.xwork2.ActionSupport;
publicclassNonIoCServletextendsActionSupport{
}
例6 classes/tutorial/NonIoCServlet.java
packagetutorial;
importjava.util.Map;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.http.HttpSession;
importorg.apache.struts2.interceptor.ServletRequestAware;
importorg.apache.struts2.interceptor.ServletResponseAware;
importorg.apache.struts2.interceptor.SessionAware;
importcom.opensymphony.xwork2.ActionContext;
importcom.opensymphony.xwork2.ActionSupport;
publicclassIoCServletextendsActionSupportimplementsSessionAware, ServletRequestAware, ServletResponseAware{
privateString message;
privateMap att;
privateHttpServletRequest request;
privateHttpServletResponse response;
public String getMessage() {
returnmessage;
}
publicvoidsetSession(Map att){
this.att=att;
}
publicvoidsetServletRequest(HttpServletRequest request){
this.request=request;
}
publicvoidsetServletResponse(HttpServletResponse response){
this.response=response;
}
@Override
public String execute() {
att.put( "msg","Hello World from Session!");
HttpSession session =request.getSession();
StringBuffer sb =newStringBuffer("Message from request:");
sb.append(request.getParameter( "msg"));
sb.append( "<br>Response Buffer Size: ");
sb.append(response.getBufferSize());
sb.append( "<br>Session ID: ");
sb.append(session.getId());
message =sb.toString();
returnSUCCESS;
}
}
importjava.util.Map;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.http.HttpSession;
importorg.apache.struts2.interceptor.ServletRequestAware;
importorg.apache.struts2.interceptor.ServletResponseAware;
importorg.apache.struts2.interceptor.SessionAware;
importcom.opensymphony.xwork2.ActionContext;
importcom.opensymphony.xwork2.ActionSupport;
publicclassIoCServletextendsActionSupportimplementsSessionAware, ServletRequestAware, ServletResponseAware{
}
例6 classes/tutorial/IoCServlet.java
转自:http://blog.sina.com.cn/s/blog_4548a53d0100kfco.html
- Struts 2获得request,response,session对象
- 告诉你如何获得(struts2)request response session 对象
- struts2的action中获得request response session 对象
- 如何获得struts2的request response session 对象
- struts2 获得request,response,session
- Struts 2 中对 request、response、session的获取
- Struts学习笔记(三)struts2中获得request、response和session的三种方法
- DWR中获得request,response,session
- struts2 action中获得session request response
- struts2 中获得request、response 和session
- Action里面获得request response session
- struts2中获得request、response和session
- struts2中获得request、response和session
- Struts2 Action中获得Request,Response,Session对象的几种常用方法
- 在dwr中获得request、response对象
- 在dwr中获得request、response对象
- Struts 2 访问session request application 对象的方式
- Struts 2 访问session request application 对象的方式
- 在MinGW下编译ffmpeg
- 【OpenCV入门指南】第八篇 灰度直方图
- javascript 冒泡
- 简明 Vim 练级攻略
- 黑马程序员_java集合框架
- Struts 2获得request,response,session对象
- 状态模式
- sd卡分析
- 新建oracle的实例
- vold NetlinkManager
- 字符编码简介:ASCII,Unicode,UTF-8,GB2312
- 17周项目3-有相同数字?
- 黑马程序员_java泛型
- 对oracle 触发器的一些见解