首页 > 代码库 > Action的搭建及application、request、Session的运用 多种方法

Action的搭建及application、request、Session的运用 多种方法

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body>10 添加测试的web资源11 <%12 application.setAttribute("app1", "测试的application")  ;13 application.setAttribute("app12", "测试的application2")  ;14 session.setAttribute("ses1", "测试的Session") ;15 16 request.setAttribute("req1", "测试的request") ;17 18 19 %>20 <br>21 <a href="testAction.action?user=tom" >测试Action类访问web资源</a>22 <br><br><br>23 <a href="testActionAware.action?user=tom&user=rose" >以Aware方式测试Action类访问web资源</a>24 <br><br><br>25 <a href="testServletAction.action?user=tom" >访问原生web资源</a>26 <br><br><br>27 <a href="testServletAware.action?user=tom" >以接口方式访问原生web资源</a>28 </body>29 </html>
<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!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=UTF-8"><title>Insert title here</title></head><body>显示application的属性<br>app1=${app1 }<br>app12=${app12 }<br>appx=${applicationScope.appx }<br><br>显示Session的属性<br><br>ses1=${ses1 }<br><br>ses2=${ses2 }<br><br>req1=${req1 }<br><br>req2=${req2 }<br><br><% String user = request.getParameter("user") ;Object haha = session.getAttribute("ses1") ;out.print("user = "+user) ;out.print("<br><br> ") ;out.print("haha = "+haha.toString()) ;String ww = request.getParameter("ww") ;%><br><%out.print("ww= "+ww) ; %></body></html>

Struts

