??xml version="1.0" encoding="utf-8" standalone="yes"?>色婷婷久久久久swag精品,欧美风狂大伦交xxxx,久蕉依人在线视频http://www.aygfsteel.com/caizh2009/category/46493.html与大家共同成?/description>zh-cnFri, 01 Oct 2010 04:51:41 GMTFri, 01 Oct 2010 04:51:41 GMT60web.xml中获取全局参数http://www.aygfsteel.com/caizh2009/archive/2010/09/30/333564.html菜毛毛菜毛毛Thu, 30 Sep 2010 08:38:00 GMThttp://www.aygfsteel.com/caizh2009/archive/2010/09/30/333564.htmlhttp://www.aygfsteel.com/caizh2009/comments/333564.htmlhttp://www.aygfsteel.com/caizh2009/archive/2010/09/30/333564.html#Feedback0http://www.aygfsteel.com/caizh2009/comments/commentRss/333564.htmlhttp://www.aygfsteel.com/caizh2009/services/trackbacks/333564.html d容器配置参数---context-param和init-param区别

web.xml里面可以定义两种参数Q?br /> (1)application范围内的参数Q存攑֜servletcontext中,在web.xml中配|如下:(x)  <context-param>
           <param-name>context/param</param-name>
           <param-value>avalible during application</param-value>

           <param-name>name1</param-name>
           <param-value>value1</param-value>
  </context-param>


(2)servlet范围内的参数Q只能在servlet的init()Ҏ(gu)中取得,在web.xml中配|如下:(x)

 <servlet>
    <servlet-name>MainServlet</servlet-name>
    <servlet-class>com.wes.controller.MainServlet</servlet-class>
    <init-param>
       <param-name>param1</param-name>
       <param-value>avalible in servlet init()</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
 </servlet>


在servlet中可以通过代码分别取用Q?/span>

package com.wes.controller;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

public class MainServlet extends HttpServlet ...{

    public MainServlet() ...{
        super();
     }
    public void init() throws ServletException ...{
         System.out.println("下面的两个参数param1是在servlet中存攄");
         System.out.println(this.getInitParameter("param1"));
         System.out.println("下面的参数是存放在servletcontext中的");
         System.out.println(getServletContext().getInitParameter("context/param"));
      }
}

W? 一U参数在servlet里面可以通过getServletContext().getInitParameter("context/param")? ?(在servlet的init()Ҏ(gu)中通过this.getInitParameter("param1")取得)


W二U参数只能在servlet的init()Ҏ(gu)中通过this.getInitParameter("param1")取得

---------------------------------------------------------------------


ServletContextListener实现dweb.xml中context-param信息      2009q?3?7?星期?22:37
  用部|文件来存储配置参数在Java中是一U很行的做法?/span>

配置参数一般存攑֜context-param元素中,每一个context-param元素代表了一个键值对?/span>

? 们可以通过实现ServletContextListener接口d该键值对中的|在web应用E序初始化的时候,调用 ServletContextListener的contextInitialized()Ҏ(gu)Q所以我们我们可以重写该Ҏ(gu)Q实现读取操作。可以这样实 玎ͼ(x)

public class AppListener implements ServletContextListener {


public void contextInitialized(ServletContextEvent sce) {
   try {
          
            MyConfig config = new MyConfig();//存放配置信息Q用Map实现
            Enumeration parameters =  sce.getServletContext().getInitParameterNames();
           
            while(parameters.hasMoreElements()){
               String name =  (String) parameters.nextElement();
               config.addKeyTValue(name, sce.getServletContext().getInitParameter(name));
            } 

        //相应的键值对存到map?br />           config.addKeyValue(parameter, sc.getInitParameter(parameter));
    }
   } catch(Exception e) {
    System.out.println("com.shou error:" + e.getMessage());
   }
}

public void contextDestroyed(ServletContextEvent arg0) {

}
}

 MyConfigc:(x)(Singleton Config)
package com.myapp;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 *
 * @author Administrator
 */

public class MyConfig{
    public static MyConfig myconfig;
   
    public static HashMap config = new HashMap();

    public static HashMap getConfig() {
        return config;
    }
   
    public static MyConfig getInstance(){
        if(myconfig==null){
            myconfig = new MyConfig();
           
        }
        return myconfig;
    }
    public static void setConfig(HashMap config) {
       
        MyConfig.config = config;
    }

     public HashMap addKeyTValue(String name,String value){
           this.config.put(name, value);
           return this.config;
          
     }
}

接着Q必dweb.xml中配|相应的监听c,才能在初始化的时候,自动调用该方法。如Q?/span>

<listener>
<listener-class>com.myapp.MyListener</listener-class>
</listener>

q样可以在M一个JSP面Q通过EL表达式或JSTLdcontext-param中的内容?/span>

有的|友说在web.xml内定?lt;listener>元素时得注意下列两点Q?br /> <listener>元素必须出现在Q何Context起始参数Q由<context-param>元素所定义Q之后?br /> <listener>元素必须出现在Q何Servlet实体Q由<servlet>元素所定义Q之前?/span>

但是我在TOMCAT5.5 + J2EE 5下配|web.xmlq没有按照上q的严格限制也能成功d信息?/span>

N是版本的问题吗?/span>

在Struts 1.X下,通过一个自定义的Singleton Configc,可以让web.xml中的配置参数在整个应用程序里都能被共享?/span>




菜毛毛 2010-09-30 16:38 发表评论
]]>
web.xml 中的listener?filter、servlet 加蝲序?qing)其详?/title><link>http://www.aygfsteel.com/caizh2009/archive/2010/09/30/333562.html</link><dc:creator>菜毛毛</dc:creator><author>菜毛毛</author><pubDate>Thu, 30 Sep 2010 08:33:00 GMT</pubDate><guid>http://www.aygfsteel.com/caizh2009/archive/2010/09/30/333562.html</guid><wfw:comment>http://www.aygfsteel.com/caizh2009/comments/333562.html</wfw:comment><comments>http://www.aygfsteel.com/caizh2009/archive/2010/09/30/333562.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/caizh2009/comments/commentRss/333562.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/caizh2009/services/trackbacks/333562.html</trackback:ping><description><![CDATA[http://zhxing.javaeye.com/blog/399668<br /> 在项目中M(x)遇到一些关于加载的优先U问题,q期也同样遇到过cM的,所以自己查找资料ȝ了下Q下面有些是转蝲其他人的Q毕竟h家写的不错,自己也就不重复造轮子了Q只是略加点了自q修饰? <p>        首先可以肯定的是Q加载顺序与它们?web.xml 文g中的先后序无关。即不会(x)因ؓ(f) filter 写在 listener 的前面而会(x)先加?filter。最l得出的l论是:(x)<strong>listener -> filter -> servlet</strong> </p> <p>        同时q存在着q样一U配|节Qcontext-paramQ它用于?ServletContext 提供键值对Q即应用E序上下文信息。我们的 listener, filter {在初始化时?x)用到这些上下文中的信息Q那? context-param 配置节是不是应该写在 listener 配置节前呢?实际?context-param 配置节可写在L位置Q因?strong>真正的加载顺序ؓ(f)Qcontext-param -> listener -> filter -> servlet </strong></p> <p>        对于某类配置节而言Q与它们出现的顺序是有关的。以 filter ZQweb.xml 中当然可以定义多?filterQ与 filter 相关的一个配|节?filter-mappingQ这里一定要注意Q对于拥有相?filter-name ?filter ? filter-mapping 配置节而言Qfilter-mapping 必须出现?filter 之后Q否则当解析? filter-mapping Ӟ它所对应?filter-name q未定义。web 容器启动时初始化每个 filter Ӟ是按? filter 配置节出现的序来初始化的,当请求资源匹配多?filter-mapping Ӟ<strong>filter 拦截资源是按?filter-mapping 配置节出现的序来依ơ调?/strong> doFilter() Ҏ(gu)的?</p> <p>        <strong>servlet ?filter cM</strong>Q此处不再赘q?</p> <p>       由此Q可以看出,web.xml 的加载顺序是Q?strong>context-param -> listener -> filter -> servlet</strong> Q而同个类型之间的实际E序调用的时候的序是根据对应的 mapping 的顺序进行调用的?/p> <p>web.xml文g详解</p> <div> <div> <div>Xml代码 </div> </div> <ol start="1"> <li>Web.xml常用元素   </li> <li><web-app>   </li> <li><display-name></display-name>定义了WEB应用的名?nbsp;  </li> <li><description></description> 声明WEB应用的描qC?nbsp;  </li> <li>  </li> <li><context-param></context-param> context-param元素声明应用范围内的初始化参数?nbsp;  </li> <li><filter></filter> qo(h)器元素将一个名字与一个实现javax.servlet.Filter接口的类相关联?nbsp;  </li> <li><filter-mapping></filter-mapping> 一旦命名了一个过滤器Q就要利用filter-mapping元素把它与一个或多个servlet或JSP面相关联?nbsp;  </li> <li><listener></listener>servlet API的版?.3增加了对事g监听E序的支持,事g监听E序在徏立、修改和删除?x)话或servlet环境时得到通知?nbsp;  </li> <li>                     Listener元素指出事g监听E序cR?nbsp;  </li> <li><servlet></servlet> 在向servlet或JSP面制定初始化参数或定制URLӞ必须首先命名servlet或JSP面。Servlet元素是用来完成此项d的?nbsp;  </li> <li><servlet-mapping></servlet-mapping> 服务器一般ؓ(f)servlet提供一个缺省的URLQhttp://host/webAppPrefix/servlet/ServletName?nbsp;  </li> <li>              但是Q常怼(x)更改q个URLQ以便servlet可以讉K初始化参数或更容易地处理相对URL。在更改~省URLӞ使用servlet-mapping元素?nbsp;  </li> <li>  </li> <li><session-config></session-config> 如果某个?x)话在一定时间内未被讉KQ服务器可以抛弃它以节省内存?nbsp;  </li> <li>          可通过使用HttpSession的setMaxInactiveIntervalҎ(gu)明确讄单个?x)话对象的超时|或者可利用session-config元素制定~省时倹{?nbsp;  </li> <li>  </li> <li><mime-mapping></mime-mapping>如果Web应用h惛_Ҏ(gu)的文Ӟ希望能保证给他们分配特定的MIMEcdQ则mime-mapping元素提供q种保证?nbsp;  </li> <li><welcome-file-list></welcome-file-list> 指示服务器在收到引用一个目录名而不是文件名的URLӞ使用哪个文g?nbsp;  </li> <li><error-page></error-page> 在返回特定HTTP状态代码时Q或者特定类型的异常被抛出时Q能够制定将要显C的面?nbsp;  </li> <li><taglib></taglib> Ҏ(gu)记库描述W文ӞTag Libraryu Descriptor fileQ指定别名。此功能使你能够更改TLD文g的位|,   </li> <li>                  而不用编辑用这些文件的JSP面?nbsp;  </li> <li><resource-env-ref></resource-env-ref>声明与资源相关的一个管理对象?nbsp;  </li> <li><resource-ref></resource-ref> 声明一个资源工厂用的外部资源?nbsp;  </li> <li><security-constraint></security-constraint> 制定应该保护的URL。它与login-config元素联合使用   </li> <li><login-config></login-config> 指定服务器应该怎样l试图访问受保护面的用h权。它与sercurity-constraint元素联合使用?nbsp;  </li> <li><security-role></security-role>l出安全角色的一个列表,q些角色出现在servlet元素内的security-role-ref元素   </li> <li>                   的role-name子元素中。分别地声明角色可高IDE处理安全信息更ؓ(f)Ҏ(gu)?nbsp;  </li> <li><env-entry></env-entry>声明Web应用的环境项?nbsp;  </li> <li><ejb-ref></ejb-ref>声明一个EJB的主目录的引用?nbsp;  </li> <li>< ejb-local-ref></ ejb-local-ref>声明一个EJB的本C目录的应用?nbsp;  </li> <li></web-app>   </li> <li>  </li> <li>  </li> <li>相应元素配置   </li> <li>  </li> <li>1、Web应用图标Q指出IDE和GUI工具用来表示Web应用的大图标和小图标   </li> <li><icon>   </li> <li><small-icon>/images/app_small.gif</small-icon>   </li> <li><large-icon>/images/app_large.gif</large-icon>   </li> <li></icon>   </li> <li>2、Web 应用名称Q提供GUI工具可能?x)用来标记这个特定的Web应用的一个名U?nbsp;  </li> <li><display-name>Tomcat Example</display-name>   </li> <li>3、Web 应用描述Q?nbsp;l出于此相关的说明性文?nbsp;  </li> <li><disciption>Tomcat Example servlets and JSP pages.</disciption>   </li> <li>4、上下文参数Q声明应用范围内的初始化参数?nbsp;  </li> <li>  <context-param>   </li> <li>    <param-name>ContextParameter</para-name>   </li> <li>    <param-value>test</param-value>   </li> <li>    <description>It is a test parameter.</description>   </li> <li>  </context-param>   </li> <li>  在servlet里面可以通过getServletContext().getInitParameter("context/param")得到   </li> <li>  </li> <li>5、过滤器配置Q将一个名字与一个实现javaxs.servlet.Filter接口的类相关联?nbsp;  </li> <li>  <filter>   </li> <li>        <filter-name>setCharacterEncoding</filter-name>   </li> <li>        <filter-class>com.myTest.setCharacterEncodingFilter</filter-class>   </li> <li>        <init-param>   </li> <li>            <param-name>encoding</param-name>   </li> <li>            <param-value>GB2312</param-value>   </li> <li>        </init-param>   </li> <li>  </filter>   </li> <li>  <filter-mapping>   </li> <li>        <filter-name>setCharacterEncoding</filter-name>   </li> <li>        <url-pattern>/*</url-pattern>   </li> <li>  </filter-mapping>   </li> <li>6、监听器配置   </li> <li>  <listener>   </li> <li>      <listerner-class>listener.SessionListener</listener-class>   </li> <li>  </listener>   </li> <li>7、Servlet配置   </li> <li>   基本配置   </li> <li>   <servlet>   </li> <li>      <servlet-name>snoop</servlet-name>   </li> <li>      <servlet-class>SnoopServlet</servlet-class>   </li> <li>   </servlet>   </li> <li>   <servlet-mapping>   </li> <li>      <servlet-name>snoop</servlet-name>   </li> <li>      <url-pattern>/snoop</url-pattern>   </li> <li>   </servlet-mapping>   </li> <li>   高配置   </li> <li>   <servlet>   </li> <li>      <servlet-name>snoop</servlet-name>   </li> <li>      <servlet-class>SnoopServlet</servlet-class>   </li> <li>      <init-param>   </li> <li>         <param-name>foo</param-name>   </li> <li>         <param-value>bar</param-value>   </li> <li>      </init-param>   </li> <li>      <run-as>   </li> <li>         <description>Security role for anonymous access</description>   </li> <li>         <role-name>tomcat</role-name>   </li> <li>      </run-as>   </li> <li>   </servlet>   </li> <li>   <servlet-mapping>   </li> <li>      <servlet-name>snoop</servlet-name>   </li> <li>      <url-pattern>/snoop</url-pattern>   </li> <li>   </servlet-mapping>   </li> <li>   元素说明   </li> <li>     <servlet></servlet> 用来声明一个servlet的数据,主要有以下子元素Q?nbsp;  </li> <li>     <servlet-name></servlet-name> 指定servlet的名U?nbsp;  </li> <li>     <servlet-class></servlet-class> 指定servlet的类名称   </li> <li>     <jsp-file></jsp-file> 指定web站台中的某个JSP|页的完整\?nbsp;  </li> <li>     <init-param></init-param> 用来定义参数Q可有多个init-param。在servletcM通过getInitParamenter(String name)Ҏ(gu)讉K初始化参?nbsp;  </li> <li>     <load-on-startup></load-on-startup>指定当Web应用启动Ӟ装蝲Servlet的次序?nbsp;  </li> <li>                                 当gؓ(f)正数或零Ӟ(x)Servlet容器先加载数值小的servletQ再依次加蝲其他数值大的servlet.   </li> <li>                                 当gؓ(f)负或未定义:(x)Servlet容器在Web客户首次讉Kq个servlet时加载它   </li> <li>     <servlet-mapping></servlet-mapping> 用来定义servlet所对应的URLQ包含两个子元素   </li> <li>       <servlet-name></servlet-name> 指定servlet的名U?nbsp;  </li> <li>       <url-pattern></url-pattern> 指定servlet所对应的URL   </li> <li>8、会(x)话超旉|(单位为分钟)   </li> <li>   <session-config>   </li> <li>      <session-timeout>120</session-timeout>   </li> <li>   </session-config>   </li> <li>9、MIMEcd配置   </li> <li>   <mime-mapping>   </li> <li>      <extension>htm</extension>   </li> <li>      <mime-type>text/html</mime-type>   </li> <li>   </mime-mapping>   </li> <li>10、指定欢q文仉配置   </li> <li>   <welcome-file-list>   </li> <li>      <welcome-file>index.jsp</welcome-file>   </li> <li>      <welcome-file>index.html</welcome-file>   </li> <li>      <welcome-file>index.htm</welcome-file>   </li> <li>   </welcome-file-list>   </li> <li>11、配|错误页?nbsp;  </li> <li>  一?nbsp;通过错误码来配置error-page   </li> <li>   <error-page>   </li> <li>      <error-code>404</error-code>   </li> <li>      <location>/NotFound.jsp</location>   </li> <li>   </error-page>   </li> <li>  上面配置了当pȝ发生404错误Ӟ跌{到错误处理页面NotFound.jsp?nbsp;  </li> <li>二、通过异常的类型配|error-page   </li> <li>   <error-page>   </li> <li>       <exception-type>java.lang.NullException</exception-type>   </li> <li>       <location>/error.jsp</location>   </li> <li>   </error-page>   </li> <li>  上面配置了当pȝ发生java.lang.NullExceptionQ即I指针异常)Ӟ跌{到错误处理页面error.jsp   </li> <li>12、TLD配置   </li> <li>   <taglib>   </li> <li>       <taglib-uri>http://jakarta.apache.org/tomcat/debug-taglib</taglib-uri>   </li> <li>       <taglib-location>/WEB-INF/jsp/debug-taglib.tld</taglib-location>   </li> <li>   </taglib>   </li> <li>   如果MyEclipse一直在报错,应该?lt;taglib> 攑ֈ <jsp-config>?nbsp;  </li> <li>   <jsp-config>   </li> <li>      <taglib>   </li> <li>          <taglib-uri>http://jakarta.apache.org/tomcat/debug-taglib</taglib-uri>   </li> <li>          <taglib-location>/WEB-INF/pager-taglib.tld</taglib-location>   </li> <li>      </taglib>   </li> <li>   </jsp-config>   </li> <li>13、资源管理对象配|?nbsp;  </li> <li>   <resource-env-ref>   </li> <li>       <resource-env-ref-name>jms/StockQueue</resource-env-ref-name>   </li> <li>   </resource-env-ref>   </li> <li>14、资源工厂配|?nbsp;  </li> <li>   <resource-ref>   </li> <li>       <res-ref-name>mail/Session</res-ref-name>   </li> <li>       <res-type>javax.mail.Session</res-type>   </li> <li>       <res-auth>Container</res-auth>   </li> <li>   </resource-ref>   </li> <li>   配置数据库连接池可在此配置Q?nbsp;  </li> <li>   <resource-ref>   </li> <li>       <description>JNDI JDBC DataSource of shop</description>   </li> <li>       <res-ref-name>jdbc/sample_db</res-ref-name>   </li> <li>       <res-type>javax.sql.DataSource</res-type>   </li> <li>       <res-auth>Container</res-auth>   </li> <li>   </resource-ref>   </li> <li>15、安全限刉|?nbsp;  </li> <li>   <security-constraint>   </li> <li>      <display-name>Example Security Constraint</display-name>   </li> <li>      <web-resource-collection>   </li> <li>         <web-resource-name>Protected Area</web-resource-name>   </li> <li>         <url-pattern>/jsp/security/protected/*</url-pattern>   </li> <li>         <http-method>DELETE</http-method>   </li> <li>         <http-method>GET</http-method>   </li> <li>         <http-method>POST</http-method>   </li> <li>         <http-method>PUT</http-method>   </li> <li>      </web-resource-collection>   </li> <li>      <auth-constraint>   </li> <li>        <role-name>tomcat</role-name>   </li> <li>        <role-name>role1</role-name>   </li> <li>      </auth-constraint>   </li> <li>   </security-constraint>   </li> <li>16、登陆验证配|?nbsp;  </li> <li>   <login-config>   </li> <li>     <auth-method>FORM</auth-method>   </li> <li>     <realm-name>Example-Based Authentiation Area</realm-name>   </li> <li>     <form-login-config>   </li> <li>        <form-login-page>/jsp/security/protected/login.jsp</form-login-page>   </li> <li>        <form-error-page>/jsp/security/protected/error.jsp</form-error-page>   </li> <li>     </form-login-config>   </li> <li>   </login-config>   </li> <li>17、安全角Ԍ(x)security-role元素l出安全角色的一个列表,q些角色出现在servlet元素内的security-role-ref元素的role-name子元素中?nbsp;  </li> <li>    分别地声明角色可佉KUIDE处理安全信息更ؓ(f)Ҏ(gu)?nbsp;  </li> <li>  <security-role>   </li> <li>     <role-name>tomcat</role-name>   </li> <li>  </security-role>   </li> <li>18、Web环境参数Qenv-entry元素声明Web应用的环境项   </li> <li>  <env-entry>   </li> <li>     <env-entry-name>minExemptions</env-entry-name>   </li> <li>     <env-entry-value>1</env-entry-value>   </li> <li>     <env-entry-type>java.lang.Integer</env-entry-type>   </li> <li>  </env-entry>   </li> <li>19、EJB 声明   </li> <li>  <ejb-ref>   </li> <li>     <description>Example EJB reference</decription>   </li> <li>     <ejb-ref-name>ejb/Account</ejb-ref-name>   </li> <li>     <ejb-ref-type>Entity</ejb-ref-type>   </li> <li>     <home>com.mycompany.mypackage.AccountHome</home>   </li> <li>     <remote>com.mycompany.mypackage.Account</remote>   </li> <li>  </ejb-ref>   </li> <li>20、本地EJB声明   </li> <li>  <ejb-local-ref>   </li> <li>     <description>Example Loacal EJB reference</decription>   </li> <li>     <ejb-ref-name>ejb/ProcessOrder</ejb-ref-name>   </li> <li>     <ejb-ref-type>Session</ejb-ref-type>   </li> <li>     <local-home>com.mycompany.mypackage.ProcessOrderHome</local-home>   </li> <li>     <local>com.mycompany.mypackage.ProcessOrder</local>   </li> <li>  </ejb-local-ref>   </li> <li>21、配|DWR   </li> <li>  <servlet>   </li> <li>      <servlet-name>dwr-invoker</servlet-name>   </li> <li>      <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>   </li> <li>  </servlet>   </li> <li>  <servlet-mapping>   </li> <li>      <servlet-name>dwr-invoker</servlet-name>   </li> <li>      <url-pattern>/dwr/*</url-pattern>   </li> <li>  </servlet-mapping>   </li> <li>22、配|Struts   </li> <li>    <display-name>Struts Blank Application</display-name>   </li> <li>    <servlet>   </li> <li>        <servlet-name>action</servlet-name>   </li> <li>        <servlet-class>   </li> <li>            org.apache.struts.action.ActionServlet   </li> <li>        </servlet-class>   </li> <li>        <init-param>   </li> <li>            <param-name>detail</param-name>   </li> <li>            <param-value>2</param-value>   </li> <li>        </init-param>   </li> <li>        <init-param>   </li> <li>            <param-name>debug</param-name>   </li> <li>            <param-value>2</param-value>   </li> <li>        </init-param>   </li> <li>        <init-param>   </li> <li>            <param-name>config</param-name>   </li> <li>            <param-value>/WEB-INF/struts-config.xml</param-value>   </li> <li>        </init-param>   </li> <li>        <init-param>   </li> <li>            <param-name>application</param-name>   </li> <li>            <param-value>ApplicationResources</param-value>   </li> <li>        </init-param>   </li> <li>        <load-on-startup>2</load-on-startup>   </li> <li>    </servlet>   </li> <li>    <servlet-mapping>   </li> <li>        <servlet-name>action</servlet-name>   </li> <li>        <url-pattern>*.do</url-pattern>   </li> <li>    </servlet-mapping>   </li> <li>    <welcome-file-list>   </li> <li>        <welcome-file>index.jsp</welcome-file>   </li> <li>    </welcome-file-list>   </li> <li>  </li> <li>    <!-- Struts Tag Library Descriptors -->   </li> <li>    <taglib>   </li> <li>        <taglib-uri>struts-bean</taglib-uri>   </li> <li>        <taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location>   </li> <li>    </taglib>   </li> <li>    <taglib>   </li> <li>        <taglib-uri>struts-html</taglib-uri>   </li> <li>        <taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location>   </li> <li>    </taglib>   </li> <li>    <taglib>   </li> <li>    <taglib-uri>struts-nested</taglib-uri>   </li> <li>    <taglib-location>/WEB-INF/tld/struts-nested.tld</taglib-location>   </li> <li>    </taglib>   </li> <li>    <taglib>   </li> <li>        <taglib-uri>struts-logic</taglib-uri>   </li> <li>        <taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location>   </li> <li>    </taglib>   </li> <li>    <taglib>   </li> <li>        <taglib-uri>struts-tiles</taglib-uri>   </li> <li>        <taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location>   </li> <li>    </taglib>   </li> <li>23、配|SpringQ基本上都是在Struts中配|的Q?nbsp;  </li> <li>  </li> <li>   <!-- 指定spring配置文g位置 -->   </li> <li>   <context-param>   </li> <li>      <param-name>contextConfigLocation</param-name>   </li> <li>      <param-value>   </li> <li>       <!--加蝲多个spring配置文g -->   </li> <li>        /WEB-INF/applicationContext.xml, /WEB-INF/action-servlet.xml   </li> <li>      </param-value>   </li> <li>   </context-param>   </li> <li>  </li> <li>   <!-- 定义SPRING监听器,加蝲spring -->   </li> <li>  </li> <li>  <listener>   </li> <li>     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>   </li> <li>  </listener>   </li> <li>  </li> <li>  <listener>   </li> <li>     <listener-class>   </li> <li>       org.springframework.web.context.request.RequestContextListener   </li> <li>     </listener-class>   </li> <li>  </listener>   </li> </ol> </div> <pre style="display: none;" name="code" class="xml">Web.xml常用元素 <web-app> <display-name></display-name>定义了WEB应用的名? <description></description> 声明WEB应用的描qC? <context-param></context-param> context-param元素声明应用范围内的初始化参数? <filter></filter> qo(h)器元素将一个名字与一个实现javax.servlet.Filter接口的类相关联? <filter-mapping></filter-mapping> 一旦命名了一个过滤器Q就要利用filter-mapping元素把它与一个或多个servlet或JSP面相关联? <listener></listener>servlet API的版?.3增加了对事g监听E序的支持,事g监听E序在徏立、修改和删除?x)话或servlet环境时得到通知? Listener元素指出事g监听E序cR? <servlet></servlet> 在向servlet或JSP面制定初始化参数或定制URLӞ必须首先命名servlet或JSP面。Servlet元素是用来完成此项d的? <servlet-mapping></servlet-mapping> 服务器一般ؓ(f)servlet提供一个缺省的URLQhttp://host/webAppPrefix/servlet/ServletName? 但是Q常怼(x)更改q个URLQ以便servlet可以讉K初始化参数或更容易地处理相对URL。在更改~省URLӞ使用servlet-mapping元素? <session-config></session-config> 如果某个?x)话在一定时间内未被讉KQ服务器可以抛弃它以节省内存? 可通过使用HttpSession的setMaxInactiveIntervalҎ(gu)明确讄单个?x)话对象的超时|或者可利用session-config元素制定~省时倹{? <mime-mapping></mime-mapping>如果Web应用h惛_Ҏ(gu)的文Ӟ希望能保证给他们分配特定的MIMEcdQ则mime-mapping元素提供q种保证? <welcome-file-list></welcome-file-list> 指示服务器在收到引用一个目录名而不是文件名的URLӞ使用哪个文g? <error-page></error-page> 在返回特定HTTP状态代码时Q或者特定类型的异常被抛出时Q能够制定将要显C的面? <taglib></taglib> Ҏ(gu)记库描述W文ӞTag Libraryu Descriptor fileQ指定别名。此功能使你能够更改TLD文g的位|, 而不用编辑用这些文件的JSP面? <resource-env-ref></resource-env-ref>声明与资源相关的一个管理对象? <resource-ref></resource-ref> 声明一个资源工厂用的外部资源? <security-constraint></security-constraint> 制定应该保护的URL。它与login-config元素联合使用 <login-config></login-config> 指定服务器应该怎样l试图访问受保护面的用h权。它与sercurity-constraint元素联合使用? <security-role></security-role>l出安全角色的一个列表,q些角色出现在servlet元素内的security-role-ref元素 的role-name子元素中。分别地声明角色可高IDE处理安全信息更ؓ(f)Ҏ(gu)? <env-entry></env-entry>声明Web应用的环境项? <ejb-ref></ejb-ref>声明一个EJB的主目录的引用? < ejb-local-ref></ ejb-local-ref>声明一个EJB的本C目录的应用? </web-app> 相应元素配置 1、Web应用图标Q指出IDE和GUI工具用来表示Web应用的大图标和小图标 <icon> <small-icon>/images/app_small.gif</small-icon> <large-icon>/images/app_large.gif</large-icon> </icon> 2、Web 应用名称Q提供GUI工具可能?x)用来标记这个特定的Web应用的一个名U? <display-name>Tomcat Example</display-name> 3、Web 应用描述Q?l出于此相关的说明性文? <disciption>Tomcat Example servlets and JSP pages.</disciption> 4、上下文参数Q声明应用范围内的初始化参数? <context-param> <param-name>ContextParameter</para-name> <param-value>test</param-value> <description>It is a test parameter.</description> </context-param> 在servlet里面可以通过getServletContext().getInitParameter("context/param")得到 5、过滤器配置Q将一个名字与一个实现javaxs.servlet.Filter接口的类相关联? <filter> <filter-name>setCharacterEncoding</filter-name> <filter-class>com.myTest.setCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>GB2312</param-value> </init-param> </filter> <filter-mapping> <filter-name>setCharacterEncoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 6、监听器配置 <listener> <listerner-class>listener.SessionListener</listener-class> </listener> 7、Servlet配置 基本配置 <servlet> <servlet-name>snoop</servlet-name> <servlet-class>SnoopServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>snoop</servlet-name> <url-pattern>/snoop</url-pattern> </servlet-mapping> 高配置 <servlet> <servlet-name>snoop</servlet-name> <servlet-class>SnoopServlet</servlet-class> <init-param> <param-name>foo</param-name> <param-value>bar</param-value> </init-param> <run-as> <description>Security role for anonymous access</description> <role-name>tomcat</role-name> </run-as> </servlet> <servlet-mapping> <servlet-name>snoop</servlet-name> <url-pattern>/snoop</url-pattern> </servlet-mapping> 元素说明 <servlet></servlet> 用来声明一个servlet的数据,主要有以下子元素Q? <servlet-name></servlet-name> 指定servlet的名U? <servlet-class></servlet-class> 指定servlet的类名称 <jsp-file></jsp-file> 指定web站台中的某个JSP|页的完整\? <init-param></init-param> 用来定义参数Q可有多个init-param。在servletcM通过getInitParamenter(String name)Ҏ(gu)讉K初始化参? <load-on-startup></load-on-startup>指定当Web应用启动Ӟ装蝲Servlet的次序? 当gؓ(f)正数或零Ӟ(x)Servlet容器先加载数值小的servletQ再依次加蝲其他数值大的servlet. 当gؓ(f)负或未定义:(x)Servlet容器在Web客户首次讉Kq个servlet时加载它 <servlet-mapping></servlet-mapping> 用来定义servlet所对应的URLQ包含两个子元素 <servlet-name></servlet-name> 指定servlet的名U? <url-pattern></url-pattern> 指定servlet所对应的URL 8、会(x)话超旉|(单位为分钟) <session-config> <session-timeout>120</session-timeout> </session-config> 9、MIMEcd配置 <mime-mapping> <extension>htm</extension> <mime-type>text/html</mime-type> </mime-mapping> 10、指定欢q文仉配置 <welcome-file-list> <welcome-file>index.jsp</welcome-file> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> </welcome-file-list> 11、配|错误页? 一?通过错误码来配置error-page <error-page> <error-code>404</error-code> <location>/NotFound.jsp</location> </error-page> 上面配置了当pȝ发生404错误Ӟ跌{到错误处理页面NotFound.jsp? 二、通过异常的类型配|error-page <error-page> <exception-type>java.lang.NullException</exception-type> <location>/error.jsp</location> </error-page> 上面配置了当pȝ发生java.lang.NullExceptionQ即I指针异常)Ӟ跌{到错误处理页面error.jsp 12、TLD配置 <taglib> <taglib-uri>http://jakarta.apache.org/tomcat/debug-taglib</taglib-uri> <taglib-location>/WEB-INF/jsp/debug-taglib.tld</taglib-location> </taglib> 如果MyEclipse一直在报错,应该?lt;taglib> 攑ֈ <jsp-config>? <jsp-config> <taglib> <taglib-uri>http://jakarta.apache.org/tomcat/debug-taglib</taglib-uri> <taglib-location>/WEB-INF/pager-taglib.tld</taglib-location> </taglib> </jsp-config> 13、资源管理对象配|? <resource-env-ref> <resource-env-ref-name>jms/StockQueue</resource-env-ref-name> </resource-env-ref> 14、资源工厂配|? <resource-ref> <res-ref-name>mail/Session</res-ref-name> <res-type>javax.mail.Session</res-type> <res-auth>Container</res-auth> </resource-ref> 配置数据库连接池可在此配置Q? <resource-ref> <description>JNDI JDBC DataSource of shop</description> <res-ref-name>jdbc/sample_db</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> 15、安全限刉|? <security-constraint> <display-name>Example Security Constraint</display-name> <web-resource-collection> <web-resource-name>Protected Area</web-resource-name> <url-pattern>/jsp/security/protected/*</url-pattern> <http-method>DELETE</http-method> <http-method>GET</http-method> <http-method>POST</http-method> <http-method>PUT</http-method> </web-resource-collection> <auth-constraint> <role-name>tomcat</role-name> <role-name>role1</role-name> </auth-constraint> </security-constraint> 16、登陆验证配|? <login-config> <auth-method>FORM</auth-method> <realm-name>Example-Based Authentiation Area</realm-name> <form-login-config> <form-login-page>/jsp/security/protected/login.jsp</form-login-page> <form-error-page>/jsp/security/protected/error.jsp</form-error-page> </form-login-config> </login-config> 17、安全角Ԍ(x)security-role元素l出安全角色的一个列表,q些角色出现在servlet元素内的security-role-ref元素的role-name子元素中? 分别地声明角色可佉KUIDE处理安全信息更ؓ(f)Ҏ(gu)? <security-role> <role-name>tomcat</role-name> </security-role> 18、Web环境参数Qenv-entry元素声明Web应用的环境项 <env-entry> <env-entry-name>minExemptions</env-entry-name> <env-entry-value>1</env-entry-value> <env-entry-type>java.lang.Integer</env-entry-type> </env-entry> 19、EJB 声明 <ejb-ref> <description>Example EJB reference</decription> <ejb-ref-name>ejb/Account</ejb-ref-name> <ejb-ref-type>Entity</ejb-ref-type> <home>com.mycompany.mypackage.AccountHome</home> <remote>com.mycompany.mypackage.Account</remote> </ejb-ref> 20、本地EJB声明 <ejb-local-ref> <description>Example Loacal EJB reference</decription> <ejb-ref-name>ejb/ProcessOrder</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <local-home>com.mycompany.mypackage.ProcessOrderHome</local-home> <local>com.mycompany.mypackage.ProcessOrder</local> </ejb-local-ref> 21、配|DWR <servlet> <servlet-name>dwr-invoker</servlet-name> <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping> 22、配|Struts <display-name>Struts Blank Application</display-name> <servlet> <servlet-name>action</servlet-name> <servlet-class> org.apache.struts.action.ActionServlet </servlet-class> <init-param> <param-name>detail</param-name> <param-value>2</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>2</param-value> </init-param> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <init-param> <param-name>application</param-name> <param-value>ApplicationResources</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- Struts Tag Library Descriptors --> <taglib> <taglib-uri>struts-bean</taglib-uri> <taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location> </taglib> <taglib> <taglib-uri>struts-html</taglib-uri> <taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location> </taglib> <taglib> <taglib-uri>struts-nested</taglib-uri> <taglib-location>/WEB-INF/tld/struts-nested.tld</taglib-location> </taglib> <taglib> <taglib-uri>struts-logic</taglib-uri> <taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location> </taglib> <taglib> <taglib-uri>struts-tiles</taglib-uri> <taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location> </taglib> 23、配|SpringQ基本上都是在Struts中配|的Q? <!-- 指定spring配置文g位置 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value> <!--加蝲多个spring配置文g --> /WEB-INF/applicationContext.xml, /WEB-INF/action-servlet.xml </param-value> </context-param> <!-- 定义SPRING监听器,加蝲spring --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <listener-class> org.springframework.web.context.request.RequestContextListener </listener-class> </listener> </pre> <br /> <img src ="http://www.aygfsteel.com/caizh2009/aggbug/333562.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/caizh2009/" target="_blank">菜毛毛</a> 2010-09-30 16:33 <a href="http://www.aygfsteel.com/caizh2009/archive/2010/09/30/333562.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tomcat中web.xml文g的详l说?http://www.aygfsteel.com/caizh2009/archive/2010/09/30/333555.html菜毛毛菜毛毛Thu, 30 Sep 2010 08:06:00 GMThttp://www.aygfsteel.com/caizh2009/archive/2010/09/30/333555.htmlhttp://www.aygfsteel.com/caizh2009/comments/333555.htmlhttp://www.aygfsteel.com/caizh2009/archive/2010/09/30/333555.html#Feedback0http://www.aygfsteel.com/caizh2009/comments/commentRss/333555.htmlhttp://www.aygfsteel.com/caizh2009/services/trackbacks/333555.htmlTomcat中web.xml文g的详l说?
<?xml version="1.0" encoding="GB2312"?> <!--
Web.xml依次定议了如下元素:(x)
<web-app>
<display-name></display-name> 定义了WEB应用的名?
<description></description> 声明WEB应用的描qC?
<filter></filter>
<filter-mapping></filter-mapping>
<servlet></servlet>
<servlet-mapping></servlet-mapping>
<session-config></session-config>
<welcome-file-list></welcome-file-list>
<taglib></taglib>
<resource-ref></resource-ref>
<security-constraint></security-constraint>
<login-config></login-config>
</web-app>
在web.xml中元素定义的先后序不能颠倒,否则Tomcat服务器可能会(x)抛出SAXParseException.
-->
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems,Inc.//DTD Web Application 2.3//EN" " <web-app>

