??xml version="1.0" encoding="utf-8" standalone="yes"?>91免费综合在线,久久精品官网,日韩av网站在线观看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中配|如下:  <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()Ҏ中取得,在web.xml中配|如下:

 <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()Ҏ中通过this.getInitParameter("param1")取得)


W二U参数只能在servlet的init()Ҏ中通过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()ҎQ所以我们我们可以重写该ҎQ实现读取操作。可以这样实 玎ͼ

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:(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 加蝲序及其详解http://www.aygfsteel.com/caizh2009/archive/2010/09/30/333562.html菜毛毛菜毛毛Thu, 30 Sep 2010 08:33:00 GMThttp://www.aygfsteel.com/caizh2009/archive/2010/09/30/333562.htmlhttp://www.aygfsteel.com/caizh2009/comments/333562.htmlhttp://www.aygfsteel.com/caizh2009/archive/2010/09/30/333562.html#Feedback0http://www.aygfsteel.com/caizh2009/comments/commentRss/333562.htmlhttp://www.aygfsteel.com/caizh2009/services/trackbacks/333562.html 在项目中M遇到一些关于加载的优先U问题,q期也同样遇到过cM的,所以自己查找资料ȝ了下Q下面有些是转蝲其他人的Q毕竟h家写的不错,自己也就不重复造轮子了Q只是略加点了自q修饰?

        首先可以肯定的是Q加载顺序与它们?web.xml 文g中的先后序无关。即不会因ؓ filter 写在 listener 的前面而会先加?filter。最l得出的l论是:listener -> filter -> servlet

        同时q存在着q样一U配|节Qcontext-paramQ它用于?ServletContext 提供键值对Q即应用E序上下文信息。我们的 listener, filter {在初始化时会用到这些上下文中的信息Q那? context-param 配置节是不是应该写在 listener 配置节前呢?实际?context-param 配置节可写在L位置Q因?strong>真正的加载顺序ؓQcontext-param -> listener -> filter -> servlet

        对于某类配置节而言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 Ӟfilter 拦截资源是按?filter-mapping 配置节出现的序来依ơ调?/strong> doFilter() Ҏ的?

        servlet ?filter cMQ此处不再赘q?

       由此Q可以看出,web.xml 的加载顺序是Q?strong>context-param -> listener -> filter -> servlet Q而同个类型之间的实际E序调用的时候的序是根据对应的 mapping 的顺序进行调用的?/p>

web.xml文g详解

Xml代码
  1. Web.xml常用元素   
  2. <web-app>   
  3. <display-name></display-name>定义了WEB应用的名?nbsp;  
  4. <description></description> 声明WEB应用的描qC?nbsp;  
  5.   
  6. <context-param></context-param> context-param元素声明应用范围内的初始化参数?nbsp;  
  7. <filter></filter> qo器元素将一个名字与一个实现javax.servlet.Filter接口的类相关联?nbsp;  
  8. <filter-mapping></filter-mapping> 一旦命名了一个过滤器Q就要利用filter-mapping元素把它与一个或多个servlet或JSP面相关联?nbsp;  
  9. <listener></listener>servlet API的版?.3增加了对事g监听E序的支持,事g监听E序在徏立、修改和删除会话或servlet环境时得到通知?nbsp;  
  10.                      Listener元素指出事g监听E序cR?nbsp;  
  11. <servlet></servlet> 在向servlet或JSP面制定初始化参数或定制URLӞ必须首先命名servlet或JSP面。Servlet元素是用来完成此项d的?nbsp;  
  12. <servlet-mapping></servlet-mapping> 服务器一般ؓservlet提供一个缺省的URLQhttp://host/webAppPrefix/servlet/ServletName?nbsp;  
  13.               但是Q常怼更改q个URLQ以便servlet可以讉K初始化参数或更容易地处理相对URL。在更改~省URLӞ使用servlet-mapping元素?nbsp;  
  14.   
  15. <session-config></session-config> 如果某个会话在一定时间内未被讉KQ服务器可以抛弃它以节省内存?nbsp;  
  16.           可通过使用HttpSession的setMaxInactiveIntervalҎ明确讄单个会话对象的超时|或者可利用session-config元素制定~省时倹{?nbsp;  
  17.   
  18. <mime-mapping></mime-mapping>如果Web应用h惛_Ҏ的文Ӟ希望能保证给他们分配特定的MIMEcdQ则mime-mapping元素提供q种保证?nbsp;  
  19. <welcome-file-list></welcome-file-list> 指示服务器在收到引用一个目录名而不是文件名的URLӞ使用哪个文g?nbsp;  
  20. <error-page></error-page> 在返回特定HTTP状态代码时Q或者特定类型的异常被抛出时Q能够制定将要显C的面?nbsp;  
  21. <taglib></taglib> Ҏ记库描述W文ӞTag Libraryu Descriptor fileQ指定别名。此功能使你能够更改TLD文g的位|,   
  22.                   而不用编辑用这些文件的JSP面?nbsp;  
  23. <resource-env-ref></resource-env-ref>声明与资源相关的一个管理对象?nbsp;  
  24. <resource-ref></resource-ref> 声明一个资源工厂用的外部资源?nbsp;  
  25. <security-constraint></security-constraint> 制定应该保护的URL。它与login-config元素联合使用   
  26. <login-config></login-config> 指定服务器应该怎样l试图访问受保护面的用h权。它与sercurity-constraint元素联合使用?nbsp;  
  27. <security-role></security-role>l出安全角色的一个列表,q些角色出现在servlet元素内的security-role-ref元素   
  28.                    的role-name子元素中。分别地声明角色可高IDE处理安全信息更ؓҎ?nbsp;  
  29. <env-entry></env-entry>声明Web应用的环境项?nbsp;  
  30. <ejb-ref></ejb-ref>声明一个EJB的主目录的引用?nbsp;  
  31. < ejb-local-ref></ ejb-local-ref>声明一个EJB的本C目录的应用?nbsp;  
  32. </web-app>   
  33.   
  34.   
  35. 相应元素配置   
  36.   
  37. 1、Web应用图标Q指出IDE和GUI工具用来表示Web应用的大图标和小图标   
  38. <icon>   
  39. <small-icon>/images/app_small.gif</small-icon>   
  40. <large-icon>/images/app_large.gif</large-icon>   
  41. </icon>   
  42. 2、Web 应用名称Q提供GUI工具可能会用来标记这个特定的Web应用的一个名U?nbsp;  
  43. <display-name>Tomcat Example</display-name>   
  44. 3、Web 应用描述Q?nbsp;l出于此相关的说明性文?nbsp;  
  45. <disciption>Tomcat Example servlets and JSP pages.</disciption>   
  46. 4、上下文参数Q声明应用范围内的初始化参数?nbsp;  
  47.   <context-param>   
  48.     <param-name>ContextParameter</para-name>   
  49.     <param-value>test</param-value>   
  50.     <description>It is a test parameter.</description>   
  51.   </context-param>   
  52.   在servlet里面可以通过getServletContext().getInitParameter("context/param")得到   
  53.   
  54. 5、过滤器配置Q将一个名字与一个实现javaxs.servlet.Filter接口的类相关联?nbsp;  
  55.   <filter>   
  56.         <filter-name>setCharacterEncoding</filter-name>   
  57.         <filter-class>com.myTest.setCharacterEncodingFilter</filter-class>   
  58.         <init-param>   
  59.             <param-name>encoding</param-name>   
  60.             <param-value>GB2312</param-value>   
  61.         </init-param>   
  62.   </filter>   
  63.   <filter-mapping>   
  64.         <filter-name>setCharacterEncoding</filter-name>   
  65.         <url-pattern>/*</url-pattern>   
  66.   </filter-mapping>   
  67. 6、监听器配置   
  68.   <listener>   
  69.       <listerner-class>listener.SessionListener</listener-class>   
  70.   </listener>   
  71. 7、Servlet配置   
  72.    基本配置   
  73.    <servlet>   
  74.       <servlet-name>snoop</servlet-name>   
  75.       <servlet-class>SnoopServlet</servlet-class>   
  76.    </servlet>   
  77.    <servlet-mapping>   
  78.       <servlet-name>snoop</servlet-name>   
  79.       <url-pattern>/snoop</url-pattern>   
  80.    </servlet-mapping>   
  81.    高配置   
  82.    <servlet>   
  83.       <servlet-name>snoop</servlet-name>   
  84.       <servlet-class>SnoopServlet</servlet-class>   
  85.       <init-param>   
  86.          <param-name>foo</param-name>   
  87.          <param-value>bar</param-value>   
  88.       </init-param>   
  89.       <run-as>   
  90.          <description>Security role for anonymous access</description>   
  91.          <role-name>tomcat</role-name>   
  92.       </run-as>   
  93.    </servlet>   
  94.    <servlet-mapping>   
  95.       <servlet-name>snoop</servlet-name>   
  96.       <url-pattern>/snoop</url-pattern>   
  97.    </servlet-mapping>   
  98.    元素说明   
  99.      <servlet></servlet> 用来声明一个servlet的数据,主要有以下子元素Q?nbsp;  
  100.      <servlet-name></servlet-name> 指定servlet的名U?nbsp;  
  101.      <servlet-class></servlet-class> 指定servlet的类名称   
  102.      <jsp-file></jsp-file> 指定web站台中的某个JSP|页的完整\?nbsp;  
  103.      <init-param></init-param> 用来定义参数Q可有多个init-param。在servletcM通过getInitParamenter(String name)Ҏ讉K初始化参?nbsp;  
  104.      <load-on-startup></load-on-startup>指定当Web应用启动Ӟ装蝲Servlet的次序?nbsp;  
  105.                                  当gؓ正数或零ӞServlet容器先加载数值小的servletQ再依次加蝲其他数值大的servlet.   
  106.                                  当gؓ负或未定义:Servlet容器在Web客户首次讉Kq个servlet时加载它   
  107.      <servlet-mapping></servlet-mapping> 用来定义servlet所对应的URLQ包含两个子元素   
  108.        <servlet-name></servlet-name> 指定servlet的名U?nbsp;  
  109.        <url-pattern></url-pattern> 指定servlet所对应的URL   
  110. 8、会话超旉|(单位为分钟)   
  111.    <session-config>   
  112.       <session-timeout>120</session-timeout>   
  113.    </session-config>   
  114. 9、MIMEcd配置   
  115.    <mime-mapping>   
  116.       <extension>htm</extension>   
  117.       <mime-type>text/html</mime-type>   
  118.    </mime-mapping>   
  119. 10、指定欢q文仉配置   
  120.    <welcome-file-list>   
  121.       <welcome-file>index.jsp</welcome-file>   
  122.       <welcome-file>index.html</welcome-file>   
  123.       <welcome-file>index.htm</welcome-file>   
  124.    </welcome-file-list>   
  125. 11、配|错误页?nbsp;  
  126.   一?nbsp;通过错误码来配置error-page   
  127.    <error-page>   
  128.       <error-code>404</error-code>   
  129.       <location>/NotFound.jsp</location>   
  130.    </error-page>   
  131.   上面配置了当pȝ发生404错误Ӟ跌{到错误处理页面NotFound.jsp?nbsp;  
  132. 二、通过异常的类型配|error-page   
  133.    <error-page>   
  134.        <exception-type>java.lang.NullException</exception-type>   
  135.        <location>/error.jsp</location>   
  136.    </error-page>   
  137.   上面配置了当pȝ发生java.lang.NullExceptionQ即I指针异常)Ӟ跌{到错误处理页面error.jsp   
  138. 12、TLD配置   
  139.    <taglib>   
  140.        <taglib-uri>http://jakarta.apache.org/tomcat/debug-taglib</taglib-uri>   
  141.        <taglib-location>/WEB-INF/jsp/debug-taglib.tld</taglib-location>   
  142.    </taglib>   
  143.    如果MyEclipse一直在报错,应该?lt;taglib> 攑ֈ <jsp-config>?nbsp;  
  144.    <jsp-config>   
  145.       <taglib>   
  146.           <taglib-uri>http://jakarta.apache.org/tomcat/debug-taglib</taglib-uri>   
  147.           <taglib-location>/WEB-INF/pager-taglib.tld</taglib-location>   
  148.       </taglib>   
  149.    </jsp-config>   
  150. 13、资源管理对象配|?nbsp;  
  151.    <resource-env-ref>   
  152.        <resource-env-ref-name>jms/StockQueue</resource-env-ref-name>   
  153.    </resource-env-ref>   
  154. 14、资源工厂配|?nbsp;  
  155.    <resource-ref>   
  156.        <res-ref-name>mail/Session</res-ref-name>   
  157.        <res-type>javax.mail.Session</res-type>   
  158.        <res-auth>Container</res-auth>   
  159.    </resource-ref>   
  160.    配置数据库连接池可在此配置Q?nbsp;  
  161.    <resource-ref>   
  162.        <description>JNDI JDBC DataSource of shop</description>   
  163.        <res-ref-name>jdbc/sample_db</res-ref-name>   
  164.        <res-type>javax.sql.DataSource</res-type>   
  165.        <res-auth>Container</res-auth>   
  166.    </resource-ref>   
  167. 15、安全限刉|?nbsp;  
  168.    <security-constraint>   
  169.       <display-name>Example Security Constraint</display-name>   
  170.       <web-resource-collection>   
  171.          <web-resource-name>Protected Area</web-resource-name>   
  172.          <url-pattern>/jsp/security/protected/*</url-pattern>   
  173.          <http-method>DELETE</http-method>   
  174.          <http-method>GET</http-method>   
  175.          <http-method>POST</http-method>   
  176.          <http-method>PUT</http-method>   
  177.       </web-resource-collection>   
  178.       <auth-constraint>   
  179.         <role-name>tomcat</role-name>   
  180.         <role-name>role1</role-name>   
  181.       </auth-constraint>   
  182.    </security-constraint>   
  183. 16、登陆验证配|?nbsp;  
  184.    <login-config>   
  185.      <auth-method>FORM</auth-method>   
  186.      <realm-name>Example-Based Authentiation Area</realm-name>   
  187.      <form-login-config>   
  188.         <form-login-page>/jsp/security/protected/login.jsp</form-login-page>   
  189.         <form-error-page>/jsp/security/protected/error.jsp</form-error-page>   
  190.      </form-login-config>   
  191.    </login-config>   
  192. 17、安全角Ԍsecurity-role元素l出安全角色的一个列表,q些角色出现在servlet元素内的security-role-ref元素的role-name子元素中?nbsp;  
  193.     分别地声明角色可佉KUIDE处理安全信息更ؓҎ?nbsp;  
  194.   <security-role>   
  195.      <role-name>tomcat</role-name>   
  196.   </security-role>   
  197. 18、Web环境参数Qenv-entry元素声明Web应用的环境项   
  198.   <env-entry>   
  199.      <env-entry-name>minExemptions</env-entry-name>   
  200.      <env-entry-value>1</env-entry-value>   
  201.      <env-entry-type>java.lang.Integer</env-entry-type>   
  202.   </env-entry>   
  203. 19、EJB 声明   
  204.   <ejb-ref>   
  205.      <description>Example EJB reference</decription>   
  206.      <ejb-ref-name>ejb/Account</ejb-ref-name>   
  207.      <ejb-ref-type>Entity</ejb-ref-type>   
  208.      <home>com.mycompany.mypackage.AccountHome</home>   
  209.      <remote>com.mycompany.mypackage.Account</remote>   
  210.   </ejb-ref>   
  211. 20、本地EJB声明   
  212.   <ejb-local-ref>   
  213.      <description>Example Loacal EJB reference</decription>   
  214.      <ejb-ref-name>ejb/ProcessOrder</ejb-ref-name>   
  215.      <ejb-ref-type>Session</ejb-ref-type>   
  216.      <local-home>com.mycompany.mypackage.ProcessOrderHome</local-home>   
  217.      <local>com.mycompany.mypackage.ProcessOrder</local>   
  218.   </ejb-local-ref>   
  219. 21、配|DWR   
  220.   <servlet>   
  221.       <servlet-name>dwr-invoker</servlet-name>   
  222.       <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>   
  223.   </servlet>   
  224.   <servlet-mapping>   
  225.       <servlet-name>dwr-invoker</servlet-name>   
  226.       <url-pattern>/dwr/*</url-pattern>   
  227.   </servlet-mapping>   
  228. 22、配|Struts   
  229.     <display-name>Struts Blank Application</display-name>   
  230.     <servlet>   
  231.         <servlet-name>action</servlet-name>   
  232.         <servlet-class>   
  233.             org.apache.struts.action.ActionServlet   
  234.         </servlet-class>   
  235.         <init-param>   
  236.             <param-name>detail</param-name>   
  237.             <param-value>2</param-value>   
  238.         </init-param>   
  239.         <init-param>   
  240.             <param-name>debug</param-name>   
  241.             <param-value>2</param-value>   
  242.         </init-param>   
  243.         <init-param>   
  244.             <param-name>config</param-name>   
  245.             <param-value>/WEB-INF/struts-config.xml</param-value>   
  246.         </init-param>   
  247.         <init-param>   
  248.             <param-name>application</param-name>   
  249.             <param-value>ApplicationResources</param-value>   
  250.         </init-param>   
  251.         <load-on-startup>2</load-on-startup>   
  252.     </servlet>   
  253.     <servlet-mapping>   
  254.         <servlet-name>action</servlet-name>   
  255.         <url-pattern>*.do</url-pattern>   
  256.     </servlet-mapping>   
  257.     <welcome-file-list>   
  258.         <welcome-file>index.jsp</welcome-file>   
  259.     </welcome-file-list>   
  260.   
  261.     <!-- Struts Tag Library Descriptors -->   
  262.     <taglib>   
  263.         <taglib-uri>struts-bean</taglib-uri>   
  264.         <taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location>   
  265.     </taglib>   
  266.     <taglib>   
  267.         <taglib-uri>struts-html</taglib-uri>   
  268.         <taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location>   
  269.     </taglib>   
  270.     <taglib>   
  271.     <taglib-uri>struts-nested</taglib-uri>   
  272.     <taglib-location>/WEB-INF/tld/struts-nested.tld</taglib-location>   
  273.     </taglib>   
  274.     <taglib>   
  275.         <taglib-uri>struts-logic</taglib-uri>   
  276.         <taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location>   
  277.     </taglib>   
  278.     <taglib>   
  279.         <taglib-uri>struts-tiles</taglib-uri>   
  280.         <taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location>   
  281.     </taglib>   
  282. 23、配|SpringQ基本上都是在Struts中配|的Q?nbsp;  
  283.   
  284.    <!-- 指定spring配置文g位置 -->   
  285.    <context-param>   
  286.       <param-name>contextConfigLocation</param-name>   
  287.       <param-value>   
  288.        <!--加蝲多个spring配置文g -->   
  289.         /WEB-INF/applicationContext.xml, /WEB-INF/action-servlet.xml   
  290.       </param-value>   
  291.    </context-param>   
  292.   
  293.    <!-- 定义SPRING监听器,加蝲spring -->   
  294.   
  295.   <listener>   
  296.      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>   
  297.   </listener>   
  298.   
  299.   <listener>   
  300.      <listener-class>   
  301.        org.springframework.web.context.request.RequestContextListener   
  302.      </listener-class>   
  303.   </listener>   



菜毛毛 2010-09-30 16:33 发表评论
]]>
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依次定议了如下元素:
<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服务器可能会抛出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?
filter-name 定义qo器的名字。当有多个过滤器Ӟ不能同名
filter-class 指定实现q一qo的类Q这个类负责具体的过滤事?
-->
<filter>
<filter-name>SampleFilter</filter-name>
<filter-class>mypack.SampleFilter</filter-class>
</filter>

<!--
filter-mapping 讑֮qo器负责过滤的URL
filter-name qo器名。这里的名字一定要和filter中的qo器名匚w
url-pattern 指定qo器负责过滤的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)Ҏ讉K初始化参?
load-on-startup 指定当Web应用启动Ӟ装蝲Servlet的次序?
当gؓ正数或零ӞServlet容器先加载数值小的servletQ再依次加蝲其他数值大的servlet.
当gؓ负或未定义: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下面代码ؓ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应用中将Ҏ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 Ҏ引用的资源的说明
res-ref-name 指定所引用资源的JNDI名字
res-type 指定所引用资源的类名字
res-auth 指定理所引用资源的Manager,它有两个可选|
ContainerQ由容器来创建和理resource
Application:同WEB应用来创建和理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 指定验证ҎQ它有三个可选|BASIC(基本验证)、DIGEST(摘要验证)、FORM(表单验证)
realm-name 讑֮安全域的名称
form-login-config 当验证方法ؓFORMӞ配置验证|页和出错网?
form-login-page 当验证方法ؓFORMӞ讑֮验证|页
form-error-page 当验证方法ؓ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 发表评论
]]>
java定时?webhttp://www.aygfsteel.com/caizh2009/archive/2010/09/30/333545.html菜毛毛菜毛毛Thu, 30 Sep 2010 06:56:00 GMThttp://www.aygfsteel.com/caizh2009/archive/2010/09/30/333545.htmlhttp://www.aygfsteel.com/caizh2009/comments/333545.htmlhttp://www.aygfsteel.com/caizh2009/archive/2010/09/30/333545.html#Feedback0http://www.aygfsteel.com/caizh2009/comments/commentRss/333545.htmlhttp://www.aygfsteel.com/caizh2009/services/trackbacks/333545.html

Java定时器在Web中的应用

关键? java, 定时? timertask

在web?定时器的启动一般随web server的启动而启?一般有两种Ҏ.

Ҏ一Q在web.xml里配|一个ServletQƈ讄光web server的启动而启动。然后在该Servlet的init()Ҏ里启动定时器Q在destory()Ҏ里销毁定时器?br /> Ҏ二:在web.xml里配|一个Listener,然后在该Listener的初始化Ҏ里启动定时器Q在光毁的Ҏ朝左销毁定时器?/p>

在servlet中启动定时器
java 代码
  1. import java.io.IOException;   
  2. import java.util.Timer;   
  3. import javax.servlet.RequestDispatcher;   
  4. import javax.servlet.ServletContext;   
  5. import javax.servlet.ServletException;   
  6. import javax.servlet.http.HttpServlet;   
  7. import javax.servlet.http.HttpServletRequest;   
  8. import javax.servlet.http.HttpServletResponse;   
  9.   
  10. import org.apache.commons.lang.StringUtils;   
  11.   
  12. public class ConvergeDataServlet extends HttpServlet {   
  13.   
  14.     private static final long serialVersionUID = 1L;   
  15.   
  16.     private Timer timer1 = null;   
  17.        
  18.     private Task task1;   
  19.        
  20.     /**  
  21.      * Constructor of the object.  
  22.      */  
  23.     public ConvergeDataServlet() {   
  24.         super();   
  25.     }   
  26.   
  27.     /**  
  28.      * Destruction of the servlet. 
     
  29.      */  
  30.     public void destroy() {   
  31.         super.destroy();    
  32.         if(timer1!=null){   
  33.             timer1.cancel();   
  34.         }   
  35.     }   
  36.   
  37.        
  38.     public void doGet(HttpServletRequest request, HttpServletResponse response)   
  39.             throws ServletException, IOException {   
  40.            
  41.     }   
  42.   
  43.        
  44.     public void doPost(HttpServletRequest request, HttpServletResponse response)   
  45.             throws ServletException, IOException {   
  46.         doGet(request, response);          
  47.     }   
  48.   
  49.     // initҎ启动定时?  
  50.     public void init() throws ServletException {   
  51.            
  52.         ServletContext context = getServletContext();   
  53.            
  54.         // (true为用定时间刷新缓?   
  55.         String startTask = getInitParameter("startTask");   
  56.                    
  57.         // 定时h旉(分钟)   
  58.         Long delay = Long.parseLong(getInitParameter("delay"));   
  59.            
  60.         // 启动定时?  
  61.         if(startTask.equals("true")){   
  62.             timer1 = new Timer(true);   
  63.             task1 = new Task(context);   
  64.             timer1.schedule(task1, delay * 60 * 1000, delay * 60 * 1000);   
  65.         }   
  66.     }   
  67. }   

 定时执行操作

java 代码
  1.   
  2. /**  
  3.  *   
  4.  * @author callan  
  5.  */  
  6. import java.util.TimerTask;   
  7.   
  8. import javax.servlet.ServletContext;   
  9.   
  10. public class Task extends TimerTask{   
  11.   
  12.     private ServletContext context;   
  13.        
  14.     private static boolean isRunning = true;   
  15.        
  16.     public Task(ServletContext context){   
  17.         this.context = context;   
  18.     }   
  19.        
  20.            
  21.     @Override  
  22.     public void run() {   
  23.         if(isRunning){   
  24.              
  25.         }   
  26.     }   
  27.   
  28. }   

在web.xml配置q个servlet为服务启动时p用servlet

<servlet></servlet>
  < servlet >
     < servlet-name >taskservlet< / servlet-name >
    < servlet-class >com.task< /servlet-class >
    < init-param >
     < param-name >startTask< /param-name >
     < param-value >true< /param-value >
    < /init-param >
    < init-param >
     < param-name >intervalTime< /param-name >
     < param-value >1< /param-value >
    < /init-param >
    < load-on-startup >300< /load-on-startup >
  < /servlet >

<servlet></servlet>




菜毛毛 2010-09-30 14:56 发表评论
]]>
Java定时器在Web中的应用http://www.aygfsteel.com/caizh2009/archive/2010/09/30/333538.html菜毛毛菜毛毛Thu, 30 Sep 2010 05:53:00 GMThttp://www.aygfsteel.com/caizh2009/archive/2010/09/30/333538.htmlhttp://www.aygfsteel.com/caizh2009/comments/333538.htmlhttp://www.aygfsteel.com/caizh2009/archive/2010/09/30/333538.html#Feedback0http://www.aygfsteel.com/caizh2009/comments/commentRss/333538.htmlhttp://www.aygfsteel.com/caizh2009/services/trackbacks/333538.html 关键? java, 定时? timertask

