Struts2取得内置对象的4种方式
2013-08-07 18:05
218 查看
一,获取方式
从Servlet容器中获取的方法与Servlet容器无关的获取方法
IoC方式
非Ioc方式
二,获取方法
2.1 与servlet无关:
2.1.1 非IOC模式
Action代码//private ActionContext context ;//该方法还可以取得值栈(getValueStack()),使用push(obj)往值栈中放数据
private Map request;
private Map session ;
private Map application ;
public LoginAction1(){
request = (Map)ActionContext.getContext().get("request"); //获取request
session = ActionContext.getContext().getSession(); //取得session
application = ActionContext.getContext().getApplication(); //取得application
request.put("r1","r1");
session.put("i1","i1");
application.put("a1","a1");
return SUCCESS;
}
JSP代码
<s:property value="#request.r1" />|<%=request.getAttribute("r1") %><br>
<s:property value="#session.i1" />|<%=session.getAttribute("i1") %><br>
<s:property value="#application.a1" />|<%=application.getAttribute("a1") %><br>
<s:debug></s:debug>
//后台使用的是Map类型的request/session/application,前台可以使用httpServletRequest类型的request对象及其他对象接收到,说明struts2肯定帮我们在Map 和Http之间建立了某种关联
2.1.2 IOC模式(理论上最常用)
Action代码//DI dependency injection(依赖注入)
//IOC(注射方式) inverse of control(控制反转)
public classLoginAction2 extends ActionSupport implements RequestAware,SessionAware, ApplicationAware {
private Map<String,Object> request;//依赖注入,控制反转
private Map<String,Object> session;
private Map<String,Object> application;
public voidsetApplication(Map<String, Object> arg0) {
this.application = arg0;
}
public voidsetSession(Map<String, Object> arg0) {
this.session = arg0;
}
public voidsetRequest(Map<String, Object> arg0) {
this.request = arg0;
}
request.put("r1","r1");
session.put("i1","i1");
application.put("a1","a1");
return SUCCESS;
JSP代码(同上)
2.2 与servlet有关:
2.2.1 非IOC模式(个人认为最常用)
public class LoginAction3 extends ActionSupport{private HttpServletRequest request;
private HttpSession session;
private ServletContext application;
public LoginAction3(){
request = ServletActionContext.getRequest();
session = request.getSession();
application = session.getServletContext();
}
}
2.2.2 IOC模式
public classLoginAction4 extends ActionSupport implements ServletRequestAware,SessionAware,ServletContextAware {
private HttpServletRequest request;
private Map session; // 此处是Map类型的
private ServletContext application;
@Override
public String execute() throws Exception {
request.setAttribute("r1", "r1");
session.put("i1","i1");
application.setAttribute("a1", "a1");
return super.execute();
}
public voidsetServletContext(ServletContext arg0) {
this.application = arg0;
}
public voidsetSession(Map<String, Object> arg0) {
this.session = arg0;
}
public void setServletRequest(HttpServletRequestarg0) {
this.request = arg0;
}
}
相关文章推荐
- struts2----获取的scope对象的4种方式
- S5.1_Struts2_AccessWebElements action访问web对象的4种方式
- Struts2获取web对象的4种方式
- Struts2获取web对象的4种方式
- Struts2获取web对象的4种方式
- map容器对象插入数据的4种方式讲解
- Json对象与Json字符串互转(4种转换方式)
- map容器对象插入数据的4种方式讲解
- Json对象与Json字符串互转(4种转换方式)
- Java创建对象的4种方式
- jQuery()里面提供的4种构建jQuery对象的方式
- struts2——(6)(①访问Servlet对象的方式(与Servlet API解耦的访问方式)
- JQuery datatables插件 使用ajax将struts2的action对象传递给datatables设置数据源方式
- Json对象与Json字符串互转(4种转换方式)
- 基类指针、派生类指针指向基类对象和派生类对象的4种方式
- 在struts2中如何获取request等JSP内置对象并赋值
- Json对象与Json字符串互转(4种转换方式)
- JSP第二篇【内置对象的介绍、4种属性范围、应用场景】
- struts2获得HttpServlet对象的方式
- [Javascript]:JS创建对象方式、对象使用说明与常用内置对象总结