Struts2 温习笔记 001

谈到Struts,自己对其不是完全的陌生。

从视频到官方文档多多少少也看过两三遍了。当然,对于我自身来说,看再多也并没有得到实践中的经验。

现在决定转业到Java开发方面,或许,再次的温习多少也会给一些新的启示和思想的启迪吧。

现在和毕业生一起,参加招聘会,网投,希望自己在2010年能够得到一次机会吧。

 

介绍Struts2及Struts2开发环境的的搭建

Struts2是Webwork的升级版本,虽然它和Struts1拥有相似的名字,但Struts1和Struts2之间的原理有着些许的区别。但两者都是实现了MVC框架。可以说webwork和struts2有更多的相似度和相似的运行机理。

我们知道,软件以及框架的升级都是在fix bug的同时,采用一种更合理更易于扩展的模式进行部分重构,在Struts1中,MVC架构中的action的实现类需要显示继承action类,并且在action类中的execute()参数中,耦合着servlet和Struts1的API,所以,这是一种侵入式设计。这并不是一个好的实践方案。

在Struts2中,增加了许多相比Struts1更为合理的改进。

1.Struts2采用了非侵入式设计,框架让应用与servlet、Struts2之间没有耦合。

2.Struts2采用了拦截器,利用过滤器,可以实现aop设计,例如可以利用它来进行权限的设置

3.Struts2增加了对一些表现层框架的支持

4.Struts2扩大了对包、全局、和action范围内的国际化配置

5.Struts2可以对指定方法进行验证,这与Struts1有些许不同,因为Struts1的验证问题,程序员一般不会采用Struts1框架来做验证工作,而这在Struts2中则广泛被采用

6.Struts2增加了类型转换机制,可以把指定的参数转换成特殊的类型,而在Struts1中则必须要实现beanutil

...

在Struts2中,拥有以上或更多特点,上面简单了列举了一些代表性的特点。

 

了解Struts2的新特性之后,开始搭建Struts2的开发环境,需要三个步骤:

  • 将Struts2需要的jar包导入开发环境当中
  • 编写Struts2的配置文件(struts.xml)
  • 在web.xml中设置Struts2的启动项(采用Struts2提供的过滤器)(针对Struts2.1.3之前的版本和之后的版本,官方推荐的过滤器有了改变,具体看一下标准文件内容)

最小化必须的jar包

  • struts2-core-2.x.x.jar
  • xwork-2.xx.jar
  • ognl-2.6x.jar
  • freemarker-2.3.x.jar
  • commons-logging-1.1.x.jar
  • commons-fileupload1.2.1.jar
    (注意:不要将所有Struts2框架包中lib目录下的所有jar文件全部导入应用环境中,因为默认strust2中包含了很多第三方插件,例如struts-plus*.jar。类似这样的jar包需要第三方jar包才可以正常运行,如不然,在运行Struts2的时候会提示找不到jar包)

struts.xml文件标准内容

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. </struts>  

 

web.xml文件标准内容

Xml代码 复制代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <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">  
  3.   
  4.     <display-name>Struts Blank</display-name>  
  5.   
  6.     <filter>  
  7.         <filter-name>struts2</filter-name>  
  8.         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>  
  9.     </filter>  
  10.   
  11.     <filter-mapping>  
  12.         <filter-name>struts2</filter-name>  
  13.         <url-pattern>/*</url-pattern>  
  14.     </filter-mapping>  
  15.   
  16.     <welcome-file-list>  
  17.         <welcome-file>index.html</welcome-file>  
  18.     </welcome-file-list>  
  19.   
  20. </web-app>  

以上两个文件可以直接复制以上代码内容,或者可以再Struts2自带的blank.war示例中找到相应的文件,进行内容拷贝和复制。

注意:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter过滤器执行的时候,会自动运行init方法来读取struts.xml文件以JavaBean形式来保存到内存当中。这样,在每一次请求Struts2框架的时候都是访问内存中的JavaBean类实现Struts2的初始化,而不会重复读取struts.xml文件。

 

这里我采用的是Struts2.1.8,或许在日后的版本中会有些许改变,请查看最新文档说明。

 

最后运行一下Strust2框架测试是否配置成功,在web环境下运行服务器查看是否有错误信息输出。

如没有错误信息输出,则可认为环境配置成功。

(这里也有种情况是没有错误信息,但以后进行应用开发的时候出现404问题,一般是web.xml没有设置过滤器的原因,我常犯这样的问题。)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值