Struts 2 的Action中如何获取request、response、session、application等web元素(1)
来源:互联网 发布:java 接口传递文件流 编辑:程序博客网 时间:2024/05/22 14:23
package com.lx.action;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.StrutsStatics;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionContext;
public class ShowAction implements
SessionAware,RequestAware,ServletRequestAware,ApplicationAware {
//组合list对象,只要放到这里就会自动绑定list
private List<Object> list ;
//通过注入获得 四大属性范围,推荐 implements SessionAware,RequestAware,ServletRequestAware,ApplicationAware
//实现这些接口后必须覆盖其接口的setter方法
private Map session;
private Map map_request;
private HttpServletRequest request;
private Map application;
public String execute(){
System.out.println("进了action了===list");
//调用service 得到一个集合
//绑定集合
list = new ArrayList<Object>();
list.add("aa");
list.add("bb");
list.add("cc");
/* 获取四大属性范围总的来说可分为两大方式:
* 第一:与Servlet API解耦的访问方式
* 第二:与Servlet API耦合的访问方式.
* 推荐使用第一种即通过注入获取
*/
//第一种:与Servlet API解耦的访问方式
//1、使用ActionContext类的 静态方法获得
Map map_Session = ActionContext.getContext().getSession();
map_Session.put("mapSession", "这是通过静态方法获得的session");
@SuppressWarnings("unused")
Map map_Request = (Map) ActionContext.getContext().get("request");
Map map_Application = ActionContext.getContext().getApplication();
Map map_Response = (Map) ActionContext.getContext().get("response");
/* 调用ActionContext对象的get()方法,传递ServletActionContext.HTTP_REQUEST和
* ServletActionContext.SERVLET_CONTEXT及ServletActionContext.HTTP_RESPONSE
* 键值来得到HttpServletRequest和ServletContext及HttpServletResponse对象*/
HttpServletRequest req = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
ServletContext app = (ServletContext) ActionContext.getContext().get(ServletActionContext.SERVLET_CONTEXT);
HttpServletResponse resp = (HttpServletResponse) ActionContext.getContext().get(ServletActionContext.HTTP_RESPONSE);
//2通过接口注入来获取request、session和application对象的(推荐)
//使用注入方法获得session 实现接口 SessionAware
session.put("session", "这是通过注入获得session");
//使用注入方法获得request 实现接口 ServletRequestAware
map_request.put("request", "这是通过注入获得request");
//使用注入方法获得application 实现接口 ApplicationAware
application.put("application", "这是通过注入获得的application");
//---------------------------------------
//第二种、通过与Servlet API耦合的访问方式获得真正的request、resposne、session.
//3、使用ServletActionContext的静态方法获得真正的request、resposne、session
//(与Servlet API耦合的访问方式获取四大属性范围)
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
HttpSession session = request.getSession();
ServletContext application = ServletActionContext.getServletContext();
/* (2)调用ActionContext对象的get()方法,传递StrutsStatics.HTTP_REQUEST和
* StrutsStatics.HTTP_RESPONSE键值来得到HttpServletRequest和
* HttpServletResponse对象*/
HttpServletResponse respo = (HttpServletResponse)ActionContext.getContext().get(StrutsStatics.HTTP_RESPONSE);
HttpServletRequest reque = (HttpServletRequest)ActionContext.getContext().get(StrutsStatics.HTTP_REQUEST);
return "success";
}
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
//覆盖接口 (SessionAware) 的方法 注入获得map_session
public void setSession(Map arg0) {
//这个arg0 参数就是session
this.session=arg0;
}
//覆盖 接口(RequestAware) 的方法 注入获得map_request
public void setRequest(Map arg0) {
this.map_request=arg0;
}
//覆盖 接口(ServletRequestAware) 的方法
public void setServletRequest(HttpServletRequest arg0) {
this.request=arg0;
}
//覆盖 接口 (ApplicationAware) 的方法
public void setApplication(Map arg0) {
this.application = arg0;
}
}
- Struts 2 的Action中如何获取request、response、session、application等web元素(1)
- Struts 2 的Action中如何获取request、response、session、application等web元素(2)
- Action 获取 request response session application
- Struts 2 中对 request、response、session的获取
- Struts中request,session和application方法访问web元素
- 在Struts2中访问Web页面元素request、response、session、application的四种方法
- struts如何访问request,session等web元素
- struts2中获取action中request,response,session的方法
- structs2 中action 获取request session 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对象的方法
- hacker必备
- OpenCV中特征点提取和匹配的通用方法
- jsp 中返回json报错
- oracle9i/10g/11g各种下载
- 百度文库刷财富值软件-第二版
- Struts 2 的Action中如何获取request、response、session、application等web元素(1)
- Struts 2 的Action中如何获取request、response、session、application等web元素(2)
- 项目中加密存储密码的工具类---PasswordUtil类
- Struts 2 标签 ONGL(1)
- Tomcat 报错的解决方法:The APR based Apache Tomcat Native library which allows optimal
- opencv 将视频读为图片放在指定文件夹中/将指定文件夹中图片读出并合成视频 cvCreateVideoWriter试分析
- 网站后台拿shell方法总结
- 黑客之google入侵网站常用方式 2
- js与jquery冲突问题