首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2EE

Servlet 3.0 新特性深度解析 (三):@WebFilter、@WebListener、@MultipartConfig 與可插性機制

     編輯:J2EE

@WebFilter 核心屬性

屬性類型對應 web.xml
filterNameString<filter-name>
value / urlPatternsString[]<url-pattern> (二選一)
servletNamesString[]<servlet-name> 在 filter-mapping 中
dispatcherTypesDispatcherType[]ASYNC, ERROR, FORWARD, INCLUDE, REQUEST
initParamsWebInitParam[]<init-param>
asyncSupportedboolean<async-supported>

範例

@WebFilter(servletNames={"SimpleServlet"}, filterName="SimpleFilter")
public class LessThanSixFilter implements Filter { ... }

等同 web.xml:

<filter><filter-name>SimpleFilter</filter-name><filter-class>...</filter-class></filter>
<filter-mapping><filter-name>SimpleFilter</filter-name><servlet-name>SimpleServlet</servlet-name></filter-mapping>

@WebListener

標註類別為監聽器,需實作至少一個介面:ServletContextListener、ServletRequestListener、HttpSessionListener 等六種。

@WebListener("Demo Listener")
public class SimpleListener implements ServletContextListener { ... }

等同 <listener><listener-class>...</listener-class></listener>。

@MultipartConfig

標註於 Servlet,聲明處理 multipart/form-data 請求。

屬性類型說明
fileSizeThresholdint超過此大小寫入臨時檔案
locationString臨時檔案儲存路徑
maxFileSizelong單檔最大位元組 (-1 無限制)
maxRequestSizelong整個請求最大位元組 (-1 無限制)

可插性支援:web-fragment.xml

將 Servlet/Filter/Listener 定義打包在 JAR 的 META-INF/web-fragment.xml,放入 WEB-INF/lib/ 即自動生效,無需修改主應用。

片段範例

<web-fragment xmlns="https://java.sun.com/xml/ns/javaee"
              version="3.0" metadata-complete="true">
  <servlet>
    <servlet-name>fragment</servlet-name>
    <servlet-class>footmark.servlet.FragmentServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>fragment</servlet-name>
    <url-pattern>/fragment</url-pattern>
  </servlet-mapping>
</web-fragment>

載入順序控制

<name> 標識片段,<ordering> 定義相對順序:

<name>FragmentA</name>
<ordering>
  <after><name>FragmentB</name><name>FragmentC</name></after>
  <before><others/></before>
</ordering>
  • <after>:必須在列出片段之後解析。
  • <before>:必須在列出片段之前解析。
  • <others/>:除自身外所有其他片段 (優先級低於具名)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved