Struts2
中request,session,application三种请求方法
搭建 struts2框架,需要自己来搭建,在这里我所使用的版本是struts2.2.3,版本不影响自己来完成request,session,application三种请求方法
1、在 src下建三个action类:OneRSATestAction、TwoRSATestAction、ThreeRSATestAction
2、在 WebRoot下建一个首页index.jsp和三个结果页面:testOne.jsp、testTwo.jsp、Three.jsp(也可以建一个结果页面,不过为了便于测试结果,在这里建三个页面,因为在struts.xml,本人使用的是通配符作为控制)。
Struts.xml代码:
<?xml version=
"1.0" encoding=
"UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
 
<struts>
 
    <constant name=
"struts.enable.DynamicMethodInvocation" value=
"false" />
    <constant name=
"struts.devMode" value=
"false" />
 
    <package name=
"default" namespace=
"/" extends=
"struts-default">
 
        <action name=
"*_*" class=
"com.monkey.threeRSA.action.{2}Action" method=
"{1}">
            <result>/{1}.
jsp</result>
        </action>
    </package>
3、代码填写:
a) 
OneRSATestAction.java
package com.monkey.threeRSA.action;
 
import java.util.Map;
 
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
 
public class OneRSATestAction extends ActionSupport {
 
   /**
    * 第一种获取 request、session、application的方法
    */
   private static final long serialVersionUID = 1L;
   private Map request;
   private Map session;
   private Map application;
  
   public OneRSATestAction()
   {
      request = (Map)ActionContext.getContext().get("request");
      session=ActionContext.getContext().getSession();
      application=ActionContext.getContext().getApplication();
   }
  
   public String testOne()
   {
      request.put("r1", "第一种获取 request"); 
      session.put("s1", "第一种获取 session"); 
      application.put("a1", "第一种获取 application");
      return SUCCESS;
   }
}
b)
TwoRSATestAction.java
package com.monkey.threeRSA.action;
 
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;
 
public class TwoRSATestAction extends ActionSupport implements RequestAware,SessionAware,ApplicationAware {
 
   /**
    * 第二种获取 request、session、application的方法
    */
   private static final long serialVersionUID = 1L;
   private Map<String, Object> request;
   private Map<String, Object> session;
   private Map<String, Object> application;
  
   public String testTwo()
   {
      request.put("r2", "第二种获取 request"); 
      session.put("s2", "第二种获取 session"); 
      application.put("a2", "第二种获取 application");
      return SUCCESS;
   }
 
   public void setRequest(Map<String, Object> request) {
      // TODO Auto-generated method stub
      this.request=request;
   }
 
   public void setSession(Map<String, Object> session) {
      // TODO Auto-generated method stub
      this.session=session;
   }
 
   public void setApplication(Map<String, Object> application) {
      // TODO Auto-generated method stub
      this.application=application;
   }
}
c)
ThreeRSATestAction.java
package com.monkey.threeRSA.action;
 
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
 
public
class ThreeRSATestAction
extends ActionSupport {
 
    /**
     * 第三种获取 request、session、application的方法
     */
   
private
static
final
long
serialVersionUID = 1L;
   
private HttpServletRequest request; 
   
private HttpSession session; 
   
private ServletContext application;
   
   
public ThreeRSATestAction()
    {
        request = ServletActionContext.
getRequest();
        session = request.getSession();
        application = session.getServletContext() ;
    }
   
   
public String testThree()
    {
        request.setAttribute("r3", "第三种获取 request"); 
        session.setAttribute("s3", "第三种获取 session"); 
        application.setAttribute("a3", "第三种获取 application");
       
return
SUCCESS;
    }
}
testOne.jsp
<%@ page language=
"java" contentType=
"text/html; charset=GBK"
    pageEncoding=
"GBK"%>
<%@ taglib uri=
"/struts-tags" prefix=
"s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv=
"Content-Type" content=
"text/html; charset=GBK">
<title>第一种获取方法</title>
</head>
<body>
<div style=
"margin-top:20px; height:30px; font-size:20px;"><%=request.getAttribute("r1") %> | <s:property value=
"#request.r1"/></div>
<div style=
"margin-top:20px; height:30px; font-size:20px;"><%=session.getAttribute("s1") %> | <s:property value=
"#session.s1"/></div>
<div style=
"margin-top:20px; height:30px; font-size:20px;"><%=application.getAttribute("a1") %> | <s:property value=
"#application.a1"/></div>
</body>
</html>
testTwo.jsp
<%@ page language=
"java" contentType=
"text/html; charset=GBK"
    pageEncoding=
"GBK"%>
<%@ taglib uri=
"/struts-tags" prefix=
"s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv=
"Content-Type" content=
"text/html; charset=GBK">
<title>第二种获取方法</title>
</head>
<body>
<div style=
"margin-top:20px; height:30px; font-size:20px;"><%=request.getAttribute("r2") %> | <s:property value=
"#request.r2"/></div>
<div style=
"margin-top:20px; height:30px; font-size:20px;"><%=session.getAttribute("s2") %> | <s:property value=
"#session.s2"/></div>
<div style=
"margin-top:20px; height:30px; font-size:20px;"><%=application.getAttribute("a2") %> | <s:property value=
"#application.a2"/></div>
</body>
</html>
testThree.jsp
<%@ page language=
"java" contentType=
"text/html; charset=GBK"
    pageEncoding=
"GBK"%>
<%@ taglib uri=
"/struts-tags" prefix=
"s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv=
"Content-Type" content=
"text/html; charset=GBK">
<title>第三种获取方法</title>
</head>
<body>
<div style=
"margin-top:20px; height:30px; font-size:20px;"><%=request.getAttribute("r3") %> | <s:property value=
"#request.r3"/></div>
<div style=
"margin-top:20px; height:30px; font-size:20px;"><%=session.getAttribute("s3") %> | <s:property value=
"#session.s3"/></div>
<div style=
"margin-top:20px; height:30px; font-size:20px;"><%=application.getAttribute("a3") %> | <s:property value=
"#application.a3"/></div>
</body>
</html>
 
首页代码: index.jsp
<%@ page language=
"java" import=
"java.util.*" pageEncoding=
"GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
    <base href=
"<%=basePath%>
">
   
    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv=
"pragma" content=
"no-cache">
    <meta http-equiv=
"cache-control" content=
"no-cache">
    <meta http-equiv=
"expires" content=
"0">   
    <meta http-equiv=
"keywords" content=
"keyword1,keyword2,keyword3">
    <meta http-equiv=
"description" content=
"This is my page">
    <!--
    <link
rel="
stylesheet" type="text/
css"
href="styles.css">
    -->
 </head>
 
 <body>
    <div style=
"margin-top:20px; height:30px; font-size:20px;"><a href=
"testOne_OneRSATest">第一种获取 request、session、application方法</a></div>
    <div style=
"margin-top:20px; height:30px; font-size:20px;"><a href=
"testTwo_TwoRSATest">第二种获取 request、session、application方法</a></div>
    <div style=
"margin-top:20px; height:30px; font-size:20px;"><a href=
"testThree_ThreeRSATest">第三种获取 request、session、application方法</a></div>
 </body>
</html>
 
如果要想参考整个项目下载源代码: ThreeRSA.zip