Chinaunix首页 | 论坛 | 博客
  • 博客访问: 338803
  • 博文数量: 329
  • 博客积分: 2633
  • 博客等级: 少校
  • 技术积分: 3633
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-22 15:43
文章分类

全部博文(329)

文章存档

2013年(244)

2012年(46)

2011年(39)

我的朋友

分类: 系统运维

2012-02-24 22:32:00

1.web.xml文件

web.xml文件对于配置任何Java Web应用都必需的。Web.xml文件中的元素是大小写敏感的。web.xml内的元素必须以正确的次序声明。servlet元素必须在所有servlet-mapping元素之前。context-param元素必须出现任意与文档有关的元素(icondisplay-namedescription)之后及filterfilter-mappinglistenerservlet元素之前。以下讲述的都是元素下的子元素。

1).配置StrutsActionServlet

元素来声明ActionServlet

元素:用来定义Servlet的名称

元素:用来指定Servlet的完整类名

如:

action

org.apache.struts.action.ActionServlet

2).子元素用于配置Servlet初始化参数

   config :以相对路径的方式指明Struts应用程序的配置文件位置,如不设置,则默认值为/WEB-INF/struts-config.xml

对于复杂的应用,一般需要配置多个struts-config.xml文件,可以通过添加另外的来实现,或者在多个配置文件中以为“,”隔开。如在原有基础上加入如下代码:

                    

                            config/IVR 

                             /WEB-INF/struts-config-IVR.xml 

                     

                     

                    config/wap 

                              

                                      /WEB-INF/struts-config-wap.xml  

                              

                    

   debug : 设置Servletdebug级别,控制日志记录的详细程度。默认为0,记录相对最少的日志信息。

   detail : 设置Digesterdebug级别DigesterStruts框架所使用的用来解析xml配置文件的一个框架,通过此设置,可以查看不同详细等级的解析日志。默认为0,记录相对最少的日志信息。

3). 子元素:中?号的值是此ActionServlet在服务器开启时加载的次序,数值越低,越先加载

一般的servlet元素的表示:

  <servlet>

    <servlet-name>actionservlet-name>

 <servlet-class>org.apache.struts.action.ActionServletservlet-class>

    <init-param>

      <param-name>configparam-name>

      <param-value>/WEB-INF/struts-config.xmlparam-value>

    init-param>

    <init-param>

      <param-name>debugparam-name>

      <param-value>3param-value>

    init-param>

    <init-param>

      <param-name>detailparam-name>

      <param-value>3param-value>

    init-param>

    <load-on-startup>0load-on-startup>

  servlet>

4).配置元素,它用来指定ActionServlet可以处理哪些URL

action

*.do

