eclipes創建一個web項目web.xml不能自動更新的原因(web.xml和@WebServlet的作用)


在eclipse中創建一個Web項目的時候,雖然有web.xml生成,但是再添加Servlet類文件的時候總是看不見web.xml的更新,所以異常的郁悶!上網查了查,原來我們在創建Web項目的時候,會彈出一個對話框,“Dynamic web module version”這個選項默認成了3.0,按照老規范,應該是在eclipse的WebContent \ WEB-INF \ 目錄下創建web.xml的。而新規范是可以不用web.xml的,如tomcat 7.0就支持新規范,這樣相關的servlet配置會以注解的形式直接寫到代碼里面了,比如@WebServlet。 當然如果你用老的項目導入,可以選擇Dynamic web module version這個選項設成2.5,這樣web.xml就會自動更新了。 

 

@WebServlet(“/HW”)的含義:

 

@WebServlet(“/HW”)//默認設置的是urlPatterns屬性

public class HelloServlet extends HttpServlet {

只要在Servlet上設置@WebServlet標注,容器就會自動讀取當中的信息。上面的@WebServlet告訴容器,如果請求的URL是“/HW”,則由HelloServlet的實例提供服務。可以使用@WebServlet提供更多信息。
@WebServlet(
    name="Hello",
    urlPatterns={"/HW"}
)

上面的@WebServlet告知容器,HelloServlet這個Servlet的名稱是Hello,這是由name屬性指定的,而如果客戶端請求的URL是/HW,則由具Hello名稱的Servlet來處理,這是由urlPatterns屬性來指定的。在Java EE相關應用程序中使用標注時,可以記得的是,沒有設置的屬性通常會有默認值。例如,若沒有設置@WebServlet的name屬性,默認值會是Servlet的類完整名稱。

 

注意:Tomcat中, 如果web.xml和@WebServlet屬性都設置了,那么對不起,@WebServlet

中的urlPatterns屬性就不起作用了!(可以將web.xml從WEB-INF目錄中移走,或者刪除

這樣@WebServlet中的urlPatterns屬性值就可以使用了!)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM