`
Candy_Code
  • 浏览: 14478 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

struts2 web应用配置详解

阅读更多

1.首先来认识一下几个文件:
①web.xml :位于WEB-INF下。需自行创建。每一个web应用程序都应该有一个web.xml,它就像web应用程序的一本使用说明书,告诉服务器程序(如:tomcat) 该如何使用web 应用程序。
②struts-default.xml:位于struts2-core-2.XXX.jar的根目录下。定义了struts2默认配置。一般不要修改。包括result-type、拦截器和名为struts-default的package。通常每个包都应当继承struts-defauult包。struts2的众多核心功能都是由Interceptor(拦截器)实现的,Interceptor是struts2的基石,而在struts-default.xml中定义了这些Interceptor。可以这么说:只有继承了strut-default我们才能使用struts2的核心功能。
③struts-plugin.xml:位于struts2-XXX-pluin-2.X.XX.jar的根目录下。一般不要修改。用于配置插件使用的文件。可以用它来方便的加入一些特定的功能。它定义了一个package继承自struts-default,可以说struts-pluin.xml是struts-default.xml的补充。
④struts.xml:位于WEB-INF\classes目录下。主要用于配置页面的访问的路径。通常需要定义一个package,继承自struts-default,这样就拥有了struts-default的所有配置,从而很大程度的减轻了struts.xml的配置量。
⑤default.properties:位于struts2-core-2.XXX.jar中的org.
apache.struts2包中。这是一个属性文件,以key=value的形式存储配置信息,然后由struts2读取。它定义了struts2框架的默认配置。由struts2事先定义好了,一般不要修改。
⑥struts.properties:可有可无。用时需自行创建。可以用于配置struts,例如:struts.action.extension 属性用于指定访问action的后缀名,多个后缀名之间用英文逗号(,)隔开
struts.action.extension=do,,
这句话指定了action的后缀名为do或者为空,则我们想访问TestAction的url为http://localhost:8080/webapp/TestAction.do
或者http://localhost:8080/webapp/TestAction
所有配置信息都可以struts.xml编写,使用

<constant name=”key” value=”value”/>


加载顺序
default.properties -->struts.xml -->struts.properties
若三个文件中存在重复的属性,则后加载的会覆盖之前加载的。
详细参数配置请查阅:
http://candy-code.iteye.com/blog/1442335
2.一般的配置步骤
①web.xml
关键在于Filter(过滤器)的配置,/*表示匹配web app根目录下的所有内容,即过滤所有的内容然后交给StrutsPrepareAndExecuteFilter去处理,只有这样我们才能真正使用struts2
这里需注意两点:
1’ struts2 2.0.x 至2.1.2版本使用的过滤器是FilterDispatcher,自2.1.3版本StrutsPrepareAndExecuteFilter替代了FilterDispatcher
2’ 如果在url中只写web app名,则访问的<welcome-file>,此时不会被过滤器过滤

	<?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">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <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>


② 将所需类库考入WEB-INF\lib下
struts完整版类库都在lib目录下,一般情况下我们并不需要所有的类库。我们只需要选择其中的一部分,然而我们在开发之前并不能确定到底需要哪些类库。最简单的方法是将struts\apps下的struts2-blank.war解压开,然后将其WEB-INF\lib目录下的所有jar file都拷入你的应用程序的lib目录下,这些类是最基本最常用的类库。
所需基本库文件有:(不同版本略有差别,以2.3.1.2版本为例)
struts2-core-2.3.1.2.jar -->struts2核心类库
xwork-core-2.3.1.2.jar    -->xwork核心类库
ognl-3.0.4.jar   -->OGNL表达式类库
commons-io-2.0.1.jar -->输入输出
freemarker-2.3.18.jar-->
freemaker支持类库
asm-3.3.jar 、asm-commons-3.3.jar、asm-tree-3.3.jar、
commons-fileupload-1.2.2.jar
commons-lang-2.5.jar、javassist-3.11.0.GA.jar
③struts.xml
关键点在于定义一个package并继承struts-default.
【package 属性】
name:必选属性。package的名字,用于区别不同的package
namespace:访问路径,允许形式有 /、/XX、/XX/、/XX/xx
extends:父package的名字
【action属性】
name:必选属性。action的访问名。访问形式为:
actionName. extension
extension(后缀名)在default.properties中定义为action或空
class:可选属性。指定action对应的类,若不指定,默认
com.opensymphony.xwork2.ActionSupport
method:可选。指定访问的action的方法。默认为execute()
  【result属性】
name:用于区别多个result。它与Action的返回值对应。struts会根据result返回的字符串找到同名的result的标签,从而确定要访问的页面。默认为success
type:页面跳转的类型。有chain、redirect、dispatcher、redirectAction等
示例:

		
<?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="default" namespace="/" extends="struts-default">
		<default-action-ref name="index"></default-action-ref>
		<action name="index" class="com.jnmc.unique.MyAction">
			<result>/index.jsp</result>
		</action>
	</package>
</struts>


3.struts.xml配置补充
①默认action的配置:当找不到指定的页面的时,默认访问指定页

<default-action-ref name="index"></default-action-ref>


name:action的名字
②全局结果集:被同一个包内所有的action所共享的结果集

<global-results>
			<result name="error">/error.jsp</result>
	</global-results>


③异常映射:当action抛出异常时,会被struts的拦截器捕捉到。然后根据异常映射跳转到指定的action,来处理异常。
result:目的action的name
exception:指定异常的类型

<exception-mapping result="error" exception="java.lang.Exception"/>


④全局异常映射:
被同一个package下的所有action共享。一般与全局结果集配合使用。当然也可以在每一个action分别指定处理exception的action。

<global-results>
			<result name="error">/error.jsp</result>
		</global-results>
		
		<global-exception-mappings>
			<exception-mapping result="error" exception="java.lang.Exception"/>	
		</global-exception-mappings>


⑤wildcard(通配符):
通配符的使用可以大大降低配置量
* : 匹配任意长度的字符串(字符串之间不能有空格)
{n}: 代指之前上文中出现的第n个*

	<action name="user_*" class="com.jnmc.unique.User{1}Action">
			<result>/user_{1}.jsp</result>
	</action>


则在浏览器中敲
http://hostname:port/webapp/user_Add,会访问UserAaddAction,若返回success,则显示user_add.jsp页面
⑥Interceptor(拦截器):
在struts-default.xml配置了一大堆Interceptor,建议阅读
一下struts-default.xml。
先介绍一个概念:Interceptor Stack(拦截器堆)
它是一个Interceptor链表,其中有顺序的存储了多个Interceptor。它们都存储在堆内存中。
在action标签对中可以添加拦截器的配置。因为在struts-default.xml有如下配置:

<default-interceptor-ref name="defaultStack"/>


所以我们在不指定Interceptor的情况下会使用defaultStack中定义的多个Interceptor.若指定,则会覆盖struts-default.xml中的配置。建议这么做:

<action name="index" class="com.jnmc.unique.MyAction1">
		<interceptor-ref name="defaultStack"/>
<interceptor-ref name="chain"/>
</action>


这样就将多个拦截器加入了拦截器链表中,执行顺序与添加顺序相同。
注意:chain是struts-default.xml中配置的单个Interceptor。
⑦自定义拦截器
只需创建一个类(不妨叫:MyInterceptor)继承自AbstractInterceptor或者实现Interceptor接口,然后在struts.xml的package标签对中配置:
示例:

<interceptors>
			<interceptor name="timeInterceptor" class="com.jnmc.struts2.interceptor.TimeInterceptor"/>
</interceptors>

然后在action中指定它。(方法前面已经讲过了)

---------------------------更多关于struts的细节,我会陆续贴出
分享到:
评论

相关推荐

    Struts2配置详解

    ### Struts2配置详解 #### 一、总览 在深入了解Struts2的配置细节之前,我们先来简要概述一下Struts2框架的核心特点及其配置文件的基本结构。Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web...

    struts2的convention配置详解 很全

    通过遵循约定并利用注解,你可以构建出结构清晰、易于维护的Java web应用。当然,理解并熟练掌握这些配置规则,是充分发挥Convention插件优势的关键。在实践中不断探索和优化,你会发现Struts2 Convention能够显著...

    struts2的struts.properties配置文件详解

    Struts2是一个基于MVC模式的Web应用程序框架,它提供了一个名为Struts.properties的配置文件,该文件用于配置Struts2的各种参数和设置。下面将对Struts.properties配置文件中的重要参数进行详细解释。 1. struts....

    struts2入门实例教程详解

    ### Struts2入门实例教程详解 ...通过以上步骤,我们不仅能够理解Struts2与Struts1在实现机制上的区别,还能掌握如何利用Struts2创建一个简单的Web应用程序。这为后续深入学习Struts2框架提供了坚实的基础。

    Struts2各配置文件详解.doc

    总结来说,理解并熟练掌握Struts2的配置文件对于开发高效、稳定的Web应用至关重要。通过这些配置,开发者能够精细控制Struts2的行为,包括Action的执行、结果的渲染、拦截器的使用以及错误处理等,从而实现符合项目...

    Struts1.3和config配置详解

    `struts-config.xml`配置详解: 1. **全局常量配置**:此部分用于定义全局的框架配置参数,如`input`属性用于指定表单验证失败后的默认回跳页面,`message-resources`属性用于指定国际化资源文件。 2. **数据源配置...

    struts1中web.xml配置详解

    struts1 中 web.xml 配置详解 struts1 框架是一种基于 Java 语言的 Web 应用程序开发框架,它提供了一个灵活的、可扩展的框架来开发基于 Web 的应用程序。在 struts1 框架中,web.xml 文件是必不可少的配置文件之一...

    Struts2.应用开发详解(第一讲)

    Struts2是一个强大的Java Web应用程序开发框架,基于Model-View-Controller(MVC)设计模式,旨在简化企业级Web应用的开发过程。本讲解将详细阐述Struts2的基础概念、核心架构以及如何进行实际的应用开发。 一、...

    轻松学Java_Web开发之Struts_2配置详解.pptx

    了解并熟练掌握这些配置文件的用法,能够帮助开发人员更有效地构建和维护基于Struts 2的Web应用。配置文件之间存在相互依赖的关系,比如`struts.xml`会引用`struts-default.xml`中的默认配置,而`web.xml`中的过滤器...

    Struts2.0的各种配置详解

    Struts2.0是一个流行的Java Web开发框架,它极大地简化了MVC应用的构建。本文将深入探讨Struts2.0的各种配置,帮助开发者更好地理解和使用这个强大的框架。 首先,让我们关注Action配置中的返回值。在Struts2中,一...

    struts2常量详解

    5. **web.xml**:Web应用的部署描述符,虽然不是Struts2特有的,但其中可以配置Struts2的初始化参数。 配置文件的加载顺序遵循一定的规则。在启动Tomcat时,Struts2会按照`struts.configuration.files`指定的顺序...

    Struts2.应用开发详解(第二讲).rar

    Struts2是一个强大的Java Web应用程序开发框架,基于Model-View-Controller(MVC)设计模式,旨在简化企业级Web应用的开发过程。本教程“Struts2应用开发详解(第二讲)”是系列教程的一部分,共计五部分,我们将深入...

    struts2配置文件详解

    3. **`struts.xml`**:位于Web应用中,是Struts2的核心配置文件,用于配置Action、拦截器等。 4. **`struts.properties`**:同样位于Web应用中,用于指定一些高级配置项。 5. **`web.xml`**:Web应用的部署描述符,...

    Struts2属性文件详解

    该属性通常没有实际用途,只有当Struts 2需要生成URL时(如Url标签),才会提供Web应用的默认端口信息。 #### struts.url.https.port 类似于`struts.url.http.port`属性的作用,但指定的是Web应用的HTTPS服务端口。...

    struts.properties配置详解

    ### Struts2中struts.properties配置详解 #### 概述 在Struts2框架中,除了大家熟知的`struts.xml`配置文件之外,还有一个重要的配置文件——`struts.properties`。该文件主要用来存储一些Struts2的核心配置属性,...

    完整的struts2框架应用实例.docx

    Struts2 框架应用实例详解 Struts2 框架是一种基于 Java 语言的 Web 应用程序框架,它提供了一个灵活的和可扩展的架构,以帮助开发者快速构建基于 Web 的应用程序。下面是 Struts2 框架应用实例的详细介绍: 一、...

Global site tag (gtag.js) - Google Analytics