<?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>   <!-- 设置过滤的扩展名 -->   <constant name="struts.action.extension" value="do,action,,"></constant>    <!-- 定义包 -->    <package name="index" extends="struts-default" namespace="">                <action name="testAction" class="com.hanqi.action.TestAction" method="testWeb">                                <result type="redirect">test1.jsp</result>                        </action>                        <!-- 解耦的接口方式 -->            <action name="testActionAware" class="com.hanqi.TestActionAware" method="testAware">                                <result >test1.jsp</result>                        </action>                <!-- 以ServletActionContext方式 -->            <action name="testServletAction" class="com.hanqi.action.TestServletAction"                             method="testServletAction">                                <result >test1.jsp</result>                        </action>                <action name="testServletAware" class="com.hanqi.action.TestServletActionAware"                        method="testServletAware">                                                                        <result >test1.jsp</result>                                                </action>        </package>    </struts>
 1 package com.hanqi.action; 2  3 import javax.servlet.ServletContext; 4 import javax.servlet.http.HttpServletRequest; 5 import javax.servlet.http.HttpSession; 6  7 import org.apache.struts2.interceptor.ServletRequestAware; 8 import org.apache.struts2.util.ServletContextAware; 9 10 public class TestServletActionAware11         implements ServletRequestAware, ServletContextAware {12 13     private ServletContext sc ;14     private HttpServletRequest hsr ;15     private HttpSession hs ;16     17     @Override18     public void setServletContext(ServletContext arg0) {19         // TODO 自动生成的方法存根20         sc = arg0 ;21     }22 23     @Override24     public void setServletRequest(HttpServletRequest arg0) {25         // TODO 自动生成的方法存根26         27         hsr = arg0 ;28         29         hs = arg0.getSession() ;30         31     }32 33     public String testServletAware()34     {35         System.out.println("app1 = " + sc.getAttribute("app1"));36         37         sc.setAttribute("appx", "新的app");38         39         System.out.println("ses1 = " + hs.getAttribute("ses1"));40         41         hs.setAttribute("ses2", "新的ses2");42         43         hsr.setAttribute("req2", "新的req2");44         45         System.out.println("user = " +hsr.getParameter("user"));46         47     48         49         return "success" ;50     }51     52     53 }
 1 package com.hanqi.action; 2  3 import javax.servlet.ServletContext; 4 import javax.servlet.http.HttpServletRequest; 5 import javax.servlet.http.HttpSession; 6  7 import org.apache.struts2.ServletActionContext; 8  9 public class TestServletAction10 {11             12     public String testServletAction()13     {14         //访问原生的web资源15         16         //1得到ServletContext,相当于application 17         ServletContext sc = ServletActionContext.getServletContext();18         19         System.out.println("app1 = " + sc.getAttribute("app1"));20          21         sc.setAttribute("appx", "原生方式放入的内容");22             23         //2访问Session24         HttpServletRequest hsr = ServletActionContext.getRequest() ;25         26         HttpSession hs = hsr.getSession() ;27         28         System.out.println("ses1 = " + hs.getAttribute("ses1"));29         30         hs.setAttribute("ses2", "原生方式放入的Session");31         32         //3访问request33         System.out.println("req1 = " + hsr.getAttribute("req1"));34         35         hsr.setAttribute("req2", "原生方式放入的request");36         37         //4访问parameter38         System.out.println("user1 = " +hsr.getParameter("user") );39         System.out.println("user2 = " +hsr.getParameter("user") );40         41         return "success" ;42     }43 }
package com.hanqi.action;import java.util.Map;import com.opensymphony.xwork2.ActionContext;//解耦方式public class TestAction {    //        public String testWeb()    {        System.out.println("hah");                //单例        //Action实例的上下文对象        ActionContext ac = ActionContext.getContext() ;                //1获取application资源        Map<String, Object> mapApp = ac.getApplication() ;                System.out.println("app1 = " + mapApp.get("app1"));                System.out.println("app12 = " + mapApp.get("app12"));                //放入新的键值对        mapApp.put("appx", "新放入的application") ;                        //2.获取Session的资源        Map<String, Object> mapses = ac.getSession() ;                System.out.println("ses1=" + mapses.get("ses1"));                //放入新的键值对        mapses.put("ses2", "新放入的session") ;                //移除        mapses.remove("ses1") ;                        //3获取request资源        Map<String, Object> mapreq = (Map<String, Object>) ac.get("request");                System.out.println("req1 = " + mapreq.get("req1"));                //放入新的键值对        mapreq.put("req2", "新放入的request") ;                        //4直接获取传递的参数        Map<String, Object> mappar = ac.getParameters() ;                //参数值被封装成String数组        String[ ] array = (String[ ])mappar.get("user") ;            for(String s : array)        {            System.out.println("user = " + s);        }                //放入        mappar.put("ww", new String[ ]{("qweqeq")}) ;                return "success" ;    }    }
package com.hanqi;import java.util.Map;import org.apache.struts2.interceptor.ApplicationAware;import org.apache.struts2.interceptor.ParameterAware;import org.apache.struts2.interceptor.RequestAware;import org.apache.struts2.interceptor.SessionAware;public class TestActionAware implements ApplicationAware , SessionAware, RequestAware, ParameterAware{    private Map<String, Object> mapApp ;    private Map<String, Object> mapses ;    private Map<String, Object> mapreq ;    private Map<String, String[ ]> mappar ;        //实现ApplicationAware接口的方法    //提供给Struts2进行调用 , 放入Application的数据集合    @Override    public void setApplication(Map<String, Object> arg0) {        // TODO 自动生成的方法存根        //接收        mapApp = arg0 ;            }        public String testAware()    {                //1访问application        System.out.println("app1 = " + mapApp.get("app1"));                mapApp.put("app12", "以Aware方式放入的application") ;                //2访问Session        //System.out.println("ses1 = " + mapses.get("ses1"));                mapses.put("ses2", "以Aware方式放入的Session") ;                //3访问request        System.out.println("req1 = " + mapreq.get("req1"));                mapreq.put("req2", "以Aware方式放入的request") ;                //4 访问Parameter        String[ ] str = mappar.get("user") ;        for(String t : str)        {                System.out.println("user = " + t);        }        return "success" ;    }    @Override    public void setSession(Map<String, Object> arg0) {        // TODO 自动生成的方法存根                mapses = arg0 ;            }    @Override    public void setRequest(Map<String, Object> arg0) {        // TODO 自动生成的方法存根        mapreq = arg0 ;    }    @Override    public void setParameters(Map<String, String[]> arg0) {        // TODO 自动生成的方法存根        mappar = arg0 ;    }    }

 

Action的搭建及application、request、Session的运用 多种方法