Eclipse, Tomcat, Filter, Servlet, Listener 筆記

Filter

filter 的配置能夠有以下兩種方式:web

如下說明的方式是創建在把 filter 工程導出 .jar 包後,放入 Tomcat 的 lib 下的前提。瀏覽器

  1. 放在 Tomcat 目錄 conf/web.xml內。這個方法中,使用<servlet-name>指定須要影響的 servlet,使用<url-pattern>指定須要影響的URL通配規則,以下:app

    <filter>
         <filter-name>helloFilter</filter-name>
         <filter-class>com.test.testMyFilter</filter-class>
     </filter>
     <filter-mapping>
         <filter-name>helloFilter</filter-name>
         <servlet-name>helloServlet</servlet-name>
         <url-pattern>/*</url-pattern>
         <dispatcher>REQUEST</dispatcher>
     </filter-mapping>
  2. 放在各自 servlet 的WEB-INF/web.xml內。在<servlet> 前加入此 filter 的配置。

Eclipse, Servlet

使用 Eclipse 建立的 Servlet 工程名,就是未來會在 url 中 映射的地址,好比,這個工程叫 MyPuppyServlet,那麼在瀏覽器中訪問時,其URL就是 http://localhost/MyPuppyServleteclipse

若你建立 servlet 時,勾選了產生獨立的 web.xml 配置文件,那麼在 WEB-INF 下就會有一個 web.xml。如下都是基於這個前提的說明。url

在這個 web.xml 內,涉及到關於 servlet 的配置。這裏解釋一下幾個名字的重要關係。spa

  1. URL中的訪問名,如http://localhost/MyPuppyServlet中的 MyPuppyServlet。首先在 URL 裏涉及路徑上面說過了,就是工程的名字,這個名字,會被 Tomcat 在 conf/Catalina/localhost 目錄下產生一個對應的 .xml 文件,好比工程名叫 MyPuppyServlet,那麼文件名就 MyPuppyServlet.xml。這個文件裏 <Context> 屬性 docBase 指明瞭你的工程在文件系統中的實際位置。屬性 path 爲 "/testMyServlet" 好像有些多餘,並不能在 eclipse 中有所指定。手工修改爲其它值,也並不影響 URL 的訪問。
  2. <servlet-name>,配置中使用的 servlet 名。Tomcat 根據 docBase 中指明的位置,找到 servlet 的根目錄,而後進入目錄查看 WEB-INF/web.xml 中的內容,這個文件中的標籤 <servlet-name> 就明確了在整個系統中,servlet 的名字,必須是惟一的。這裏指明的名字,能夠被其它地方引用,好比 <filter-mapping> 中想指定對某個 servlet 起做用,就能夠在 <filter-mapping> 下用 <servlet-name> 指明。這個 <servlet-name> 名,並不必定要與工程名或路徑名中保持一致,它只是一個系統內部引用的名字。好比上面的 URL 是 http://localhost/MyPuppyServlet,這裏的 <servlet-name> 仍能夠叫做 testABC。
  3. <servlet-class> 是在工程內爲 servlet 從 HttpServlet 繼承下來的主類名稱,這個名稱也與 URL 及 <servlet-name> 徹底無關。這裏舉個例子。我建立一個 servlet 工程,工程名叫 MyPuppyServlet,主類命名爲 testCCC,package 名爲 com.test.servlet ,則訪問 servlet 的 URL 是 http://localhost/MyPuppyServlet,而在此 servlet 下 WEB-INF/web.xml 中的 <servlet-name> 更名爲 testABC,<servlet-class> 是 com.test.servlet.testCCC。

Listener

listener 的部署相似於 filter。首先須要導出 listener 的工程爲 .jar 包並放到 Tomcat 的 lib 目錄下。
而後,分紅爲全部或部分 servlet 提供服務兩個方向。code

  1. 爲全部 servlet 提供服務。在 Tomcat 的目錄 conf/web.xml內,放入 <listener> 及其子標籤。
  2. 爲部分 servlet 提供服務。在須要使用它的 servlet 的 WEB-INF/web.xml 中,加入 <listener> 及其子標籤。

我沒有找到如何在 Tomcat 的目錄 conf/web.xml內爲部分 servlet 提供服務的配置方法。xml

相關文章
相關標籤/搜索