首页 > 代码库 > 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的运用 多种方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。