Struts2深入浅出之一

 

                                                                       深入浅出struts2

   简介:


      自从1997年第一个Servlet规范发布以来,我们在用Java开发Web应用这条路已经走了很远很远,我们学会了很多,也曾经不止一次地对开发Wbe
应用的方式做出过改进,谈到这里我不的不说Apache Struts的产生就是一个伟大的跨越,从技术的角度上来讲,它是Web程序上的一次跨越性的进步,
      Struts2是Struts的下一代产品,Struts2是建立在WebWork之上的,当我们说起WebWork的时候,我们实际上说的是两个项目----XWork和WebWork。
XWork是一个通过的命名框架,它提供了很多核心的功能,例如:actions,验证和拦截器,它可以完全独立于执行上下文运行,并提供了一个内部的依赖
注入机制,用来做配置和工厂实习的管理
       而WebWork则是一个完全独立的上下文,它用Web应用中运行所需的上下文把XWork包装起来,并提供了可以简化Web开发的特定实现
Struts的目标很简单--使Web开发变的更加容易,为了达成这一目标,struts2中提供了很多新特性,比如智能的默认设置,annotation的使用以及“惯例重于配置”原则的应用,
这样大大减少了XML配置,Struts2中的Action都是POJO,这一方面增强了Action本身的可测试性,另一方面也减少了框架内部的耦合度。开发人员可以通过拦截器(可以
自定义拦截器或则使用Struts2提供的拦截器)来对请求进行预处理和后处理,这样的话,对于处理请求就变得更加模块化,从而进一步减小耦合度。讲到这里我想下面和大家一起
开始走进Struts2

    以下是Struts2的处理过程图

     

     FilterDispatcher是一个serlvet过滤器,它是整个Web应用的配置项,需要在“Web.xml”中进行配置

     <filter>
         <filter-name>action2</filter-name>
          <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
     </filter>   
     <filter-mapping>
            <filter-name>action2</filter-name>
             <url-pattern>/*</url-pattern>
     </filter-mapping>

  如果是配置一个最基本的Web应用的话,这样就足够了,剩下的就是自定义一些Web应用的执行环境和配置应用中的组件
,其中前者主要通过“struts.properties”来完成,而后者是在“struts.xml”中进行配置,下面我们来谈谈这个两个
配置文件的细节


      struts.properties 文件


   这个文件提供了一个更改框架默认行为方式的机制,在一般情况下,如果不是打算让调试更加方便的话,那你根本没有
必要更改这个文件,在这个文件中定义的属性都可以再“web.xml”文件的“init-param”标签中进行配置,或者通过“struts.xml”
文件中的“constant”标签来修改
      在Struts2-core的jar中,有一个默认的属性文件,名为default.properties,如果要对属性进行修改的话,只需要在项目的
源代码目录下,创建一个叫做“struts.properties”的文件,然后把一些想要修改的属性添加到这个文件中,新的属性就会把
默认的给覆盖了,一下几个属性值得注意:
        struts.il8n.reload=true ---激活重新载入国际化文件的功能
        struts.devMode=true  ----激活开发模式,以提供更全面的调试功能
        struts.configuration.xml.reload=true  ---激活重新载入XML配置文件的功能(这是为Action而准备的),当文件被修改之后
,就不需要重新载入Servlet容器中的整个Web应用了
        struts.url.http.port=8080   -----配置服务器运行的端口号(所有生成的URL都会被正确创建)

 

     struts.xml文件
 
    <include .../>是<struts>标签的一个子标签,它可以把其它配置文件导入进来,从而实现了Struts2的模块化,它的“file”属性定义了
要导入的文件的名称-------该文件要和“struts.xml”一样有着相同的结构
 注意:导入文件时,注意导入的顺序,因为从文件被导入的那个点开始,该文件中的信息才能被访问到,也就是说,如果要使用另外一个
文件中所定义的标签,那么该文件就必须要在被引用之前就配置好,在这里要说的是,有些文件需要显示导入,而有些则会被自动导入。
“struts-default.xml”和“struts-plugin.xml”就属于后者,它们内部都包括有结果类型、拦截器、拦截器堆栈、包以及web应用执行环境的
配置信息,这两个文件的区别在于:struts-default.xml提供的是struts2的核心配置信息,而struts-plugin.xml则描述了特定插件的配置信息
每个插件的jar中都要有一个struts-plugin.xml文件,该文件会在系统启动时装载

   下次我将和大家谈论 Package

 

    
  

 

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章