Servlet3.0下@WebServlet註解配置Servlet
@WebServlet註解配置Servlet
從Servlet3.0開始,配置Servlet支援註解方式,但還是保留了配置web.xml方式,所有使用Servlet有兩種方式:
- Servlet類上使用@WebServlet註解進行配置
- web.xml檔案中配置
@WebServlet常用屬性
屬性 | 型別 | 是否必須 | 說明 |
---|---|---|---|
asyncSupported | boolean | 否 | 指定Servlet是否支援非同步操作模式 |
displayName | String | 否 | 指定Servlet顯示名稱 |
initParams | WebInitParam[] | 否 | 配置初始化引數 |
loadOnStartup | int | 否 | 標記容器是否在應用啟動時就載入這個Servlet |
name | String | 否 | 指定Servlet名稱 |
urlPatterns/value | String[] | 否 | 這兩個屬性作用相同,指定Servlet處理的url |
1.UserServlet
通過註解方式配置,web.xml中不需要配置該Servlet@WebServlet(name = "myUserServlet", urlPatterns = "/user/test", loadOnStartup = 1, initParams = { @WebInitParam(name="name", value="小明"), @WebInitParam(name="pwd", value="123456") } ) public class UserServlet extends HttpServlet { private static final long serialVersionUID = 7109220574468622594L; @Override public void init(ServletConfig config) throws ServletException { super.init(config); System.out.println("servlet初始化..."); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); response.setCharacterEncoding("utf-8"); PrintWriter pw = response.getWriter(); pw.append("Hello Servlet!<br>" ); //servletName pw.append("servletName:" + getServletName() + "<br>"); //initParam ServletConfig servletConfig = this.getServletConfig(); Enumeration<String> paramNames = servletConfig.getInitParameterNames(); while (paramNames.hasMoreElements()) { String paramName = paramNames.nextElement(); pw.append(paramName + ":" + servletConfig.getInitParameter(paramName) + "<br>"); } pw.close(); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
2.測試結果
2.1應用啟動時,servlet就會初始化,因為配置了loadOnStartup=1
2.2訪問/user/test,頁面上顯示結果;表名引數正確初始化以及自定義的servlet名稱
3.注
(1).loadOnStartup屬性:標記容器是否在啟動應用時就載入Servlet,預設不配置或數值為負數時表示客戶端第一次請求Servlet時再載入;0或正數表示啟動應用就載入,正數情況下,數值越小,載入該Servlet的優先順序越高; (2).name屬性:可以指定也可以不指定,通過getServletName()可以獲取到,若不指定,則為Servlet的完整類名,如:cn.edu.njit.servlet.UserServlet (3).urlPatterns/value屬性- <web-app> </web-app>根元素中不能配置屬性metadata-complete="true",否則無法載入Servlet。metadata-complete屬性表示通知Web容器是否尋找註解,預設不寫或者設定false,容器會掃描註解和Web分片,為Web應用程式構建有效的元資料;設定true,表示將由部署描述符為Web程式提供所有的配置資訊
- web.xml中不能再配置該Servlet
- /*或者/:攔截所有
- *.do:攔截指定字尾
- /user/test:攔截路徑
- /user/*.do、/*.do、test*.do都是非法的,啟動時候會報錯
相關推薦
Servlet3.0下@WebServlet註解配置Servlet
@WebServlet註解配置Servlet 從Servlet3.0開始,配置Servlet支援註解方式,但還是保留了配置web.xml方式,所有使用Servlet有兩種方式: Servlet類上使用@WebServlet註解進行配置web.xml檔案中配置 @WebSe
Servlet3.0下基於註解的SpringMVC3.1配置
Spring3.1.x系列的一個新特性就是支援了Servlet3.0規範,基於註解的方式配置SpringMVC框架。官方文件描述如下: 3.1.10 Support for Servlet 3 code
servlet3.0的過濾器註解配置
之前我們控制多個filter的執行順序是通過web.xml中控制filter-mapping的位置來控制的,放在上面的會比放在下面的先執行. <!-- 使用者登入檢測過濾器 --> <filter> <filter-
javaWeb自定義可排序過濾器註解,解決Servlet3.0下@WebFilter註解無法排序問題
com.lwl.anno 註釋型別 @WebFilterSort 需要用的jar包 http://download.csdn.net/detail/u013202238/9431110 用該註解註冊的Filter預設在部署描述
Servlet3.1使用@WebServlet註解配置問題記錄
@WebServlet 該註解用於在Web應用中定義Servlet元件。該註解在一個類上指定幷包含宣告Servlet的元資料。必須指定註解的urlPatterns或value屬性。所有其他屬性是可選的預設設定(請參考javadoc獲取更多細節)。當注解上唯一屬性是url模式
idea中原生Servlet3.0開發之---使用配置類和註解的方式整合SpringMVC
以註解方式來啟動SpringMVC前需瞭解的基礎知識: 1、web容器在啟動的時候,會掃描每個jar包下的META-INF/services/javax.servlet.ServletContainerInitializer 2、載入這個檔案指定的類SpringServ
關於servlet3中,使用註解配置之後,訪問無效的解決方法
web專案中的web.xml檔案的根元素如果是從其他地方拷貝的,如下所示 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
AMQ在Servlet3.0下出現的問題
if (message == null && client.getListener().getUndeliveredMessages().size() == 0) { Continuation continuation = ContinuationSuppor
web.xml與註解配置servlet使用介紹
Servlet3.0是Java EE6規範的一部分所以說使用註解需要在JAVA EE6以上 (Tomact7.0全面支援註解) 配置Servlet類 web.xml配置方法 <servl
Servlet3.0中Servlet的使用(註解&&配置檔案)
Servlet3.0中Servlet的使用 目錄 1.註解配置 2.非同步呼叫 3.檔案上傳 相對於之前的版本,Servlet3.0中的Servlet有以下改進: l 支援註解配置。 l 支援非同步呼叫。 l 直接有對檔案上傳的支援。
Servlet3.0(一)--使用註解標註Servlet @WebServlet
http://www.cnblogs.com/xdp-gacl/p/4222902.html 一、Servlet3.0介紹 Servlet3.0是Java EE6規範的一部分,Servlet3.0提供了註解(annotation),使得不再需要在web.xml檔案
6.28筆記-servlet3.0註解配置、文件上傳、過濾器、監聽器
對象 color ctype url ext string 實現 ins web服務器 一、servlet3.0註解配置 使用javaEE6.0 支持servlet3.0 value的值就是訪問路徑 urlPatterns的值也是訪問路
Servlet編程專題10之Servlet3.0註解
servlet 特性 webservlet - Servlet3.0規範是JavaEE6.0規範中的子規範。其要求運行環境最低是JDK6.0,Tomcat7.0。而之前學習的是Servlet2.5版本的規範,其是JavaEE5.0規範的子規範。其要求運行環境最低是JDK5.0,Tomcat5.0
Servlet3.0學習總結(一)——使用註解標註Servlet
一、Servlet3.0介紹 Servlet3.0是Java EE6規範的一部分,Servlet3.0提供了註解(annotation),使得不再需要在web.xml檔案中進行Servlet的部署描述,簡化開發流程。 二、開發Servlet3.0程式的所需要的環境 開
SpringBoot(10) Servlet3.0的註解:自定義原生Servlet、自定義原生Listener
一、自定義原生Servlet 1、啟動類裡面增加註解 @ServletComponentScan 2、Servlet上添加註解 @WebServlet(name = "userServlet",urlPatterns = "/v1/api/test/customs") 1 @WebServlet(nam
Servlet3.0的註解原生Servlet
自定義原生Servlet @WebServlet(name = "userServlet",urlPatterns = "/test/customs") &
Java Web 學習與總結(二)Servlet核心介面+Servlet3.0配置
Servlet3.0版本對Servlet配置進行了重大變革,Servlet類不需要再麻煩的去編輯web.xml檔案了,只需要在類上面進行註釋就可以了,獲得了 Java 社群的一片讚譽之聲,以下是新增的註解支援。 @WebServlet @WebServlet 用於將一個類宣告為 Servlet,該註解
servlet3.0 @WebServlet註解無效的情況
web clas pre 16px jcp span complete 時也 -a web.xml文件中的metadata-comcomplete屬性的作用: 該屬性指定當前的部署描述文件是否是完全的。如果設置為true,則容器在部署時只依賴部署描述文件,忽略所有的註解
系統學習JavaWeb之特別篇使用註解WebServlet配置Servlet報404錯誤的原因
有些人可能會遇到這種種情況,在採用註解WebServlet配置Servlet的時候,明明在配置了urlPatterns屬性,部署應用程式的時候也沒有出錯。但是就是在瀏覽器發請求的時候訪問不到資
Servlet3.0的新特性 ——註解配置
Servlet3.0 對應的javaEE6對應的是tomcat7.* 在傳統的使用xml做Servlet的配置: 如果Servlet的有N個就必須要Servlet。就必須要配置多大的程式碼。 web.xml檔案 出現臃腫 不利於開發 開發效率低。 在tomcat7中出現可以使用註解