<display-name>Sample Application</display-name>

<description>
This is a Sample Application
</description>

<!--
filter 配置Servletqo(h)?
filter-name 定义qo(h)器的名字。当有多个过滤器Ӟ不能同名
filter-class 指定实现q一qo(h)的类Q这个类负责具体的过滤事?
-->
<filter>
<filter-name>SampleFilter</filter-name>
<filter-class>mypack.SampleFilter</filter-class>
</filter>

<!--
filter-mapping 讑֮qo(h)器负责过滤的URL
filter-name qo(h)器名。这里的名字一定要和filter中的qo(h)器名匚w
url-pattern 指定qo(h)器负责过滤的URL
-->
<filter-mapping>
<filter-name>SampleFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>

<!--
servlet 配置Servlet.
servlet-name 定义Servlet的名?
servlet-class 指定实现q个servlet的类
init-param 定义Servlet的初始化参数和参数|可有多个init-param。在servletcM通过getInitParamenter(String name)Ҏ(gu)讉K初始化参?
load-on-startup 指定当Web应用启动Ӟ装蝲Servlet的次序?
当gؓ(f)正数或零Ӟ(x)Servlet容器先加载数值小的servletQ再依次加蝲其他数值大的servlet.
当gؓ(f)负或未定义:(x)Servlet容器在Web客户首次讉Kq个servlet时加载它
-->
<servlet>
<servlet-name>SampleServlet</servlet-name>
<servlet-class>mypack.SampleServlet</servlet-class>
<init-param>
<param-name>initParam1</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<!--
配置servlet映射Q下面代码ؓ(f)SampleServlet指定的相对URL?/sample":
servlet-name 指定servlet的名字,q里的名字应该和<Servlet>元素中定义的名字匚w?
url-pattern 指定讉Kq个servlet的URL。只需l出相对路径?
-->
<servlet-mapping>
<servlet-name>SampleServlet</servlet-name>
<url-pattern>/sample</url-pattern>
</servlet-mapping>