5) 注意事项: ?的要填写一致,它就是一根线,把联接在一起的。在Struts框架中只能有一个Servlet,因为Servlet支持多线程。而org.apache.struts.action.ActionServlet中的 ActionServlet是在Struts.jar包中的.在导入Struts包时会导入。 (3)在显示层以*.do提交的,都会过个Servlet*.do可以改写成你想要的任何形式。例如:/do/*。扩展时,我们可以继承 org.apache.struts.action.ActionServlet 得到我们可以扩允的子类,在子类中重写一个方法init()。这时?中的?是我们新建的类的路径,同样只能存在一个。如果想自己加入自己的框架,可以自己写个servlet,例如:

    <servlet>

        <servlet-name>actionservlet-name>

        <servlet-class>

            com.tops.j2eebase.web.TopsStrutsActionServlet

        servlet-class>

        <init-param>

            <param-name>configparam-name>

            <param-value>/_normal/tops_struts_config.xmlparam-value>

        init-param>

        <init-param>

            <param-name>debugparam-name>

            <param-value>2param-value>

        init-param>

        <load-on-startup>2load-on-startup>

    servlet>

6). 的配置

该元素可包含多个子元素,当Web容器调用欢迎界 面时,将首先查看第一个子元素中定义的文件是否存在,若存在,则将其返回给用户,若不存在,继续判断第二 子元素中定义的文件……,配置示例如下:

  

                   index.html 

                    index.jsp 

                    default.jsp 

           

7). 元素

该元素可以根据异常的类型来配置跳转的页面还可以根据错误码来配置跳转页面,配置示例如下:

 

    

 500   

       /error.jsp   

  

  

    

       java.lang.NullException   

       /error.jsp   

  

8). tld文件的配置

可以引入标签库(当然也可以在jsp中引入的),利用元素  其中元素指定标签库的相对或者绝对URI地址Web应用将根据这一URI来访问标签库;元素指定标签库描述文件在文件资源系统中的物理位置

如:

    <jsp-config>

        <taglib>

            <taglib-uri>/WEB-INF/struts-bean.tldtaglib-uri>

            <taglib-location>/WEB-INF/struts-bean.tldtaglib-location>

        taglib>

        <taglib>

            <taglib-uri>/WEB-INF/struts-html.tldtaglib-uri>

            <taglib-location>/WEB-INF/struts-html.tldtaglib-location>

        taglib>

        <taglib>

            <taglib-uri>/WEB-INF/struts-logic.tldtaglib-uri>

            <taglib-location>/WEB-INF/struts-logic.tldtaglib-location>

        taglib>

        <taglib>

            <taglib-uri>/WEB-INF/struts-template.tldtaglib-uri>

            <taglib-location>

                /WEB-INF/struts-template.tld

            taglib-location>

        taglib>

        <taglib>

            <taglib-uri>/WEB-INF/struts-tiles.tldtaglib-uri>

            <taglib-location>/WEB-INF/struts-tiles.tldtaglib-location>

        taglib>

        <taglib>

            <taglib-uri>/WEB-INF/struts-nested.tldtaglib-uri>

            <taglib-location>

                /WEB-INF/struts-nested.tld

            taglib-location>

        taglib>

    jsp-config>

 

2.struts-config.xml文件

       此文件是对Struts中用到的控制器、视图和模型进行配置,即是对MVC模式的配置。都是在元素的配置。当然struts-config.xml还有子元素,因为它们用得很少,在此不再赘述。只是讲述常用的子元素的配置。

1). 元素

该元素可以配置一个或多个data-source元素,即数据源元素,可以通过设置driverClassurluserpassword等属性。其实就是配置连数据库的驱动等。例如以下是配置sql2005的:

  <data-sources>

    <data-source key="dataSources" type="com.microsoft.sqlserver.jdbc.SQLServerDataSource">

      <set-property property="password" value="123456" />

      <set-property property="minCount" value="2" />

      <set-property property="maxCount" value="5" />

      <set-property property="user" value="sa" />

      <set-property property="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />

      <set-property property="description" value="db_connection" />

      <set-property property="url" value="jdbc:sqlserver://localhost:1433;DatabaseName=db_bbs" />

      <set-property property="readOnly" value="false" />

      <set-property property="autoCommit" value="false" />

      <set-property property="loginTimeout" value="3000" />

    data-source>

  data-sources>

在实际项目中,例如在Hibernate + Struts构建的系统中,一般使用Hibernatehibernate.cfg.xml文件来配置数据源的信息。而在Hibernate + Struts + Spring构建的系统中,一般使用spring的配置文件(eg. applicationContext.xml)来配置数据源的信息

2). 元素

为普通FormBean需要定义一个JavaBean类,在form-bean元素中指定该类。对应的FormBean类一般是继承ActionForm类。普通form-bean元素的定义格式如下:

的名称" type="FormBean对应JavaBean类的全路径"/>

例如配置如下:

<form-beans>

<form-bean name="loginForm" type="com.wsy.struts.form.LoginForm" />

form-beans>

3).元素

global-forwards用于配置全局转发,struts首先会在元素中找对应的,若找不到,则到全局转发配置中找。它包含0个或多个元素

4). 元素

   该元素用于将Action元素定义到ActionServlet类中,它含有0到多个元素,其格式如下:

path="Action请求的相对路径"

type="Action的对应类的全路径"

name="Action绑定的FormBean"

指定处理相应请求所对应的地址" path="相对路径"/>

每个action子元素可包含一个或多个forward子元素。除了pathtypename属性外,action还具有如下属性:

scope:指定ActionForm Bean的作用域(sessionrequest),缺省为session(可选)

input:当Bean发生错误时返回的路径(可选)

classname:指定一个调用这个Action类的ActionMapping类的全名。缺省用org.apache.struts.action.ActionMapping(可选)

include:如果没有forward的时候,它起forward的作用(可选)

validate:若为true,则会调用ActionFormvalidate()方法,否则不调用,缺省为true(可选)。

forward属性也是可选的

5).< message-resources>元素

该元素用来定义资源文件,格式如下:

parameter="给定资源文件的全名"

classname="定义处理消息资源的类名的全名"

factory="定义MessageResourcesFactory类的全名"

key="定义绑定在这个资源包中的ServletContext的属性主键"

null="如果为true,则找不到消息key时,则返回null "/>

message-resources的各属性中,只有parameter是必选的,其余都为可选classname属性默认为:org.apache.struts.config.MessageResourcesConfigfactory属性默认为:org.apache.struts.util.property.MessageResourcesFacotrykey属性默认为:Action.MESSAGES_KEYnull属性默认为:true

例如:

<message-resources parameter="com.wsy.struts.ApplicationResources" />

6). 元素

    该元素用于定义插件,可定义0到多个插件元素,最常见的plug-inStruts的验证的插件

        

              value="/WEB-INF/validator-rules.xml, /WEB-INF/manager/validation.xml" />

        

此外还有,Spring提供的载入插件配置

           value="/WEB-INF/applicationContext.xml, /WEB-INF/action-servlet.xml"/>

 

 

 

 

 

阅读(796) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~