程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2EE >> 簡化Web應用開發 Servlet 3.0特性詳解(2)

簡化Web應用開發 Servlet 3.0特性詳解(2)

編輯:J2EE
新增的注解支持

Servlet 3.0的部署描述文件web.xml的頂層標簽<web-app>有一個metadata-complete屬性,該屬性指定當前的部署描述文件是否是完全的。如果設置為true,則容器在部署時將只依賴部署描述文件,忽略所有的注解(同時也會跳過web-fragment.XML的掃描,亦即禁用可插性支持,具體請看後文關於可插性支持的講解);如果不配置該屬性,或者將其設置為false,則表示啟用注解支持(和可插性支持)。

@WebServlet

@WebServlet用於將一個類聲明為Servlet,該注解將會在部署時被容器處理,容器將根據具體的屬性配置將相應的類部署為Servlet。該注解具有下表給出的一些常用屬性(以下所有屬性均為可選屬性,但是vlaue或者urlPatterns通常是必需的,且二者不能共存,如果同時指定,通常是忽略value的取值):

屬性名類型描述

1.nameString指定Servlet的name屬性,等價於<servlet-name>。如果沒有顯式指定,則該Servlet的取值即為類的全限定名。

2.valueString[]該屬性等價於urlPatterns屬性。兩個屬性不能同時使用。

3.urlPatternsString[]指定一組Servlet的URL匹配模式。等價於<url-pattern>標簽。

4.loadOnStartupint指定Servlet的加載順序,等價於<load-on-startup>標簽。

5.initParamsWebInitParam[]指定一組Servlet初始化參數,等價於<init-param>標簽。

6.asyncSupportedboolean聲明Servlet是否支持異步操作模式,等價於<async-supported>標簽。

7.descriptionString該Servlet的描述信息,等價於<description>標簽。

8.displayNameString該Servlet的顯示名,通常配合工具使用,等價於<display-name>標簽。

下面是一個簡單的示例:

  1. @WebServlet(urlPatterns={"/simple"},asyncSupported=true,
  2. loadOnStartup=-1,name="SimpleServlet",displayName="ss",
  3. initParams={@WebInitParam(name="username",value="tom")}
  4. )
  5. publicclassSimpleServletextendsHttpServlet{…}

如此配置之後,就可以不必在web.xml中配置相應的<servlet>和<servlet-mapping>元素了,容器會在部署時根據指定的屬性將該類發布為Servlet。它的等價的web.XML配置形式如下:

  1. <servlet>
  2. <display-name>ss</display-name>
  3. <servlet-name>SimpleServlet</servlet-name>
  4. <servlet-class>footmark.servlet.SimpleServlet</servlet-class>
  5. <load-on-startup>-1</load-on-startup>
  6. <async-supported>true</async-supported>
  7. <init-param>
  8. <param-name>username</param-name>
  9. <param-value>tom</param-value>
  10. </init-param>
  11. </servlet>
  12. <servlet-mapping>
  13. <servlet-name>SimpleServlet</servlet-name>
  14. <url-pattern>/simple</url-pattern>
  15. </servlet-mapping>

@WebInitParam

該注解通常不單獨使用,而是配合@WebServlet或者@WebFilter使用。它的作用是為Servlet或者過濾器指定初始化參數,這等價於web.XML中<servlet>和<filter>的<init-param>子標簽。@WebInitParam具有下表給出的一些常用屬性:

屬性名類型是否可選描述

◆nameString否指定參數的名字,等價於<param-name>。
◆valueString否指定參數的值,等價於<param-value>。
◆descriptionString是關於參數的描述,等價於<description>。

@WebFilter

@WebFilter用於將一個類聲明為過濾器,該注解將會在部署時被容器處理,容器將根據具體的屬性配置將相應的類部署為過濾器。該注解具有下表給出的一些常用屬性(以下所有屬性均為可選屬性,但是value、urlPatterns、servletNames三者必需至少包含一個,且value和urlPatterns不能共存,如果同時指定,通常忽略value的取值):

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved