- 浏览: 5017 次
- 性别:
最近访客 更多访客>>
文章分类
最新评论
-
kjmmlzq19851226:
这里有个比较好的说明。http://chw0892.iteye ...
struts2的工作原理
struts2访问Web元素
struts2访问Web元素:
具体代码如下:
VisitWebElement.java 在该类中使用第一和第二种方法
ImplementAware.java 在该类中使用第三种方法
struts.xml
web.xml
visitWebElement.jsp 访问action的jsp
showValueByActionContext.jsp
showValueByServletActionContext.jsp
showValueByImplAware.jsp
struts2访问Web元素:
1.使用ActionContext
2.使用ServletActionContext
3.实现RequestAware,SessionAware,ApplicationAware(最常用)
具体代码如下:
VisitWebElement.java 在该类中使用第一和第二种方法
package com.sinwee.visitWebElement; import java.io.IOException; import java.io.PrintWriter; import java.util.Arrays; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class VisitWebElement extends ActionSupport { /** * */ private static final long serialVersionUID = -2022249357432920534L; public String byActionContext() { ActionContext actionContext = ActionContext.getContext(); actionContext.put("request", "request应用范围"); actionContext.put("names", Arrays.asList("wangxinwe,sinwee,zhangxueyou,liudehua")); actionContext.getSession().put("session", "session应用范围"); actionContext.getApplication().put("application", "application应用范围"); return "actionContext"; } public String byServletActionContext() throws IOException { HttpServletRequest request = ServletActionContext.getRequest(); request.setAttribute("request", "request域"); HttpSession session = request.getSession(); session.setAttribute("session", "session域"); ServletContext application = ServletActionContext.getServletContext(); application.setAttribute("application", "application域"); //HttpServletResponse response = ServletActionContext.getResponse(); //PrintWriter writer = response.getWriter(); //writer.write("通过ServletActionContext得到的HttpServletResponse"); return "servletActionContext"; } }
ImplementAware.java 在该类中使用第三种方法
package com.sinwee.visitWebElement; 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 ImplementAware extends ActionSupport implements RequestAware,SessionAware,ApplicationAware{ /** * */ private static final long serialVersionUID = 2534117735365564103L; private Map<String, Object> request; private Map<String, Object> session; private Map<String, Object> application; public String byImplAware() { this.request.put("request", "request域_aware"); this.session.put("session", "session域_aware"); this.application.put("application", "application域_aware"); return "byImplAware"; } @Override public void setRequest(Map<String, Object> request) { this.request = request; } @Override public void setSession(Map<String, Object> session) { this.session = session; } @Override public void setApplication(Map<String, Object> application) { this.application = application; } }
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.devMode" value="true" /> <package name="vistWebElement" namespace="" extends="struts-default"> <action name="byActionContext_*" class="com.sinwee.visitWebElement.VisitWebElement" method="{1}"> <result name="actionContext"> /showValueByActionContext.jsp </result> </action> <action name="byServletActionContext_*" class="com.sinwee.visitWebElement.VisitWebElement" method="{1}"> <result name="servletActionContext"> /showValueByServletActionContext.jsp </result> </action> <action name="byImplAware_*" class="com.sinwee.visitWebElement.ImplementAware" method="{1}"> <result name="byImplAware"> /showValueByImplAware.jsp </result> </action> </package> </struts>
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
visitWebElement.jsp 访问action的jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>测试struts2访问Web元素</title> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <form name="f" method="post"> <input type="button" value="通过ActionContext访问Web元素" onclick="javascript:document.f.action='${pageContext.request.contextPath}/byActionContext_byActionContext';document.f.submit();"/> <input type="button" value="通过ServletActionContext访问Web元素" onclick="javascript:document.f.action='${pageContext.request.contextPath}/byServletActionContext_byServletActionContext';document.f.submit();"/> <input type="button" value="通过实现RequestAware,SessoinAware,ApplicationAware访问Web元素" onclick="javascript:document.f.action='${pageContext.request.contextPath}/byImplAware_byImplAware';document.f.submit();"/> </form> </body> </html>
showValueByActionContext.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'showValueByActionContext.jsp' starting page</title> </head> <body> 显示通过ActionContext对象访问Web元素设置的值<br/> request域中的元素:${requestScope.request}<br/> request域中的list元素: <c:forEach var="name" items="${requestScope.names}"> ${name } </c:forEach> <br/> session域中的元素:${sessionScope.session }<br/> application域中的元素:${applicationScope.application } </body> </html>
showValueByServletActionContext.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'showValueByServletActionContext.jsp' starting page</title> </head> <body> 显示通过ServletActionContext对象访问Web元素设置的值<br/> request域中的元素:${requestScope.request}<br/> session域中的元素:${sessionScope.session }<br/> application域中的元素:${applicationScope.application } </body> </html>
showValueByImplAware.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 'showValueByImplAware.jsp' starting page</title> </head> <body> 显示通过实现AwareRequest,AwareSession,AwareApplication访问Web元素设置的值<br/> request域中的元素:${requestScope.request}<br/> session域中的元素:${sessionScope.session }<br/> application域中的元素:${applicationScope.application } </body> </html>
- ITEye_VisitWebElement.zip (3.4 MB)
- 下载次数: 1
发表评论
-
struts中的文件上传
2013-06-23 15:41 725struts中的文件上传 在struts2的文件上传中有两点要 ... -
struts2校验数据
2013-06-23 11:28 602struts2校验数据 在使用st ... -
action接受前台参数—属性接收和实体模型接收
2013-06-20 23:13 1049struts2中的action接收客户端页面传递过来的数据 在 ... -
struts2动态访问方式
2013-06-16 18:29 995strtus2中对action的访问形式 对于对action ... -
struts2的工作原理
2013-06-16 16:58 867struts2的工作原理(面试经常问到的) 当客户端发起一个 ...
相关推荐
在"Struts2访问Web元素"这个主题中,我们将深入探讨如何在Struts2框架中与网页元素进行交互。 首先,我们需要了解Struts2的核心组件——Action类。Action类是业务逻辑的载体,负责处理用户请求,并返回相应的结果。...
在"Struts2 访问web元素"这个主题中,我们主要探讨的是如何在Struts2框架中与HTML表单、按钮、文本框等web元素进行交互。这涉及到Action类、Result类型以及Struts2提供的强大数据绑定机制。 1. **Action类**:在...
在Struts2中,访问web元素是开发过程中常见的需求,比如获取请求参数、session数据或者cookie等。本篇文章将详细介绍Struts2中四种访问web元素的方法。 1. **Action上下文(ActionContext)** ActionContext是...
9. **Struts2访问Web元素** Struts2可以通过OGNL(Object-Graph Navigation Language)轻松地访问和操作Web元素,如请求参数、session、application范围内的对象等。 10. **Stack Context** Stack Context是...
在这个主题“Struts2_访问web元素_accessWebElements_s”中,我们将深入探讨如何在Struts2中有效地访问和操作web元素。 首先,了解Struts2的生命周期至关重要。当一个HTTP请求到达服务器时,Struts2框架会接管请求...
- **标签库**:Struts2提供了丰富的标签库,可以帮助开发者快速构建表单和页面元素,提高开发效率。 - **拦截器**:拦截器是Struts2的一个重要特性,可以在请求到达Action之前或之后执行特定的操作,如验证用户登录...
Struts2是一个强大的Java web应用程序框架,用于构建和部署企业级的MVC(Model-View-Controller)架构的Web应用。这个"留言板留言板struts2"项目,显然是一个基于Struts2实现的简单留言板系统,旨在展示Struts2的...
在探讨Struts2.5中的`web.xml`配置时,我们首先需要理解`web.xml`在Java Web应用中的角色以及它如何与Struts框架交互。`web.xml`是Java Web应用的核心配置文件之一,用于定义应用程序级别的配置信息,如过滤器、监听...
在Struts中,可以利用ActionContext来访问session。 6. **安全考虑**:在实际开发中,为了增强安全性,还需要考虑密码加密存储、防止SQL注入、XSS攻击等问题。例如,密码在验证前应先进行哈希处理,不直接存储明文...
5. **配置web.xml**:在web.xml中引入Struts2的过滤器,配置过滤器的映射,并指定Struts2的配置文件位置。 6. **添加Struts2库**:将下载的Struts2库(包括struts2-core等依赖库)添加到项目的类路径中。 7. **...
综上所述,Struts2是一个功能强大且灵活的Java Web开发框架,它不仅提供了丰富的特性,还通过其独特的设计模式和插件机制,使得开发者能够快速构建高质量的Web应用程序。通过对Struts2核心概念和技术的理解,开发者...
在Java Web开发中,Spring、Struts2和MyBatis是三个非常重要的开源框架,它们分别负责不同层面的任务。Spring提供了全面的结构化和依赖注入功能,Struts2则是一个强大的MVC(Model-View-Controller)框架,而MyBatis...
Struts2允许开发者使用XML或注解来配置Action、Result和其他元素。这使得配置更为灵活,减少了硬编码。 4. **拦截器(Interceptors)**: 拦截器是Struts2的一大特色,它们可以插入到Action调用链中,实现如日志...
6. **tablib**: Tablib可能指的是Struts2的标签库,它提供了一系列预定义的JSP标签,简化视图层的开发,如表单元素、数据展示等。 通过这些知识点,我们可以了解到"Struts2 demo2"可能涵盖了Struts2的核心特性,如...
这里的`<action>`元素定义了一个名为`helloWorld`的动作,当用户访问相应的URL时,Struts2会调用`com.example.HelloWorldAction`类中的方法,并将结果渲染到`/WEB-INF/helloworld.jsp`页面上。 #### 总结 通过以上...
对于Struts2访问Web元素,有两种主要方式。第一种是直接在Action中通过`ActionContext`来获取`request`、`session`和`application`域中的数据。例如,`#request.value`、`#attr`可以分别用于访问请求和session中的...
在Struts2中,`web.xml`是应用的部署描述符,它定义了初始化参数、过滤器、监听器和Servlet等关键元素。以下是你需要关注的部分: 1. **StrutsPrepareAndExecuteFilter** - 配置Struts2的过滤器,负责拦截所有HTTP...
Struts2是一个非常流行的Java Web框架,用于构建和维护可扩展且易于管理的企业级应用程序。在使用Struts2的过程中,可能会遇到一个常见的问题,即应用试图跳转到一个不存在的页面,导致用户看到404错误。404错误通常...
在Struts2中,`struts.xml`是核心配置文件,它是整个应用的入口点,负责定义动作(Actions)、结果(Results)、拦截器(Interceptors)等关键元素。让我们深入探讨一下`struts.xml`的基本配置: 1. **Action配置**...