- 浏览: 779058 次
- 性别:
- 来自: 西安
文章分类
最新评论
-
wangyudong:
新版本 Wisdom RESTClienthttps://gi ...
jersery client调用REST框架web services服务的一个示例 -
wangyudong:
很多REST Client是不支持自动化测试RESTful A ...
jersery client调用REST框架web services服务的一个示例 -
doubledumbao:
感谢你的代码,在使用中发现两处小问题,已经做了修改,再次感谢。 ...
Java Zip Utils 压缩/解压缩工具包 -
doubledumbao:
package com.ry.messagedigest;
...
Java Zip Utils 压缩/解压缩工具包 -
phrmgb:
对wsdl讲解的很细致,收藏
Web Service (二) WSDL详解
http://blog.sina.com.cn/s/blog_5de48f8b0100e6ii.html
Struts 2 与Struts 1相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架:WebWork基础上发展起来的。从某种程度上来讲,Struts2没有继承Struts 1的血统,而是继承WebWork的血统。或者说,WebWork衍生出了Struts2,而不是Struts 1衍生了Struts2。因为Struts2是WebWork的升级,而不是一个全新的框架,因此稳定性、性能等各方面都有很好的保证:而且吸收了Struts 1和WebWork两者的优势,因此,是一个非常好的MVC框架.
1. Struts2相比于Struts1的优点:
<1> Struts2没有像Struts1那样跟Servlet API和Struts API有着紧密的耦合,Struts2的应用可以不依赖于Servlet API和Struts API。 Struts2的这种设计属于无侵入式设计,而Struts1却属于侵入式设计。
下面的代码是Struts1的请求处理Action模版:
public class OrderListAction extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { } }
在execute方法的参数中有HttpServletRequest和HttpServletResponse对象,所以与Servlet API有紧密的耦合.
<2> Struts2提供了拦截器,利用拦截器可以进行AOP编程,实现如权限拦截等功能。
<3> Strut2提供了类型转换器,我们可以把特殊的请求参数转换成需要的类型。在Struts1中,如果我们要实现同样的功能,就必须向Struts1的底层实现BeanUtil注册类型转换器才行。
<4> Struts2提供支持多种表现层技术,如:JSP、freeMarker、Velocity等
<5> Struts2的输入校验可以对指定方法进行校验,解决了Struts1长久之痛。
2.搭建Struts2开发环境:
.搭建Struts2开发环境首先你得核对你的java环境是否满足以下的最低要求:
Servlet API 2.4及以上版本, JSP 2.0 及以上版本,同时 Java 5或以上版本.
搭建Struts2环境时,我们一般需要做以下几个步骤的工作:
<1> 找到开发Struts2应用需要使用到的jar文件;
到官网下载struts-2.x.x-all.zip。下载完后解压文件,开发struts2应用需要依赖的jar文件在解压目录的lib文件夹下。不同的应用需要的JAR包是不同的。下面给出了开发Struts 2程序最少需要的JAR。
struts2-core-2.x.x.jar :Struts 2框架的核心类库;
xwork-2.x.x.jar :XWork类库,Struts 2在其基础上构建;
ognl-2.x.x.jar :对象图导航语言(Object Graph Navigation Language),struts2框架通过其读写对象的属性;
freemarker-2.3.x.jar :Struts 2的UI标签的模板使用FreeMarker编写;
commons-logging-1.1.x.jar :ASF出品的日志包,Struts 2框架使用这个日志包来支持Log4J和JDK 1.4+的日志记录;
commons-fileupload-1.2.1.jar 文件上传组件,在此 jar 包中包含了 RequestContext 类,如果不导入该 jar 包将会报异常。 2.1.6版本后需要加入此文件。
以上jar 文件的说明是针对struts-2.1.6的,我这里的示例程序都是使用的struts-2.2.1,所以在jar上面有些变化。
struts-2.2.1除了要加入上面的六个jar之外,还需要加入javassist-3.7.ga.jar.
推荐方法:
其实没有必要按上面的方法自己去一个一个的加入jar文件,那太麻烦了,你可以在你下载的struts的zip解压文件的app目录下,找到一个struts2-blank-2.x.x.war文件,你可以把它放到tomcat的wepabbs下面运行tomcat将其解压,或者是从cmd中进入到此目录下,然后运行命令
jar -xf struts2-blank-2.2.1.war
解压到当前文件夹中。然后将它WEB-INF/lib目录下面的所有jar拷到你的工程的lib上当即可。同样struts.xlm以及web.xml文件都可以在这个示例程序中拷贝。这是最安全快速的方法。因为struts2-blank-2.x.x.war这个示例程序就是给你提供一个空的struts2工程模板的。
还有一种最省事的做法是:
如果不需要跟第三方框架集成,把struts-2.x.x\lib目录下不带-plugin结尾的jar文件都添加入类路径即可。如果需要跟第三方框架集成,这时候还需要加入对应的-plugin jar文件。例如跟spring集成,需要加入struts2-spring-plugin-2.x.x.jar.不过这种方法不推荐使用,因为会导入多余的很多jar,且因为plugin这些jar是与第三方集成的,你导入了反而会报错,因为你要集成的第三方的jar文件没有导入。
<2> Struts2的配置文件说明:
(1).web.xml文件
主要完成对StrutsPrepareAndExecuteFilter的配置(在以前的版本中是对FilterDispatcher配置,新版本同样支持用FilterDispatcher配置),它的实质是一个过滤器,它负责初始化整个Struts框架并且处理所有的请求。这个过滤器可以包括一些初始化参数,有的参数指定了要加载哪些额外的xml配置文件,还有的会影响struts框架的行为。除了StrutsPrepareAndExecuteFilter外,Struts还提供了一个ActionContexCleanUp类,它的主要任务是当有其它一些过滤器要访问一个初始化好了的struts框架的时候,负责处理一些特殊的清除任务。
(2).struts.xml文件
框架的核心配置文件就是这个默认的struts.xml文件,在这个默认的配置文件里面我们可以根据需要再包括其它一些配置文件。在通常的应用开发中,我们可能想为每个不同的模块单独配置一个struts.xml文件,这样也利于管理和维护。这也是我们要配置的主要文件。
Struts2默认的配置文件为struts.xml ,此配置文件要放在src目录下,实质就是成为classpath环境变量下的文件.该文件的配置模版如下:
<?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> </struts>
(3).struts.properties(参default.properties)
在Struts框架使用了很多属性,我们可以通过改变这些属性来满足我们的需求。要改变这些属性,只需在struts.properties文件中指定属性的key和value即可。属性文件可以放在任何一个包含在classpath中的路径上,但是通常我们都把它放在/WEB-INF/classes目录下面。我们可以在struts-default.properties文件中找到一个属性的列表。
(4)struts-default.xml
此文件是struts2框架默认加载的配置文件,它定义了struts2一些核心bean和拦截器,它会自动包含(included)到struts.xml文件中(实质是通过<package extends="struts-default">),并为我们提供了一些标准的配置。我们可以在struts2-core.jar中找到这个文件。
(5)其它配置文件
velocity.properties,struts-default.vm,struts-plugin.xml
更详细的说明请参见 struts2 reference文件。
<3>现在来开发一个示例程序struts_helloworld
步骤一,新建struts_helloworld项目,并导入struts2的基本jar包。
步骤二,建立LoginAction文件,主要代码如下:
public class LoginAction implements Action { private String userName; private String password; ...省略get/set方法 public String execute() throws Exception { if (userName.equals("struts2")) { return "loginSuccess"; } else { return "loginFailure"; } } }
说明:实现了Action接口,主要是为了保证execute的正确定义,其实我们也可以不实现此接口,只要能保证execute方法书写的正确书写(方法名,返回值)。如我struts_helloworld这个工程示例中的HelloWorldAction。
步骤三,在struts.xml文件中注册LoginAction。此配置文件要放在src目录下,实质就是成为classpath环境变量下的文件。主要代码如下:
<?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> <package name="myDemo" namespace="/demo" extends="struts-default"> <action name="helloWorld" class="demo.helloworld.action.HelloWorldAction" method="execute"> <result name="success">/WEB-INF/jsp/hello.jsp</result> </action> <action name="login" class="demo.login.action.LoginAction" > <result name="loginSuccess">/WEB-INF/jsp/success.jsp</result> <result name="loginFailure">/WEB-INF/jsp/failure.jsp</result> </action> </package> </struts>1. 在struts2框架中使用包来管理Action,包的作用和java中的类包是非常类似的,它主要用于管理一组业务功能相关的action。在实际应用中,我们应该把一组业务功能相关的Action放在同一个包下。
6。package 配置相关
属性名 |
是否必须 |
说明 |
name |
是 |
Package 的唯一标识,不允许同名 |
extends |
否 |
指定要继承的包 |
namespace |
否 |
指定名称空间 |
abstract |
否 |
声明包为抽象否 |
<body> <form action="<%=request.getContextPath()%>/demo/login.action" method="get"> 户名:<input type="text" name="userName"><br> 密码:<input type="password" name="password"><br> <input type="submit" value="login"> </form> </body>
<body> 登录失败,错误的用户名: <s:property value="userName" /> <br> <a href="<%=request.getContextPath()%>/login.jsp">返回</a> </body>
<body> ${userName }登录成功!</body>
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <filter> <filter-name>struts2</filter-name> <!-- <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> --> <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>
- struts_helloworld.rar (3.1 MB)
- 下载次数: 29
发表评论
-
Struts2中Result配置详解
2011-06-24 17:24 01.Struts中Action接口的源代码如下所示:publi ... -
struts2中的拦截器(二)
2010-11-12 17:09 1161在struts2中的拦截器的基础上进行修改,以实现Interc ... -
struts2中的拦截器
2010-11-12 16:33 2132一、概述strust2中的拦截器 拦截器是St ... -
struts2上传文件
2010-11-12 15:09 5405一、struts2上传单个文件 第一步:确保在WEB-INF ... -
struts2中获取request/session/application
2010-11-11 16:03 30561。访问或添加request/session/applicat ... -
struts2自定义类型转换器
2010-11-11 15:46 2002struts有两种类型转换器:局部类型转换器和全局类型转换器。 ... -
action接收请求参数
2010-11-11 14:54 4428一、采用基本类型接收请求参数(get/post) 在Acti ... -
action动态方法调用和使用通配符定义action
2010-11-10 16:59 3760一。动态方法调用 如果Action中存在多个方法时,我们可以 ... -
struts2为action的属性注入值、指定多个配置文件
2010-11-10 16:03 4618一、struts2为action的属性 ... -
struts2中一些需要注意的常量
2010-11-10 15:46 2262一。“struts.action.extension”指定需要 ... -
Action配置的各项默认值及名称的搜索顺序
2010-11-10 15:20 2256一、Action配置的各项默认值: 1。如果没有为actio ... -
struts2架构图
2010-10-29 11:47 2464此文件copy自struts2 reference.个人认为这 ...
相关推荐
根据提供的文件信息,我们可以推断出这是一套关于Struts2框架的教学视频资料,由知名的教育机构传智播客在2015年9月发布。下面将对Struts2框架进行详细介绍,并基于该视频资料可能涵盖的核心知识点进行展开。 ### ...
本视频教程由传智播客提供,旨在帮助初学者理解Struts2的基础概念,并指导如何搭建Struts2的开发环境。 首先,我们要了解Struts2的核心概念。Struts2是一个基于MVC(Model-View-Controller)设计模式的框架,它的...
### 传智播客Struts2全程学习笔记 #### Struts2的优点 1. **无侵入式设计**:与Struts1相比,Struts2的设计更为先进,它不依赖于Servlet API或Struts API,这使得Struts2更加灵活且易于集成到其他环境中。在代码...
Struts2是一个强大的Java Web...总的来说,传智播客的Struts2教程将帮助你深入理解这一框架,提升你的Java Web开发技能。通过观看视频教程,结合实际的项目练习,你将能够熟练地运用Struts2构建高效稳定的企业应用。
这是关于struts框架的笔记,是传智播客讲师编写的,................................................。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...
传智播客02_struts2_1(基础_接收参数).ppt
传智播客5_struts2(基于注解零配置).ppt
本资料包包含了关于Struts2的学习笔记和代码示例,旨在帮助初学者或进阶者深入理解并熟练掌握这一框架。 笔记部分可能涵盖以下知识点: 1. **Struts2基础**:介绍Struts2的基本概念,包括Action、Result、...
传智播客 2010年 张孝祥 Struts2PPT 80页
struts2-传智播客-课件
SSH(Struts2 + Spring + Hibernate)是Java开发中一种常见的企业级应用框架组合,它由三个主要组件构成,用于构建高效、灵活的Web应用程序。本篇将详细讲解这三个组件的核心概念、工作原理以及如何在实际项目中进行...
传智播客3_struts2(拦截器_文件上传_输入验证_国际化).ppt
《2010传智播客struts2.1.8视频教程》1.09G 《EJB3.0视频教程》180M 《JDBC视频教程》664M 《jpa详解视频教程》165M 《spring2.5视频教程》365M 《传智播客_AJAX视频教程》1.27G 《传智播客_FTP视频教程》117M ...
传智播客Struts2的PPT,是传智播客黎活明老师的东西,和视频是配套的东西还不错