struts获取request等对象
来源:互联网 发布:淘宝兼职 编辑:程序博客网 时间:2024/05/16 10:36
有时我们需要用到Request, Response, Session,Page, ServletContext这些我们以前常用的对象,那么在Struts2中怎么样使用到这些对象呢。
方式1(和servlet API耦合)
获取request实例:
HttpServletRequest request = ServletActionContext.getRequest();
获取session实例:
HttpSession session = ServletActionContext.getRequest().getSession();
获取application实例:
ServletContext application = ServletActionContext.getServletContext();
方式2:(和servlet API耦合)
获取request实例:
ActionContext context = ActionContext.getContext(); HttpServletRequest request = (HttpServletRequest) context.get(ServletActionContext.HTTP_REQUEST);
间接访问1
//向Session中放
ActionContext.getContext().getSession().put("wdpc", "Session中的WDPC");
//向request中放
ActionContext.getContext().put("wdpc","request中的WDPC");
//向application中放
ActionContext.getContext().getApplication().put("wdpc", "Application中的WDPC");
取值方式:
ActionContext.getContext().getSession().get("wdpc");
间接访问2
Struts2中提供了一个静态类,他里面的方法可以获取到我们的HttpServletResponse, HttpServletRequest。
虽然Struts2提供了ActionContext来访问request等对象,但是这种方式毕竟不能直接获取request等实例,为了在Action中直接访问这些实例,Struts2还提供了一系列接口
ServletContextAware 实现此接口后,可以取得ServletContext
ServletRequestAware 实现此接口后,可以取得HttpServletRequest
ServletResponseAware 实现此接口后,可以取得HttpServletResponse
SessionAware 实现此接口后,可以取得HttpSession,注意,这里有点特殊,取得的是一个Map<String,Object> session,拦截器负责将session中存储的键值进行解析,并一一对应.
所以我们通常的做法是:
public class BaseAction implements ServletResponseAware, ServletRequestAware,
SessionAware {
protected HttpServletResponse response;
protected HttpServletRequest request;
protected Map<String, Object> session;
public void setServletResponse(HttpServletResponse response) {
this.response = response;
}
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
public void setSession(Map<String, Object> session) {
this.session = session;
}
public HttpServletResponse getResponse() {
return response;
}
public void setResponse(HttpServletResponse response) {
this.response = response;
}
public HttpServletRequest getRequest() {
return request;
}
public void setRequest(HttpServletRequest request) {
this.request = request;
}
public Map<String, Object> getSession() {
return session;
}
}
为了让BaseAction能有验证的功能,并且不能被实例化,开发中我们会这样做:
public abstract class BaseAction extends ActionSupport implements
ServletResponseAware, ServletRequestAware, SessionAware
然后让我们每个模块的Action来继承这个BaseAction类,然后我们就可以在Action中直接使用Servelt的API了.
- struts获取request等对象
- struts中获取request和session对象
- Struts数据处理(获取request对象)
- dwr中获取session、request等对象
- freemarker获取request,session等 freemarker结合struts操作session
- Struts中怎么获取request和response对象
- 使用struts的时候获取request和response对象
- struts之Action中获取request、response对象的方法
- struts之Action中获取request、response对象的方法
- struts之Action中获取request、response对象的方法
- struts之Action中获取request、response对象的方法
- struts之Action中获取request、response对象的方法
- struts之Action中获取request、response对象的方法
- struts之Action中获取request、response对象的方法
- Struts的Action中获取Request和response对象
- struts之Action中获取request、response对象的方法
- struts获取request和response对象的方法
- struts之Action中获取request、response对象的方法
- ubuntu中txt中文文本乱码最简单解决方法
- The Sound of Music 音乐之声英语美文English
- ubuntu中更改root用户密码
- myeclipse出现异常
- watir识别控件
- struts获取request等对象
- HDU1053--哈夫曼树
- hdu1875(MST)(prim)
- hdu 4365 瞎涂颜色 数论
- Linux tar命令
- 编程之美---算法真的很重要
- 在eclipse中使用hibernate和QBC及注意事项-mysql篇
- 数据结构大总结系列之红黑树
- 装饰者模式学习