*******************Servlet3(使用注解配置servlet)*************************
前提要求:
1. tomcat7或以上版本
2. javaee 6 或者以上版本
*******************純手工創建第一個Servelt程序*************************
******************************如何調錯*************************
常見錯誤:
1. 404
頁面或其他資源未找到
2. 500 服務器內部錯誤
服務器上的代碼有錯,如何調錯
小技巧: 看自己寫的代碼的第一行
******************************tomcat的兩種服務器模式*************************
一. run模式
二. debug模式
區別1
run模式 無法打斷點調試
debug 模式 可以打斷點一步一步調試
區別2:
兩種模式在啟動狀態下都會自動部署
run模式: jsp和web.xml 中的改動會生效,servlet發生改變 不會生效
debug模式: jsp和web.xml、servlet的改動都會生效
tomcat會自動檢測你代碼的變化 自動幫你從新加載 效率低
還是推薦使用run模式,除非像一步一步調試代碼的時候才用debug模式
小技巧: 改動servlet后,如果想讓它生效 可以在web.xml中打兩個空格
這樣tomcat就會自動幫你從新加載新的servlet 從新幫你new對象了
(因為run模式 web.xml變了會從新加載)
************************servlet的url-pattern一定不能配置成/ 和*.jsp*************
<url-pattern>/</url-pattern>
/ 為缺省的servlet,即當請求的servlet都沒有匹配上時,使用缺省的servlet處理
參見tomcat\conf\web.xml
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
如果用戶自己在項目下的web.xm中也配置一個 url-pattern為/的servlet,這樣會把tomcat默認提供的缺省的servlet給覆蓋掉,這樣當訪問的資源(jsp或servlet)不存在時,就不會給你提供404的錯誤提示了.
另外:Jsp也是servlet 以url-pattern為*.jsp的servlet給你處理的
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
Jsp資源如果找不到 例如輸入aaa.jsp 是使用JspServlet給你處理的 如果該頁面
存在給你返回這個jsp頁面,如果頁面不存在給你返回404的頁面,所以如果配置了一個servlet
Url-pattern為*.jsp的話,jsp頁面不存在時的404頁面也不會給你產生了