在web?定时器的启动一般随web server的启动而启?一般有两种Ҏ.

Ҏ一Q在web.xml里配|一个ServletQƈ讄光web server的启动而启动。然后在该Servlet的init()Ҏ里启动定时器Q在destory()Ҏ里销毁定时器?br /> Ҏ二:在web.xml里配|一个Listener,然后在该Listener的初始化Ҏ里启动定时器Q在光毁的Ҏ朝左销毁定时器?/p>

在servlet中启动定时器
java 代码
  1. import java.io.IOException;   
  2. import java.util.Timer;   
  3. import javax.servlet.RequestDispatcher;   
  4. import javax.servlet.ServletContext;   
  5. import javax.servlet.ServletException;   
  6. import javax.servlet.http.HttpServlet;   
  7. import javax.servlet.http.HttpServletRequest;   
  8. import javax.servlet.http.HttpServletResponse;   
  9.   
  10. import org.apache.commons.lang.StringUtils;   
  11.   
  12. public class ConvergeDataServlet extends HttpServlet {   
  13.   
  14.     private static final long serialVersionUID = 1L;   
  15.   
  16.     private Timer timer1 = null;   
  17.        
  18.     private Task task1;   
  19.        
  20.     /**  
  21.      * Constructor of the object.  
  22.      */  
  23.     public ConvergeDataServlet() {   
  24.         super();   
  25.     }   
  26.   
  27.     /**  
  28.      * Destruction of the servlet. 
     
  29.      */  
  30.     public void destroy() {   
  31.         super.destroy();    
  32.         if(timer1!=null){   
  33.             timer1.cancel();   
  34.         }   
  35.     }   
  36.   
  37.        
  38.     public void doGet(HttpServletRequest request, HttpServletResponse response)   
  39.             throws ServletException, IOException {   
  40.            
  41.     }   
  42.   
  43.        
  44.     public void doPost(HttpServletRequest request, HttpServletResponse response)   
  45.             throws ServletException, IOException {   
  46.         doGet(request, response);          
  47.     }   
  48.   
  49.     // initҎ启动定时?  
  50.     public void init() throws ServletException {   
  51.            
  52.         ServletContext context = getServletContext();   
  53.            
  54.         // (true为用定时间刷新缓?   
  55.         String startTask = getInitParameter("startTask");   
  56.                    
  57.         // 定时h旉(分钟)   
  58.         Long delay = Long.parseLong(getInitParameter("delay"));   
  59.            
  60.         // 启动定时?  
  61.         if(startTask.equals("true")){   
  62.             timer1 = new Timer(true);   
  63.             task1 = new Task(context);   
  64.             timer1.schedule(task1, delay * 60 * 1000, delay * 60 * 1000);   
  65.         }   
  66.     }   
  67. }   

 定时执行操作

