Servlet 三種創建方式


servlet 是運行在 Web 服務器(tomcat)中的小型 Java 程序(即:服務器端的小應用程序

(其實就是一個java類,只不過不用再new)servlet 通常通過 HTTP(超文本傳輸協議)接收和響應來自 Web 客戶端的請求

 

一、實現javax.servlet.Servlet接口

寫一個java類,實現servlet接口

輸入impl 然后alt+/可以自動補齊 。

鼠標放在Servlet上可以自動出現要包含的包名。

下圖鼠標放在1的位置然后選擇2這樣就會出現要實現的方法。

 

然后如下圖修改web.xml文件

注意:下圖中的1是項目的全路徑,如果你在建web project項目時填的是com.it.servlet那么下面應該填的是com.it.servlet .Demo1  下圖中的2不要忘了/

全路徑復制方法入下圖:(這樣就可以復制出com.it.servlet.Demo1

 

應用部署到服務器(tomcat

 

啟動服務器,輸入 http://localhost:8080/day8/demo1

瀏覽器啥都沒有,因為我們啥都沒寫。。。。。原理如下:

執行過程如下:

 tomcat接受瀏覽器信息,然后找到相應的web projectday07,然后根據web.xml找到servletDemo1(就是我們寫的類),並實例化servletDemo1。 然后tomcat調用servlet中的init()方法 Service()方法等

 

 

 二、繼承javax.servet.GenericServlet

只要重寫service方法就行了——適配器模式

 

然后輸入下面的程序:(技巧 alt+ / 自動補齊GenericServlet  注意大小寫

然后鼠標放到servlet_demo2處自動補齊service方法

 

然后在web.xml下輸入

然后重新部署tomcat

然后在瀏覽器中輸入:

http://localhost:8080/day07/demo2 

(就會在myeclipse下框中輸出servletDemo2 )

按住ctrl鍵然后點擊下圖

 

然后點擊下圖

 

 

然后點擊下圖

然后倒入tomcat源碼

 

下圖,點擊1顯示出來的就是GenericServlet類的所有方法,帶三角號(箭頭2)的是繼承servlet的,不帶三角號(箭頭3)的是自己實現的方法。

 

 

 

 

三、繼承javax.servlet.http.HttpServlet

(模板方法設計模式)看源碼可知其實就是多態  【開發中常用】

新建應用程序然后導包

插入Override函數(重寫函數):

1空白處點擊右鍵,然后選擇Source->Override/Implement Methods...如下圖:

 

然后如下圖選擇doget()方法  dopost()方法

然后重寫這兩個方法如下圖

在web.xml文件輸入

然后重新加載

瀏覽器中訪問

http://localhost:8080/day07/demo3

就會在 Myeclipse 出現

原理:

Tomcat會創建一個demo3對象,但是demo3是繼承httpservlet類的,而瀏覽器在訪問服務器時,Tomcat會調用service方法,但是httpservlet類里重寫了GenericServlet類的service方法,所以會調用httpservlet類中的service方法這個方法中調用了doget方法。所以我們要實現doget方法(按住ctrl鍵,然后鼠標點擊相關的類名和函數名可以查找看一下源碼)

Servlet --> GenericServlet --> HttpServlet  (繼承HttpServlet)

曾祖父         爺爺                    爸爸                    孫子

 

 

 

 

 

 

更簡單的創建    【自動生成web.xml 中的內容

然后就會自動生成惹

輸入http://localhost:8080/day9/servlet/demo4 即可訪問

 

 

 

 

 

 

servet映射細節

在Web.xml添加下圖箭頭1,那么在瀏覽器中輸入:

http://localhost:8080/day9/demo666 訪問的也是demo4中的內容·

web.xml如下圖添加的內容作用:

 

 

上圖的箭頭1  *.do 代表任意字符串.do 都能訪問demo4

瀏覽器輸入:

http://localhost:8080/day9/demo.do

上圖的箭頭2   /*    代表任意字符串都能訪問demo4

瀏覽器輸入:

http://localhost:8080/day9/de

 

上圖的箭頭3   /action/*    /action開頭的請求都可以訪問demo4

瀏覽器輸入:

http://localhost:8080/day9/action/dew

 

 

匹配規則:

優先級:從高到低

絕對匹配(就是名字完全匹配)-->  /開頭匹配 --> 后綴名方式匹配

 

打開 F:\apache-tomcat-7.0.52\conf 下的web.xml97行和360行可知只要在瀏覽器中輸入

http://localhost:8080/day9/ 默認打開的資源都是servlet 

 


免責聲明!

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



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