1.介紹Servlet的基本概念,特點
1)它是由 java 編寫的、服務端程序。
2)基於Http協議的,運行在web服務器內的。Servlet和CGI都是運行在Web服務器上,用來生成Web頁面。
3)沒有 main 方法。是接受來自網絡的請求(form表單,以及其他的請求),並對不同請求作出不同的響應。
4)由容器管理和調用。這個web容器可以控制Servlet對象的生命週期,控制請求由Servlet對象處理。
2.分析Servlet類
Servlet的繼承關係
javax.servlet.Servlet接口 --> GenericServlet抽象類 --> HttpServlet --> 自定義類
必須重載doGet()或者doPost()方法
public class CartServlet extends HttpServlet{ //overside public void init() throws ServletException { //put your code } //overside public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //put your code } //overside public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //put you code } }
3.容器怎麼調用對應Servlet
配置文件 web.xml 中Servert標籤可以根據配置一一對應找到對應的Servlet類,
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>CartServlet</servlet-name> <!-- 加入包名 --> <servlet-class>servlet.CartServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>CartServlet</servlet-name> <!-- 以/開始--> <url-pattern>/servlet/CartServlet</url-pattern> </servlet-mapping> </web-app>
如果不喜歡web.xml的形式
可以採用在Servlet類中增加註解的方法,去註冊Servlet類
@WebServlet
(name =
"CartServlet"
, urlPatterns = {
"/servlet/CartServlet"
})
4.Servlet生命週期的三個核心方法分別是 init() , service() 和 destroy()。
每個Servlet都會實現這些方法,並且在特定的運行時間調用它們。
init() 方法:Servlet實例的生命週期裏只調用一次
service()方法:web容器調用Servlet的service()方法來處理每一個請求,但是我們不用重載這個方法
destory()方法:終結Servlet。可以再Servlet的生命週期內關閉或者銷燬一些文件系統或者網絡資源,在Servlet的生命週期裏只能調用一次