`

Struts配置文件详解(来自csdn)

    博客分类:
  • java
 
阅读更多

Struts应用采用两个基于XML的配置文件来配置,分别是web.xml和struts-cofig.xml文件.web.xml文件是配置所有web应用的而struts-config.xml文件是struts专用的配置文件,事实上也是可以根据需要给这个配置文件起其他名称的.

Web应用的发布描述文件:web应用发布描述文件可以在应用开着者,发布者和组装者之间传递配置信息,Web容器在启动的时候从该文件中读取配置信息,根据它来装载和配置web应用.文档类型定义DTD对XML文档的格式做了定义,DTD吧XML文档划分为元素,属性,实体每一种XML文档都有独自的DTD文件.可以从网上下载.<web-app>元素是web.xml的根元素,其他元素必须嵌入在<web-app>元素之内.要注意的是子元素也是有顺序的比如必须是首先<servlet>,然后<servlet-mapping>最后<taglib>.

为Struts应用配置Web.xml文件:首先最重要的一步是配置ActionServlet,这个用<servlet>标签的servlet-name属性起一个名字叫action,然后用servlet-class属性指定ActionServlet的类.然后用<servlet-mapping>标签的servlet-name属性指定action,在用url-pattern指定接收范围是*.do的请求.不管应用中包含了多少子应用,都只需要配置一个ActionServlet,类来出来应用中的不同的功能,其实者就是不必要的,因为Servlet本身就是多线程的,而且目前Struts只允许配置一个ActionServlet.声明ActionServlet的初始化参数:<servlet>的<init-param>子元素用来配置Servlet的初始化参数.param-name设置config参数名.param-value设置struts-config.xml的路径参数值.

配置欢迎使用清单:如果客户访问Web的时候值是访问了WEB应用的根目录URL.没有具体的指定文件,Web会自动调用Web的欢迎文件.<welcome-file-list>元素来配置的.通过其中的<welcome-file>欢迎页面</welcome-file>来配置.

配置错误处理:尽管Struts框架功能强大的错误处理机制,但是不能保证处理所有的错误或者异常.当错误发生时,如果框架不能处理这种错误,把错误抛弃给Web容器,在默认的情况下web容器会想客户端返回错误信息.如果想避免让客户看到原始的错误信息,可以在Web应用发布描述文件中配置<error-page>元素.通过<error-code>404来定义错误的类型.然后通过<location>要处理错误的JSP页面来对错误进行处理.还可以用<exception-type>来设置异常,然后通过<location>来处理异常的JSP页面来处理异常.

配置Struts标签库:这个就和以前学到的JSP自定义标签类似,配置元素为<taglib>来配置.<taglib-uri>这个指定标签库的uri,类似起一个名称.<taglib-location>这个是标签库的位置也就是实际所在的路径.通过这样的方法引入一个标签库,然后在前台JSP页面就可以通过自己定义的URI来调用标签.

Struts配置文件:struts-config.xml文件.首先研讨一下org.apache.struts.config包,在struts应用启动的时候会把Struts配置文件信息读取到内存中,并把它们存放在config包中相关的JavaBean类的实例中.包中的每一个类都和struts配置文件中特定的配置元素对应,ModuleConfig在Struts框架中扮演了十分重要的角色,它是整个config包的核心,在Struts运行时来存放整个应用的配置信息.如果有多个子应用都会有一个ModuleConfig对象,它和Struts文件根元素的<struts-config>对应.根元素中包含<form-bean><action><forward>等元素.

<struts-config>元素:时Struts配置文件的根元素,和它对应的配置类ModuleConfig类,<struts-config>元素有8个子元素.他们的DTD定义是data-sources?form-bean? global-exception?global-forwards?action-mapping?controller?message-resources?plug-in*在Struts配置文件中,必须按照DTD指定的先手顺序来配置<struts-config>元素的各个子元素,如果颠倒了这些子元素的顺序,会产生错误.

<data-sources>元素:用来配置应用所需要的数据源,数据源负责创建和特定的数据库的连接.许多数据源采用连接池的机制实现.以便提高数据库访问的性能.JAVA语言提供了javax.sql.DataSource接口,所有的数据源都必须实现这个接口.许多应用服务器和Web服务器都提供了数据源组件.很多数据库厂商也提供了数据源的实现.<data-sources>元素包含多个<data-source>子元素永远配置特定的数据源.他们可以包含多个<set-property>子元素用于设置数据源的各种属性.配置了数据源以后,就可以在Action类中访问数据源,在Action中定义了getDataSource(HttpRequest)方法,用于获取数据源对象的引用.然后可以利用DataSource对象调用getConnection获取一个连接对象对数据库进行操作.在配置文件中声明多个数据源的时候需要为每一个数据源分配唯一的Key值,通过这个来表示特定的数据源.获取特定的数据源的时候可以用dataSource = getDataSource(reqeust,”A”);

<form-beans>元素:用来配置多个ActionForm,包含一个或者N个<form-bean>子元素.每个<form-bean>元素都包含多个属性.className指定和<form-bean>匹配的类.name指定该ActionForm的唯一标识符,这个属性是必须的以后作为引用使用.type指定ActionForm类的完整类名,这个属性也是必须的.注意包名也要加上.<form-property>是指定动态的Form的元素,以后会深入了解.

<global-exception>元素:用于配置异常处理,元素可以包含一个或者多个<exception>元素,用来设置JAVA异常和异常处理类ExceptionHandler之间的映射.className指定和元素对应的配置类,默认的不用动.handler指定异常处理类默认是ExceptionHandler.key指定在本地资源文件中异常的消息Key,path指定当前异常发生的时候转发的路径.scope指定ActionMessages实例存放的范围.type指定需要处理异常类的名字,必须的.bundle指定Resource Bundle.

<global-forwards>元素:用来声明全局转发,元素可以有一个或者N个<forward>元素组成,用于把一个逻辑名映射到特定的URL,通过这种方法Action类或者JSP页面无需指定URL,只要指定逻辑名称就可以实现请求转发或者重定向.这样可以减少控制组件和视图的聚合.易于维护.className对应的配置类.contextRelative如果为true表示当path属性以/开头的时候,给出的是对应的上下文URL默认是false.name转发路径的逻辑名,必须写.path转发或者重定向的URL,必须写必须是以/开头.redirect设置为true的时候表示执行重定向操作,此项为false的时候,表示执行请求转发操作.重定向与请求转发的区别以后就是重定向是把请求生成应答给客户端然后在重新发送给定向的URL,浏览器地址栏会有显示.而转发就是直接把请求转发给本应用的另一个文件,不生成应答所以客户端IE没显示.

<action-mapping>元素:包含一个或者N个<action>元素,描述了从特定的请求路径到响应的Action的映射.在<action>元素中可以包含多个<exception>和<forward>子元素,他们分别配置局部异常处理和局部转发.attribute设置Action关联的ActionForm在request或者session范围内的key.就是在request或者session共享内的名称.className对应配置元素的类.默认的是ActionMapping.forward指定转发URL路径include指定包含URL路径.input指定包含表单的URL,当表单验证失败的时候发送的URL.name,指定和该Action关联的Form名字.该名字必须是在form-bean中定义过的,可写可不写.path必须/开头的方位Action的路径.parameter指定Action配置参数.在Action的execute()方法中可以调用ActionMapping的getParameter()方法来读取匹配的参数.roles指定允许调用该Action的安全角色,多个角色之间逗号格开.scope指定Form的存在范围.默认是session.tyep指定Action的完整类名.unknown如果是true表示可以处理用户发出的所有的无效的ActionURL默认是false.validate指定是否调用ActionForm的validate方法.

<controller>元素:用于配置ActionServlet.buffreSize指定上载文件的输入缓冲大小.该属性为可选默认4096.className指定元素对应的配置类,ControllerConfig.然后是contentType指定响应结果内容类型和字符编码,该属性为可选,默认是text/html如果在Action或者JSP网页也设置了类型内容,会覆盖这个.locale指定是否把Locale对象保存到当前用户的session中默认false.tempDir指定处理文件上载的临时工作目录.nochache如果是true在响应结果中加入特定的头参数.

<message-resources>元素:用来配置Resource Bundle.用于存放本地文本消息文件.className元素对应的配置类.MessageResourcesConfig.factory指定消息的工厂类.key指定文件存放的Servlet对象中采用的属性Key.null指定如何处理未知消息.parameter指定消息的文件名.

<plug-in>元素:用于配置Struts插件.

配置多应用模块:所有的子应用都可以共享同一个ActionServlet实例,但是每个子应用都有单独的配置文件.把应用划分为多个子应用模块.首先为每个应用创建单独的Struts配置文件,在web.xml的ActionServlet配置代码中添加几个子应用信息.采用<forward>元素来实现应用之间的切换.

Digester组件:是一个Apache的另一个开源代码项目.当Struts被初始化的时候,首先会读取并解析配置文件,框架采用Digester组件来且西配置文件.然后创建config包中的对象.者对象用于存放配置信息.

其实配置文件不难,只要都理其中的原理就OK了.真正实际的项目开发中,采用的工具例如Eclipse系列,提供了相应的插件,在创建一个Struts工程的时候配置文件的标签都是自动生成的,而我们只需要往里面填写属性就OK了.

分享到:
评论

相关推荐

    struts配置

    Struts配置文件`struts.xml`通常位于Web应用的`WEB-INF/classes`目录下,也可以放置在`WEB-INF`目录下的其他位置,但需要在web.xml中进行相应的配置: ```xml &lt;param-name&gt;struts.configuration.xml.location ...

    struts.xml文件详解示例代码

    Struts.xml文件是Apache Struts 2框架的核心配置文件,用于定义应用的MVC(Model-View-Controller)架构和动作映射。它为应用程序提供了一种声明式的方式来配置Struts2的行为,使得开发者能够控制请求如何被处理,...

    struts+jdbc合同管理系统

    - **配置文件**:在struts-config.xml中,定义了Action及其对应的ActionForm,以及Action的转发路径,这是Struts的核心配置。 - **Action**:每个Action类对应一个用户请求,处理业务逻辑,并可能调用DAO(Data ...

    Struts2之异步调用机制详解案例struts014

    4. **XML配置**:Struts2的配置文件(struts.xml)用于定义Action、结果类型、拦截器等。为了支持异步调用,可能需要在这里声明特定的结果类型,比如JSON或FreeMarker模板,以便返回状态信息。 5. **结果类型...

    struts1.2 国际化

    - **配置文件**:可以在 `struts-config.xml` 配置文件中指定默认的 `Locale`,并通过 `&lt;constant&gt;` 元素设置全局常量。 - **拦截器**:通过使用 Struts 的拦截器机制,可以在请求处理流程中自动设置或获取 `Locale`...

    基于struts和hibernate 的简单购物网站

    Struts配置文件(struts-config.xml)定义了请求的映射和组件之间的关系。 2. **Hibernate ORM**:Hibernate允许开发者用面向对象的方式来操作数据库,减少了SQL的编写工作。实体类映射到数据库表,对象实例与...

    青鸟租房网 使用MyBatis+Struts框架

    Mapper接口的定义在XML配置文件或注解中,与具体的SQL语句绑定,这样既保持了代码的整洁,又方便了后期的维护和扩展。 此外,为了实现"青鸟租房网"的功能,可能还会涉及到其他技术,例如Spring框架进行依赖注入,...

    struts学习资料大全

    二、配置文件详解 1. struts-config.xml:这是Struts应用的主要配置文件,包含Action Mappings、Form Beans、DataSources、Plug-ins等配置。你需要了解如何配置Action的路径、转发规则以及Form Bean的属性等。 2. ...

    Struts hibernate 图书管理

    2. **配置文件**:struts-config.xml用于定义Action映射、数据源以及结果页面等,是系统的核心配置文件。 3. **Action类**:每个Action对应一个具体的业务操作,接收请求并处理业务逻辑,最后返回一个表示视图的...

    struts2+hibernate原理写的CRUD

    Hibernate是一个对象关系映射(ORM)框架,它简化了数据库操作,将Java对象与数据库表之间的映射关系通过注解或XML配置文件定义。在这个项目中,使用的是Hibernate的注解方式,这使得代码更加简洁,无需编写大量的...

    泰牛程序员 韩顺平 JavaEE全套 第15部分 Struts2基础入门

    - **配置文件**:struts.xml是Struts2的核心配置文件,用于配置Action映射、拦截器等。 #### 2. Struts2配置详解 - **Action配置**:定义Action的路径、方法、类型等信息。 - **拦截器配置**:拦截器用于预处理或...

    MVC:Struts

    3. **请求处理**:当用户发起请求时,Struts的ActionServlet会拦截请求,根据配置文件找到对应的Action,执行Action的业务逻辑,然后将结果传递给视图。 4. **国际化与本地化**:Struts支持多语言,可以通过资源...

    低版本struts2升级高版本避免漏洞方案

    ### 低版本Struts2升级至高版本以避免安全漏洞的知识点详解 #### 一、Struts2简介及背景 Struts2是一个基于Java的开源Web应用框架,它继承了Struts1的优点,并在此基础上增加了许多新特性,如拦截器(Interceptor...

    Java实战项目 - 企业人力资源管理(源码,内有详细配置文件),--- J2EE

    4. **配置文件详解**: 配置文件,如web.xml、struts-config.xml或spring的配置文件,定义了应用的运行环境和组件之间的关系。通过分析这些文件,开发者可以了解项目的启动流程、依赖注入、拦截器设置等关键信息。 ...

    Java相关课程系列笔记之十三Struts2学习笔记

    struts.xml是Struts2的核心配置文件,包含Action配置、拦截器栈定义、常量设置等。 1.8 Struts2提供的方便之处 Struts2提供了类型转换、国际化、异常处理、插件体系等特性,简化了开发流程。 **案例分析** 1.9 ...

    spring详细教程

    - **配置文件的加载方式**:可以通过多种方式加载配置文件,包括通过 XML 文件、注解、Java 配置类等方式。 ##### 3.2 Spring 与 IoC - **IoC 控制反转**:是 Spring 框架的核心概念之一。通过 IoC,Spring 容器...

    ssh原理详解

    - **控制器(Controller)**:ActionServlet作为Struts的核心控制器,它负责接收HTTP请求,根据配置文件(如struts-config.xml)决定如何分发请求给特定的动作类(Action)。 - **模型(Model)**:包含Action Form...

    商务交易网站dangdang

    Struts的核心组件包括ActionServlet、ActionForm、Action和Struts配置文件,它们协同工作以处理用户请求并更新模型。 1.1 ActionServlet:作为Struts框架的入口点,负责拦截HTTP请求,根据配置文件转发到相应的...

    spring配置jar包详解

    提供了访问配置文件、创建和管理bean以及Inversion of Control/Dependency Injection (IoC/DI)操作的相关类。如果你的应用只需要基本的IoC/DI支持,那么引入spring-core.jar和spring-beans.jar就足够了。此jar包...

    jsp做的投票系统(hibernate+struts2集成)

    2. `WEB-INF`目录:包含`web.xml`(Web应用配置)、`struts.xml`(Struts2配置)、`hibernate.cfg.xml`(Hibernate配置)等重要配置文件。 3. `lib`目录:存放项目所需的第三方库,如Hibernate、Struts2、Servlet ...

Global site tag (gtag.js) - Google Analytics