Servlet介绍
Servlet:
Java類必須符合一定的規范:
1.必須繼承javax.servlet.http.HttpServlet
2.重寫其中的doGet()或doPost()方法
doGet():接受并處理所有get提交方式的請求
doPost():接受并處理所有Post提交方式的請求
Servlet要想使用,必須配置
servlet2.5:web.xml:
項目的根目錄:WebContent,src
<a href="welcomeservlet">所在的jsp是在WebContent目錄中,因此發出的請求welcomeservlet,是去請求項目的根目錄
servlet中servlet-name與servlet-mapping中servlet-name的名字要保持一致
Servlet流程:
請求->? <url-pattern>? ->? 根據<servlet-mapping>中的<servlet-name>去匹配<servlet>中的<servlet-name>,然后尋找到<servlet-class>,最終將請求交由該<servlet-class>執行。
?
servlet3.0:@WebServlet
不需要在web.xml中配置,但需要在Servlet類的定義處之上編寫注解@WebServlet("url-pattern的值")
servlet流程:
請求地址與@WebServlet中的值進行匹配,如果匹配成功,則說明請求的就是該注解所對應的類
?
項目根目錄:WebContent,src(所有的構建路徑)
例如:WebContent中有一個文件index.jsp,src中有一個Servlet.java?
?如果:index.sp中請求<a href ="abc"">...</a>,則尋找范圍:既會在src根目錄中找,也會在WebContent根目錄中找
如果是<a href ="a/abc"">...</a>,先在src,WebContent中找a,再在a目錄中找abc
/:
在web.xml中:/在開頭出現代表的是項目路徑
在jsp中的:/在開頭代表服務器根路徑
?
servlet生命周期:5個階段
加載
初始化:init(),servlet被加載并實例化以后? 執行
服務:service() ->doGet? doPost
銷毀:destroy(),Serlet被系統回收時執行
卸載?
加載與卸載是servlet容器自動處理
init()
1.第一次訪問servlet時會被執行,并且只執行這一次
2.可以修改為tomcat啟動時自動執行
a.Servlet2.5
在web.xml中寫
<servlet>
.......
? ? <load-on-startup>1</load-on-startup>
</servlet>
其中的“1”代表tomcat啟動時的執行順序,1,2,3...
b. Servlet3.0
?在注解里面,寫上
@WebContentServlet(Value="/文件名",loadOnStartup=1)
service() ->doGet? doPost調用幾次就執行幾次
destroy() :關閉tomcat服務時,執行一次。?
總結
- 上一篇: 2017年网易校招题 解救小易
- 下一篇: 动态规划--牛客网19校招--魔法深渊