//index.jsp
 1 <?xml version="1.0" encoding="GB18030" ?>
 2 <%@ page language="java" contentType="text/html; charset=GB18030"
 3     pageEncoding="GB18030"%>
 4
 5 <% String context = request.getContextPath(); %>
 6
 7 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 8 <html xmlns="http://www.w3.org/1999/xhtml">
 9 <head>
10 <meta http-equiv="Content-Type" content="text/html; charset=GB18030" />
11 <title>Insert title here</title>
12 </head>
13 <body>
14 取得Map类型request,session,application,真实类型 HttpServletRequest, HttpSession, ServletContext的引用:
15 <ol>
16     <li>前三者:依赖于容器</li>
17     <li>前三者:IOC</li> (只用这种)
18     <li>后三者:依赖于容器</li>
19     <li>后三者:IOC</li>
20 </ol>
21 <br />
22
23 <!-- 定义一个表单 提交用户名和密码 -->
24
25 <form name="f" action="" method="post">
26 用户名:<input type="text" name="name"/>
27 密码:<input type="text" name="password"/>
28 <br />
29
30 <!-- 通过javascript:document.f.action动态提交到不同的action中进行不同的处理  -->
31 <input type="button" value="submit1" onclick="javascript:document.f.action='login/login1';document.f.submit();" />
32 <input type="button" value="submit2" onclick="javascript:document.f.action='login/login2';document.f.submit();" />
33 <input type="button" value="submit3" onclick="javascript:document.f.action='login/login3';document.f.submit();" />
34 <input type="button" value="submit4" onclick="javascript:document.f.action='login/login4';document.f.submit();" />
35 </form>
36
37 </body>
38 </html>

//struts.xml
 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE struts PUBLIC
 3     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
 4     "http://struts.apache.org/dtds/struts-2.0.dtd">
 5
 6 <struts>
 7     <constant name="struts.devMode" value="true" />
 8     <package name="login" extends="struts-default" namespace="/login">
 9         <!-- 使用通配符分别对应传入的login1,2,3,4 并调用不同的class -->
10         <action name="login*" class="com.bjsxt.struts2.user.action.LoginAction{1}">
11             <result>/user_login_success.jsp</result>
12         </action>
13     </package>
14 </struts>

//方法1

 1 package com.bjsxt.struts2.user.action;
 2
 3 import java.util.Map;
 4
 5 import com.opensymphony.xwork2.ActionContext;
 6 import com.opensymphony.xwork2.ActionSupport;
 7
 8
 9 //第一种可以取得request的方式
10 //称之为
11 public class LoginAction1 extends ActionSupport {
12
13     private Map request;
14     private Map session;
15     private Map application;
16
17     public LoginAction1() {
18         //ActionContext.getContext取得action中的上下文 对应JSP的为Application
19         //取得request的方法
20         request = (Map)ActionContext.getContext().get("request");
21         //取得Session的方法
22         session = ActionContext.getContext().getSession();
23         //取得Application的方法
24         application = ActionContext.getContext().getApplication();
25     }
26
27     public String execute() {
28         //在得到的Map中放入值 查看前台是否能够访问
29         //这种处理方法即将这里设置的值全部复制到http内容中去
30         request.put("r1", "r1");
31         session.put("s1", "s1");
32         application.put("a1", "a1");
33         return SUCCESS;
34     }
35
36
37 }

//方法2

 1 package com.bjsxt.struts2.user.action;
 2
 3 import java.util.Map;
 4
 5 import org.apache.struts2.interceptor.ApplicationAware;
 6 import org.apache.struts2.interceptor.RequestAware;
 7 import org.apache.struts2.interceptor.SessionAware;
 8
 9 import com.opensymphony.xwork2.ActionContext;
