Struts2访问web元素(包括:request,session,application)的4种方法
2015-03-20 11:20
369 查看
Struts2访问web元素(包括:request,session,application和HttpServletRequest,HttpServletSession, HttpServletContext)的4种方法
说明:1.常用的是第二中方法取到,Map类型的request,session,application的引用
2.request,session,application是jsp的内置对象,HttpServletRequest,HttpServletSession, HttpServletContext是servlet中与之对应的元素。
一.取得Map类型的request,session,application的引用
1. 直接取得
通过ActionContext中取出相关的web元素。值栈中Stack Context实际就是ActionContext,事实上值栈也放在request里面。
package com.xie.action.validate;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class ActionCheck1 extends ActionSupport {
private Map<String, Object> req;
private Map<String, Object> ses;
private Map<String, Object> app;
public ActionCheck1(){
req=(Map<String, Object>) ActionContext.getContext().get("request");
ses=ActionContext.getContext().getSession();
app=ActionContext.getContext().getApplication();
}
public String execute(){
req.put("xie", "UC num is 1596144767");
ses.put("wang", "don't know");
app.put("liu", "try to don't know");
return SUCCESS;
}
}
页面访问:
<s:debug></s:debug><br>
<s:property value="#request.xie"/>|<%=request.getAttribute("xie") %><br/>
<s:property value="#session.wang"/>|<%=session.getAttribute("wang") %><br/>
<s:property value="#application.liu"/>|<%=application.getAttribute("liu") %><br/>
2. 通过IoC方式取得
自己定义的Action应该实现RequestAware,SessionAware,ApplicationAware接口。
取得web元素的代码如下:
package com.xie.action.validate;
import java.util.Map;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class ActionCheck2 extends ActionSupport implements RequestAware,SessionAware,ApplicationAware {
private Map<String, Object> req;
private Map<String, Object> ses;
private Map<String, Object> app;
public void setRequest(Map<String, Object> request) {
req=request;
}
public void setSession(Map<String, Object> session) {
ses=session;
}
public void setApplication(Map<String, Object> application) {
app=application;
}
public String execute(){
req.put("xie", "UC num is 1596144767");
ses.put("wang", "don't know");
app.put("liu", "try to don't know");
return SUCCESS;
}
}
三.取得真实类型的HttpServletRequest,HttpServletSession, HttpServletContext的引用
3.直接取得
代码如下:
package com.xie.action.validate;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class ActionCheck3 extends ActionSupport {
private HttpServletRequest req;
private HttpSession ses;
private ServletContext app;
public ActionCheck3(){
req=ServletActionContext.getRequest();
ses=req.getSession();
app=ses.getServletContext();
}
public String execute(){
req.setAttribute("xie", "UC num is 1596144767");
ses.setAttribute("wang", "don't know");
app.setAttribute("liu", "try to don't know");
return SUCCESS;
}
}
4.通过IoC取得,需实现ServletRequestAware
取得代码如下:
package com.xie.action.validate;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.interceptor.ServletRequestAware;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class ActionCheck4 extends ActionSupport implements ServletRequestAware {
private HttpServletRequest req;
private HttpSession ses;
private ServletContext app;
public void setServletRequest(HttpServletRequest request) {
req=request;
ses=req.getSession();
app=ses.getServletContext();
}
public String execute(){
req.setAttribute("xie", "UC num is 1596144767");
ses.setAttribute("wang", "don't know");
app.setAttribute("liu", "try to don't know");
return SUCCESS;
}
}
相关文章推荐
- Struts2访问web元素(包括:request,session,application和HttpServletRequest,HttpServletSession, HttpServletContext)的4种方法
- 在Struts2中访问Web页面元素request、response、session、application的四种方法
- Struts2访问web元素(Request,Session,Application)的四种方式
- 【Struts2复习知识点十二】-web元素request session application等
- struts2获取web元素(request、session、application)
- Struts2中request、response、session、application对象的访问方法
- Struts2中访问web元素的四种方式(访问requst、session、application)
- struts2 访问Web元素的4种方法
- struts2 访问Web元素的4种方法
- struts2 访问Web元素的4种方法
- struct2 访问WEB元素(request,session, application......)——分模块配置——默认Action
- struts2 Action 访问web对象(request,session,application)
- struts2添加和访问request、session、application属性
- struts2在Action中访问request、session、application属性
- Struts 2 的Action中如何获取request、response、session、application等web元素(2)
- struts2 action中获取request session application的方法
- struts2访问或添加request/session/application属性
- struts2访问或添加request/session/application属性
- 关于struts2中对 request session application 的访问
- struts2获取request,session,application4种方式