<!--配置session session用来讑֮HttpSession的生命周期。单位(U)-->
<session-config>
<session-timeout>30</session-timeout>
</session-config>

<!--配置Wel0come0文g清单-->
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
<welcome-file>index.htm</welcome-file>
</welcome-file-list>

<!--
配置Tag Library
taglib-uri 讑֮Tag Library的唯一标识W,在Web应用中将Ҏ(gu)q一标识W来引用Tag Library
taglib-location 指定和Tag Library对应的TLD文g的位|?
-->
<taglib>
<taglib-uri>/mytaglib</taglib-uri>
<taglib-location>/WEB-INF/mytaglib.tld</taglib-location>
</taglib>

<!--
配置资源引用
description Ҏ(gu)引用的资源的说明
res-ref-name 指定所引用资源的JNDI名字
res-type 指定所引用资源的类名字
res-auth 指定理所引用资源的Manager,它有两个可选|(x)
ContainerQ由容器来创建和理resource
Application:同W(xu)EB应用来创建和理Resource
-->
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/sampleDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

<!--
配置安全U束Q以下代码指定当用户讉K该WEB应用下的所有资源时Q必d备guest角色Q?
web-resource-collection 声明受保护的WEB资源
auth-constraint 声明可以讉K受保护资源的角色Q可以包含多?lt;role-name>子元?