java 代码
  1.   
  2. /**  
  3.  *   
  4.  * @author callan  
  5.  */  
  6. import java.util.TimerTask;   
  7.   
  8. import javax.servlet.ServletContext;   
  9.   
  10. public class Task extends TimerTask{   
  11.   
  12.     private ServletContext context;   
  13.        
  14.     private static boolean isRunning = true;   
  15.        
  16.     public Task(ServletContext context){   
  17.         this.context = context;   
  18.     }   
  19.        
  20.            
  21.     @Override  
  22.     public void run() {   
  23.         if(isRunning){   
  24.              
  25.         }   
  26.     }   
  27.   
  28. }   

在web.xml配置q个servlet为服务启动时p用servlet

<servlet></servlet>
  < servlet >
     < servlet-name >taskservlet< / servlet-name >
    < servlet-class >com.task< /servlet-class >
    < init-param >
     < param-name >startTask< /param-name >
     < param-value >true< /param-value >
    < /init-param >
    < init-param >
     < param-name >intervalTime< /param-name >
     < param-value >1< /param-value >
    < /init-param >
    < load-on-startup >300< /load-on-startup >
  < /servlet >

<servlet></servlet>



菜毛毛 2010-09-30 13:53 发表评论
]]>
վ֩ģ壺 | ʩ| | | | ֺ| | | | ī񹤿| ư| ӽ| | | | | | Ȫ| Դ| | | Ͽ| | | | | ľ| | ݸ| ԭƽ| ־| ˰| ɽ| ɽ| Ϫ| ͼľ| ľ| ˳| | | ̩|