servlet配置web.xml问题
解決問題:webapp里有個@WebServlet然后在web.xml里沒有自動生成servlet的配置
?
原因:
Servlet3.0提供了注解(annotation),使得不再需要在web.xml文件中進行Servlet的部署描述,舉例來說說
| 1 | @WebServlet("/login") |
這句寫到LoginServlet.java的類名聲明前,就相當于以前Servlet 2.5之前的web.xml里的:
| 1 2 3 4 5 6 7 8 | ??<servlet> ????<servlet-name>LoginServlet</servlet-name> ????<servlet-class>servlets.LoginServlet</servlet-class> ??</servlet>?? <servlet-mapping> ????<servlet-name>LoginServlet</servlet-name> ????<url-pattern>/login</url-pattern> ??</servlet-mapping> |
這么一大段了,也就是說只需說明url-pattern就可以了,其他的隱含內容注解會自動幫你判斷出來,是不是很方便。當然Servlet 3.0還是支持用老的web.xml配置的,你還可以繼續按照視頻里教的老做法。
?
使用@WebServlet將一個繼承于javax.servlet.http.HttpServlet的類定義為Servlet組件。@WebServlet有很多的屬性:1、asyncSupported: 聲明Servlet是否支持異步操作模式。2、description: Servlet的描述。3、displayName: Servlet的顯示名稱。4、initParams: Servlet的init參數。5、name: Servlet的名稱。6、urlPatterns: Servlet的訪問URL。7、value: Servlet的訪問URL。Servlet的訪問URL是Servlet的必選屬性,可以選擇使用urlPatterns或者value定義。像上面的Servlet3Demo可以描述成@WebServlet(name="Servlet3Demo",value="/Servlet3Demo")。也定義多個URL訪問:如@WebServlet(name="Servlet3Demo",urlPatterns={"/Servlet3Demo","/Servlet3Demo2"})或者@WebServlet(name="AnnotationServlet",value={"/Servlet3Demo","/Servlet3Demo2"})?
?
至于“還有為什么eclipse新建的webapp項目classes文件都在build文件夾下,而不是像視頻教程那樣在web-inf里的classes文件夾里?”
這只是eclipse在build這個步驟做的中間工作而已,最后發布時,按照Java EE標準,一定會發布到web-inf里的classes文件夾里,不信你發布后再到個目錄里看一下。
?
最后問題:“我要新建一個javabean在哪里建”,javabean也是一個Java類而已,你只需要New-->Class就行了,建好后,建立私有屬性后,生成getter/setter方法,可以點右鍵source-->generate getters/setters自動生成,比較方便。
轉載于:https://www.cnblogs.com/ChengchenJava/p/8158599.html
總結
以上是生活随笔為你收集整理的servlet配置web.xml问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 南半球某国的潜艇大单突然改换门庭
- 下一篇: centos7搭建nexus