10 import com.opensymphony.xwork2.ActionSupport;
11
12
13 //实现了3个接口,必须复写3个方法
14 //Aware:得知,获得.
15 //这是最常用的方式
16 public class LoginAction2 extends ActionSupport implements RequestAware,SessionAware, ApplicationAware {
17     private Map<String, Object> request;
18     private Map<String, Object> session;
19     private Map<String, Object> application;
20     //DI dependency injection 依赖注入
21     //IoC inverse of control 控制翻转
22     public String execute() {
23         request.put("r1", "r1");
24         session.put("s1", "s1");
25         application.put("a1", "a1");
26         return SUCCESS;
27     }
28
29     //实现了三个Aware接口后,Struts2将会将request,session和Application传来
30     @Override
31     public void setRequest(Map<String, Object> request) {
32         this.request = request;
33     }
34
35     @Override
36     public void setSession(Map<String, Object> session) {
37         this.session = session;
38     }
39
40     @Override
41     public void setApplication(Map<String, Object> application) {
42         this.application = application;
43     }
44
45
46 }

//方法3

 1 package com.bjsxt.struts2.user.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 import com.opensymphony.xwork2.ActionSupport;
10
11 //基本不用
12 public class LoginAction3 extends ActionSupport {
13
14     private HttpServletRequest request;
15     private HttpSession session;
16     private ServletContext application;
17
18     public LoginAction3() {
19         request = ServletActionContext.getRequest();
20         session = request.getSession();
21         application = session.getServletContext();
22     }
23
24     public String execute() {
25         request.setAttribute("r1", "r1");
26         session.setAttribute("s1", "s1");
27         application.setAttribute("a1", "a1");
28         return SUCCESS;
29     }
30
31 }

//方法4

 1 package com.bjsxt.struts2.user.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
 9 import com.opensymphony.xwork2.ActionSupport;
10
11 //基本不用
12 public class LoginAction4 extends ActionSupport implements ServletRequestAware {
13
14     private HttpServletRequest request;
15     private HttpSession session;
16     private ServletContext application;
17
18
19
20     public String execute() {
21         request.setAttribute("r1", "r1");
22         session.setAttribute("s1", "s1");
23         application.setAttribute("a1", "a1");
24         return SUCCESS;
25     }
26
27
28
29     @Override
30     public void setServletRequest(HttpServletRequest request) {
31         this.request = request;
32         this.session = request.getSession();
33         this.application = session.getServletContext();
34     }
35
36 }

//显示取出的值

 1 <?xml version="1.0" encoding="GB18030" ?>
 2 <%@ page language="java" contentType="text/html; charset=GB18030"
 3     pageEncoding="GB18030"%>
 4     <%@taglib uri="/struts-tags" prefix="s" %>
 5 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 6 <html xmlns="http://www.w3.org/1999/xhtml">
 7 <head>
 8 <meta http-equiv="Content-Type" content="text/html; charset=GB18030" />
 9 <title>Insert title here</title>
10 </head>
11 <body>
12     User Login Success!
13     <br />
14
15     <!-- 用标签访问request中的值 -->
16     <s:property value="#request.r1"/> | <%=request.getAttribute("r1") %> <br />
17     <s:property value="#session.s1"/> | <%=session.getAttribute("s1") %> <br />
18     <s:property value="#application.a1"/> | <%=application.getAttribute("a1") %> <br />
19     <s:property value="#attr.a1"/><br />
20     <s:property value="#attr.s1"/><br />
21     <s:property value="#attr.r1"/><br />
22     <s:debug></s:debug>
23     <br />
24 </body>
25 </html>

 

Struts访问web元素相关推荐

  1. Struts2 访问web元素

    访问web元素的四种方法(耦合,依赖注入).(耦合,非依赖注入).(非耦合,依赖注入).(非耦合,非依赖注入) 耦合:可以得到HttpServletResponse,HttpServletReques ...

  2. Struts2中访问web元素

    1.访问web元素,可以取得Map类型的request,session,application,真实类型为HttpServletRequest,HttpSession,ServletContext的引 ...

  3. 四种struts2访问web元素的方式

    1:第一种:如图: 注意:如果程序运行不成功的话,检查下web.xml中struts2的版本配置,看是否是环境的问题. 2:第二种:如图,request可以直接用,不用再像第一种还要自己去获取.(最常 ...

  4. JAVA框架——struts(一)struts快速入门,struts访问流程,struts配置文件详解,动态方法调用

    一. Struts2框架概述 是一种基于MVC模式的轻量级web框架.本质是一个Servlet.作为控制器建立模型与视图的数据交互.Struts2以WebWord为核心,采用拦截器的机制处理客户的请求 ...

  5. 086_访问html元素

    1. 访问html元素有一下几种方法: 1.1. 通过id查找html元素. 1.2. 通过标签名查找html元素. 1.3. 通过类名查找html元素. 1.4. 通过CSS选择器查找html元素. ...

  6. 在ASP.NET AJAX 1.0框架中访问Web服务

    一. 简介     如今,微软最新推出的AJAX框架为ASP.NET AJAX 1.0(下载地址为[url]http://ajax.asp.net/downloads/default.aspx[/ur ...

  7. Silverlight访问Web Service报System.Security.SecurityException: 安全性错误的处理

    Silverlight访问Web Service报"System.Security.SecurityException: 安全性错误"的处理 好几次了,执行的好好的Silverli ...

  8. python元组元素的提取比_Python 元组数据类型(tuple)详解 [访问元组元素][修改元组元素][删除元组][学习 Python 必备基础知识][看此一篇就够了]...

    您的"关注"和"点赞",是信任,是认可,是支持,是动力...... 如意见相佐,可留言. 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新. 1 元 ...

  9. 通过双向证书认证使用 gSOAP 访问 web services

    概述 本文通过一系列的实验步骤描述,向您展示如何使用 gSOAP 编写的客户端,通过双向证书认证,访问由 tomcat7 和 Axis2 搭建的 web 服务.全文循序渐进,分为几个阶段逐步展开,每个 ...

最新文章

  1. DeepMind发布神经网络、强化学习库,网友:推动JAX发展
  2. (0096)iOS开发之应用间的分享系列(1)
  3. leetcode算法题--从上到下打印二叉树 II
  4. (4)段描述符P,G位
  5. java logging api_Java Logging API - Tutorial
  6. python get()函数_C++使用ffpython嵌入和扩展python(python2和python3)
  7. matlab试用版的user id,免费试用MATLAB
  8. boost库下的deadline_timer和steady_timer 区别
  9. Node项目部署正常启动后不能访问的问题
  10. python图标库_python图形库
  11. BZOJ 3282 Link Cut Tree (LCT)
  12. java二进制八进制十六进制写法,java 二进制,八进制,十进制,十六进制间相互转换的步骤...
  13. 思源黑体ttf_金刚黑体最粗版丨金刚黑体Bold+San Francisco
  14. Nginx安装配置详解
  15. 张明楷的100个刑法案例
  16. linux 使用tar命令压缩文件夹
  17. Unity 3D中实现敌人追踪
  18. 哈希表的应用之电话本
  19. 计算机找表格,电脑上自带的excel表格不见了怎么办
  20. 模拟按键 —— 鼠标

热门文章

  1. Unity 播放音频文件
  2. java设计模式--原始模型模式
  3. 通过全局路由表的方式实现MPLS ***上互联网
  4. 浅谈Delphi过程与函数02 - 零基础入门学习Delphi21
  5. #define用法以及#define和typedef区别
  6. Java中float类型精度问题
  7. 阿里云联合8家芯片商推“全平台通信模组”,加速物联网生态建设...
  8. 由浅入深理解java集合(二)——集合 Set
  9. Windows下利用TortoiseSVN搭建本地SVN服务器
  10. win7 + vs2013 + zlib 编译