Struts2中访问web元素的四种方式
2014-03-20 08:27
399 查看
Struts2中访问web元素的四种方式:
1. 通过ActionContext来访问Map类型的request、session、application对象(依赖于Struts2 API 方式)
2. 通过实现RequestAware、SessionAware、ApplicationAware接口来访问Map类型的request、session、application对象(IoC方式)
3. 通过ServletActionContext来访问Servlet API类型的HttpServletRequest、 HttpSession、 ServletContext对象(依赖于Struts2 API 方式)
4. 通过实现ServletRequestAware接口来访问Servlet API类型的HttpServletRequest、 HttpSession、 ServletContext对象(IoC方式)
代码演示:
package action;
import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.ServletRequestAware;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class ScopeAction extends ActionSupport implements RequestAware,ServletRequestAware{
private Map<String,Object> request2;
private HttpServletRequest request4;
@Override
public String execute() throws Exception {
//第一种通过ActionContext来访问Map类型的
//request、session、application对象(依赖于Struts2 API 方式)
Map<String,Object> request=(Map<String,Object>)ActionContext.getContext().get("request");
Map<String,Object> session=ActionContext.getContext().getSession();
Map<String,Object> application=ActionContext.getContext().getApplication();
request.put("request", "request");
session.put("session", "session");
application.put("application", "application");
//第二种 通过实现RequestAware、SessionAware、ApplicationAware接口
//来访问Map类型的request、session、application对象(IoC方式)
request2.put("request2", "request2");
//第三种 通过ServletActionContext来访问Servlet API类型的HttpServletRequest、
//HttpSession、 ServletContext对象(依赖于Struts2 API 方式)
HttpServletRequest request3=ServletActionContext.getRequest();
HttpSession session3=request3.getSession();
ServletContext appliction3=session3.getServletContext();
session3.setAttribute("session3", "session3");
//第四种 通过实现ServletRequestAware接口来访问Servlet API类型的
//HttpServletRequest、 HttpSession、 ServletContext对象(IoC方式)
HttpSession session4=request4.getSession();
ServletContext application4=session4.getServletContext();
application4.setAttribute("application4", "application4");
return SUCCESS;
}
@Override
public void setRequest(Map<String, Object> arg0) {
this.request2=arg0;
}
@Override
public void setServletRequest(HttpServletRequest arg0) {
request4=arg0;
}
}
Struts2.xml
1. 通过ActionContext来访问Map类型的request、session、application对象(依赖于Struts2 API 方式)
2. 通过实现RequestAware、SessionAware、ApplicationAware接口来访问Map类型的request、session、application对象(IoC方式)
3. 通过ServletActionContext来访问Servlet API类型的HttpServletRequest、 HttpSession、 ServletContext对象(依赖于Struts2 API 方式)
4. 通过实现ServletRequestAware接口来访问Servlet API类型的HttpServletRequest、 HttpSession、 ServletContext对象(IoC方式)
代码演示:
package action;
import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.ServletRequestAware;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class ScopeAction extends ActionSupport implements RequestAware,ServletRequestAware{
private Map<String,Object> request2;
private HttpServletRequest request4;
@Override
public String execute() throws Exception {
//第一种通过ActionContext来访问Map类型的
//request、session、application对象(依赖于Struts2 API 方式)
Map<String,Object> request=(Map<String,Object>)ActionContext.getContext().get("request");
Map<String,Object> session=ActionContext.getContext().getSession();
Map<String,Object> application=ActionContext.getContext().getApplication();
request.put("request", "request");
session.put("session", "session");
application.put("application", "application");
//第二种 通过实现RequestAware、SessionAware、ApplicationAware接口
//来访问Map类型的request、session、application对象(IoC方式)
request2.put("request2", "request2");
//第三种 通过ServletActionContext来访问Servlet API类型的HttpServletRequest、
//HttpSession、 ServletContext对象(依赖于Struts2 API 方式)
HttpServletRequest request3=ServletActionContext.getRequest();
HttpSession session3=request3.getSession();
ServletContext appliction3=session3.getServletContext();
session3.setAttribute("session3", "session3");
//第四种 通过实现ServletRequestAware接口来访问Servlet API类型的
//HttpServletRequest、 HttpSession、 ServletContext对象(IoC方式)
HttpSession session4=request4.getSession();
ServletContext application4=session4.getServletContext();
application4.setAttribute("application4", "application4");
return SUCCESS;
}
@Override
public void setRequest(Map<String, Object> arg0) {
this.request2=arg0;
}
@Override
public void setServletRequest(HttpServletRequest arg0) {
request4=arg0;
}
}
Struts2.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <package name="hello" namespace="/hello" extends="struts-default"> <action name="login" class="action.ScopeAction"> <result>/index.jsp</result> </action> </package> </struts>
Index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'index.jsp' starting page</title> </head> <body> ${requestScope.request} ${sessionScope.session} ${applicationScope.application} ${requestScope.request2} ${sessionScope.session3} ${applicationScope.application4} </body> </html>结果:
相关文章推荐
- Struts2中访问web元素的四种方式
- Struts2中访问web元素的四种方式及前台jsp页面获取后台值的方式
- Struts2中访问web元素的四种方式及前台jsp页面获取后台值的方式
- Struts2中访问web元素的四种方式(访问requst、session、application)
- 四种struts2访问web元素的方式
- Struts2 Action访问web元素的四种方式
- STRUTS2 ACTION 访问WEB元素的四种方式
- Struts2中访问web元素的四种方式及前台jsp页面获取后台值的方式
- STRUTS2 ACTION 访问WEB元素的四种方式
- Struts2访问web元素(Request,Session,Application)的四种方式
- Struts2中访问web元素的四种方式及前台jsp页面获取后台值的方式
- Struts2中访问web元素的四种方式
- Struts2访问Web元素的三种方式
- struts2-----访问web元素的三种方式and 常用返回类型
- 【Struts2】③访问web中元素的方式
- Struts2_13_访问WEB元素_2(最常用控制反转的方式)
- 在Struts2中访问Web页面元素request、response、session、application的四种方法
- struts2获取requestd session 等web元素的四种方式
- Struts2 Action访问Web对象的四种方式
- Struts2访问request,session,application的四种方式