日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Servlet 入门

發布時間:2023/12/29 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Servlet 入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

一、Servlet 介紹

二、Servlet 入門

1、創建JavaEE Web項目

2、定義類,實現 Servlet 接口

3、實現接口中的抽象方法

4、配置 Servlet

三、Servlet 分析

1、原理分析

2、Servlet 中的生命周期

四、注解配置(不用web.xml配置)

五、Servlet 體系結構

1、GenericServlet 類

2、HttpServlet 類


一、Servlet 介紹

Servlet(server applet)是運行在服務器端的小程序,其實就是一個接口,定義了 Java 類被瀏覽器訪問到(Tomcat 識別)的規則,我們可以自己定義一個類,來實現 Servlet 接口,復寫方法

二、Servlet 入門

1、創建JavaEE Web項目

具體參見上一篇博客

2、定義類,實現 Servlet 接口

public class myServlet implements Servle{}

3、實現接口中的抽象方法

public class myServlet implements Servlet {/*** 初始化方法* 在Servlet被創建是執行,只會執行一次*/@Overridepublic void init(ServletConfig servletConfig) throws ServletException {System.out.println("初始化");}/*** 獲取ServletConfig配置對象* @return*/@Overridepublic ServletConfig getServletConfig() {return null;}/*** 提供服務的方法* 每次Servlet被訪問的時候執行,可執行多次* @return*/@Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {System.out.println("Hello Servlet!");}/*** 獲取Servlet信息,如作者、版本等* @return*/@Overridepublic String getServletInfo() {return null;}/*** 銷毀方法* 在服務器正常關閉的時候執行,執行一次*/@Overridepublic void destroy() {System.out.println("銷毀");} }

4、配置 Servlet

在 web.xml 文件里面進行配置,在根標簽里面加入如下配置

<!--配置Servlet --> <servlet><servlet-name>oneStar</servlet-name><servlet-class>web.servlet.myServlet</servlet-class> </servlet><servlet-mapping><servlet-name>oneStar</servlet-name><url-pattern>/oneStar</url-pattern> </servlet-mapping>

三、Servlet 分析

1、原理分析

  • 當服務器接收到客戶端瀏覽器的請求后,會解析請求的URL路徑,獲取訪問的 Servlet 的資源路徑
  • 查找 web.xml 文件,看是否有對應的<url-pattern>標簽體內容
  • 如果有,則再找到對應的<url-pattern>全類名
  • Tomcat 將字節碼文件加載進內存,并創建其對象
  • 調用其方法
  • 2、Servlet 中的生命周期

    • 被創建:執行 init 方法,只執行一次
      • 默認情況下,第一次被訪問時,Servlet 被創建
      • 可以配置執行 Servlet 的創建時機,可在<servlet>標簽中配置
      • 配置第一次被訪問時創建:<load-on-startup>標簽配置為負數(默認為-1)
      • 配置服務器啟動時被創建:<load-on-startup>標簽配置0或正數
      • init 方法只執行一次,說明一個 Servlet 在內存中只存在一個對象,Servlet 是單例的
        • 多個用戶同時訪問時,可能存在線程安全問題,所以盡量不要在Servlet中定義成員變量,即使定義了也不要對值進行修改
    • 提供服務:執行 server 方法,可以執行多次
      • 每次訪問 Servlet 時,Servlet 方法都會被調用一次
    • 被銷毀:執行 destory 方法,只執行一次
      • Servlet 銷毀時執行,只有服務器正常關閉時,才會執行 destory 方法

    四、注解配置(不用web.xml配置)

    在 Servlet3.0 以上的版本中,支持使用注解配置,可以不需要 web.xml 文件,在類上使用 @webServlet 注解進行配置,其實質就是配置WebServlet.class 文件里面的 urlPatterns 參數,urlPatterns 是一個 String 類型的數組,使用該數組來配置訪問路徑,該配置有多種方法:

    • 一個 Servlet 可以定義一個訪問路徑:@WebServlet("/oneStar")
    • 一個 Servlet 可以定義一個數組(多個)訪問路徑:@WebServlet({"/oneStar","/twoStar","/threeStar"})
    • 支持多層路徑:@WebServlet("/user/oneStar")
    • 使用通配(任何目錄):@WebServlet("/*")
    • 使用通配(帶后綴):@WebServlet("*.do")
    @WebServlet("/oneStar") //@WebServlet({"/oneStar","/twoStar","/threeStar"}) //@WebServlet("/user/oneStar") //@WebServlet("/*") //@WebServlet("*.do") public class Main implements Servlet {}

    這樣就可以啟動項目了

    五、Servlet 體系結構

    Servlet?是一個接口,定義了 Java 類被瀏覽器訪問到的很多方法,我們可以直接去實現這些方法,但一般不這樣做,而是使用 Servlet 接口的抽象子類 GenericServlet 類或者?GenericServlet 的抽象子類 HttpServlet 類,實現 service() 方法。

    1、GenericServlet 類

    將 Servlet 接口中其他的方法做了默認空實現,只將 service() 方法作為抽象,因此可以直接繼承?GenericServlet,實現 service() 方法即可,而在實際開發當中,往往會在 service() 方法中判斷請求的方式,判斷是 get 方法還是 post 方法,是一個比較繁瑣的過程,因此可以使用?HttpServlet 類來簡化了這一過程。

    2、HttpServlet 類

    HttpServlet 類是對 HTTP 協議的封裝,簡化了操作

    • 定義類繼承?HttpServlet
    • 重寫 doGet 或 doPost 方法
    @WebServlet("/oneStar") public class Main extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("Do Get!");} }

    ?

    總結

    以上是生活随笔為你收集整理的Servlet 入门的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。