Struts2访问web元素(包括:request,session,application和HttpServletRequest,HttpServletSession, HttpServletContext)的4种方法
2010-11-04 21:29
666 查看
说明:
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;
}
}
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)的4种方法
- 在Struts2中访问Web页面元素request、response、session、application的四种方法
- 在 Action 中访问 WEB 资源(struts2获取HttpServletRequest, HttpSession, ServletContext)
- 【Struts2学习笔记(8)】访问或添加request/session/application属性获取HttpServletRequest / HttpSession / ServletContex
- Struts2访问web元素(Request,Session,Application)的四种方式
- struts2如何访问HttpServletRequest、HttpSession、ServletContext三个域对象?
- action访问servlet的API并且获取到MAP或者httpServlet类型的application,session,request
- struct2 访问WEB元素(request,session, application......)——分模块配置——默认Action
- 【Struts2复习知识点十二】-web元素request session application等
- [原创]java WEB学习笔记47:Servlet 监听器简介, ServletContext(Application 对象), HttpSession (Session 对象), HttpServletRequest (request 对象) 监听器,利用listener理解 三个对象的生命周期
- struts2 访问Web元素的4种方法
- Struts2 如何访问 HttpServletRequest、HttpSession、ServletContext 三个域对象 ?
- struts2 访问Web元素的4种方法
- Struts2访问ServletAPI(Request, Session, ServletContext,Application,response)
- Struts2中request、response、session、application对象的访问方法
- Struts2中访问web元素的四种方式(访问requst、session、application)
- struts2 Action 访问web对象(request,session,application)
- struts2 访问Web元素的4种方法
- 在Struts2访问 HttpServletRequest、HttpSession、ServletContext三个域对象
- struts2如何访问HttpServletRequest、HttpSession和ServletContext三个域对象?