你知道可以通過網址訪問的Servlet如何實現嗎?

Servlet 是 Server Applet 的縮寫,是服務端小程序的意思。使用 Java 語言編寫的服務器端程序,主要功能在于交互式地瀏覽和生成數據,生成動態Web內容,Servlet 主要運行在服務器端,并由服務器調用執行,是一種按照 Servlet 標準來開發的類。 是 SUN 公司提供的一門用于開發動態 Web 資源的技術。(言外之意:要實現 web 開發,需要實現 Servlet 標準)

Servlet 本質上也是 Java 類,但要遵循 Servlet 規范進行編寫,沒有 main() 方法,它的創建、使用、銷毀都由 Servlet 容器進行管理(如 Tomcat)。(言外之意:寫自己的類,不用寫 main 方法,別人自動調用)

Servlet 是和 HTTP 協議是緊密聯系的,其可以處理 HTTP 協議相關的所有內容。這也是 Servlet 應用廣泛的原因之一。

提供了 Servlet 功能的服務器,叫做 Servlet 容器,其常見容器有很多,如 Tomcat, Jetty, WebLogic Server, WebSphere, JBoss 等等。

Servlet實現方式

創建動態 web 項目

新建類

實現 Servlet 規范

重寫 service 方法

配置 web.xml

發布項目

啟動項目

訪問并查看結果

案例實操

1)創建動態 web 項目

2)新建類

packagecom.xxx.web;publicclassHelloWeb{}

1

2

3

4

5

3)實現 Servlet 規范

實現 Servlet 規范,即繼承 HttpServlet 類,并導入相應的包,該類中已經完成了通信的規則,我們只需要進行業務的實現即可。

packagecom.xxx.web;importjavax.servlet.http.HttpServlet;publicclassHelloWebextendsHttpServlet{}

1

2

3

4

5

6

7

4)重寫 service 方法

滿足 Servlet 規范只是讓我們的類能夠滿足接收請求的要求,接收到請求后需要對請求進行分析,以及進行業務邏輯處理,計算出結果,則需要添加代碼,在規范中有一個叫做 service 的方法,專門用來做請求處理的操作,業務代碼則可以寫在該方法中。

packagecom.xxx.web;importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;publicclassHelloWebextendsHttpServlet{@Overrideprotectedvoidservice(HttpServletRequest req,HttpServletResponse resp)throwsServletException,IOException{System.out.println("I received a request");resp.getWriter().write("<h1>Hello World!</h1>");}}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

5)配置 web.xml

在完成好了一切代碼的編寫后,還需要向服務器說明,特定請求對應特定資源,此時通過一個名叫 web.xml 的配置文件完成。

<!-- 配置servlet --><servlet><servlet-name>helloweb</servlet-name><!-- 給服務器看的 --><servlet-class>com.xxx.web.HelloWeb</servlet-class><!-- servlet對應的資源路徑 --></servlet><servlet-mapping><servlet-name>helloweb</servlet-name><!-- 給服務器看的 --><url-pattern>/helloweb</url-pattern><!-- 給瀏覽器看的,對外訪問路徑 --></servlet-mapping>

1

2

3

4

5

6

7

8

9

6)發布項目

到此,需要編寫和配置的地方已經完成,項目已經完整了,但是如果需要外界能夠訪問, 還需要將項目發布到服務器上并運行服務器。

7)啟動項目

看到類似一長串信息表示啟動成功,接下來就可以訪問項目了

8)訪問并查看結果

在項目正確發布到服務器上之后,用戶即可通過瀏覽器訪問該項目中的資源。注意 url 的格式正確,tomcat 的端口為 8080。http://localhost:8080/hw/helloweb,頁面結果

后臺結果

到這里我們的第一個 Servlet 就實現了!

擴展

工作原理

執行過程

客戶端發出請求根據 web.xml 文件的配置,找到對應的 url-pattern 讀取其中的值,找到對應的 servlet-name,找到指定的 class 并加載執行該 class,返回結果由 Web 服務器將結果響應給客戶端

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容