web-resource-name 标识受保护的WEB资源
url-pattern 指定受保护的URL路径
-->
<Security-constraint>
<web-resource-collection>
<web-resource-name>sample appliction</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>guest</role-name>
</auth-constraint>
</Security-constraint>


<!--
配置安全验证d界面Q指定当WEB客户讉K受保护的WEB资源Ӟpȝ弹出的登录对话框的类型?
auth-method 指定验证Ҏ(gu)Q它有三个可选|(x)BASIC(基本验证)、DIGEST(摘要验证)、FORM(表单验证)
realm-name 讑֮安全域的名称
form-login-config 当验证方法ؓ(f)FORMӞ配置验证|页和出错网?
form-login-page 当验证方法ؓ(f)FORMӞ讑֮验证|页
form-error-page 当验证方法ؓ(f)FORMӞ讑֮出错|页
-->
<login-config>
<auth-method>FORM</auth-method>
<realm-name>
Tomcat Server Configuration form-Based Authentication Area
</realm-name>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/error.jsp</form-error-page>
</form-login-config>
</login-config>

<!--配置对安全验证角色的引用-->
<security-role>
<description>
The role that is required to log into the sample application
</description>
<role-name>guest</role-name>
</security-role>
</web-app>



菜毛毛 2010-09-30 16:06 发表评论
]]>
վ֩ģ壺 | | ϵ| | | IJ| | ɳ| ʹ| ˮ| | ̨| ƽ| | ѷ| | ɽ| | | | ɽ| ̨| | | | | | | | | | | ̳| | | | | | ͻȪ| | |