最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaWeb組件Servlet使用實例解析

 更新時間:2019年11月07日 08:30:04   作者:Demrystv  
這篇文章主要介紹了JavaWeb組件Servlet使用實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

在JavaWeb中有三大組件,分別是Servlet、Filter和Listener。其中Servlet的作用是處理請求,服務器會把接收到的請求交給Servlet來處理,即接收請求數據、處理請求和完成響應。

1. 實現Servlet的方式

主要有三種實現方式:1)實現javax.servlet.Servlet接口;2)繼承javax.servlet.GenericServlet類;3)繼承javax.servlet.http.HttpServlet類;其中最常用的繼承HttpServlet類來實現。

2. 關于Servlet接口

public interface Servlet {
  public void init(ServletConfig config) throws ServletException;
  public ServletConfig getServletConfig();
  public void service(ServletRequest req, ServletResponse res)
      throws ServletException, IOException;
  public String getServletInfo();
  public void destroy();
}

如上是Servlet接口的源碼,內部主要有五個方法,其中與Servlet生命周期有關的方法有 init方法、service方法和destroy方法。

1) void init(ServletConfig);它會在Servlet對象創(chuàng)建之后馬上執(zhí)行,并且只執(zhí)行一次。

2) void service(ServletRequest,ServletResponse);它會被調用多次,每次處理請求都被調用。

3) void destroy();它會在Servlet被銷毀之前被Tomcat調用,并且只執(zhí)行一次。

3. Servlet的創(chuàng)建

服務器會在Servlet第一次被訪問時創(chuàng)建Servlet,或者是在服務器啟動時創(chuàng)建Servlet。如果服務器啟動時就創(chuàng)建Servlet,那么還需要在web.xml文件中配置。如果 Servlet 的 load-on-startup 配置項大于 0,那么在 Context 容器啟動的時候就會被實例化,也就是說默認情況下,Servlet是在第一次被訪問時由服務器創(chuàng)建的。而且一個Servlet類型,服務器只創(chuàng)建一個實例對象。

4. Servlet與線程安全

因為一個類型的Servlet只有一個實例對象,那么就有可能會現時出一個Servlet同時處理多個請求,那么Servlet是否為線程安全的呢?答案是:“不是線程安全的”。這說明Servlet的工作效率很高,但也存在線程安全問題!

所以我們不應該在Servlet中隨便創(chuàng)建成員變量,因為可能會存在一個線程對這個成員變量進行寫操作,另一個線程對這個成員變量進行讀操作。

5. Servlet的使用

如果想要瀏覽器可以訪問Servlet,需要給Servlet綁定一個路徑,這個需要在web.xml中進行配置。其中<servlet> 指定HelloServlet這個Servlet的名稱為hello;<servlet-mapping>:指定/helloworld訪問路徑所以訪問的Servlet名為hello。<servlet>和<servlet-mapping>通過<servlet-name>這個元素關聯在一起。

<servlet>
  <servlet-name>hello</servlet-name>
  <servlet-class>com.Demrystv.HelloServlet</servlet-class>
 </servlet>
 <servlet-mapping>
  <servlet-name>hello</servlet-name>
  <url-pattern>/helloworld</url-pattern>
 </servlet-mapping>

6. 關于HttpServlet

HttpServlet類是GenericServlet的子類,它提供了對HTTP請求的特殊支持,所以通常我們都會通過繼承HttpServlet來完成自定義的Servlet。

HttpServlet類是一個抽象類,但是沒有抽象方法,必須繼承,實現doGet或者doPost,但是doGet()或doPost()方法不是抽象方法,默認的實現是給客戶一個405。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • java數據結構基礎:線性表

    java數據結構基礎:線性表

    這篇文章主要介紹了Java的數據解構基礎,希望對廣大的程序愛好者有所幫助,同時祝大家有一個好成績,需要的朋友可以參考下,希望能給你帶來幫助
    2021-07-07
  • Spring?Boot?Rest常用框架注解詳情簡介

    Spring?Boot?Rest常用框架注解詳情簡介

    這篇文章主要介紹了Spring?Boot?Rest常用框架注解,通過將嘗試解釋Spring?Boot?Rest?API的不同注釋,這些注釋是Spring?Boot中REST?API所必需的,需要的朋友可以參考一下
    2022-06-06
  • 深入理解Struts2國際化信息機制

    深入理解Struts2國際化信息機制

    本篇文章主要介紹了深入理解Struts2國際化信息機制,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • 淺談MyBatisPlus中LocalDateTime引發(fā)的一些問題和解決辦法

    淺談MyBatisPlus中LocalDateTime引發(fā)的一些問題和解決辦法

    MyBatisPlus進行數據庫操作時,我們經常會遇到處理日期時間類型的需求,本文主要介紹了淺談MyBatisPlus中LocalDateTime引發(fā)的一些問題和解決辦法,具有一定的參考價值,感興趣的可以了解一下
    2024-07-07
  • Java關于JDK1.8中的Optional類

    Java關于JDK1.8中的Optional類

    本文主要介紹了Optional類的一些常用方法,以及其應用場景,其主要是為了規(guī)避空指針異常(NPE)。熟練的運用Optional類可以很大的簡化我們的代碼,使代碼簡潔明了。,需要的朋友可以參考下面文章內容
    2021-09-09
  • Java面向對象類和對象實例詳解

    Java面向對象類和對象實例詳解

    面向對象乃是Java語言的核心,是程序設計的思想,這篇文章主要介紹了Java面向對象類和對象的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-03-03
  • Java Fluent Mybatis實戰(zhàn)之構建項目與代碼生成篇下

    Java Fluent Mybatis實戰(zhàn)之構建項目與代碼生成篇下

    Java中常用的ORM框架主要是mybatis, hibernate, JPA等框架。國內又以Mybatis用的多,基于mybatis上的增強框架,又有mybatis plus和TK mybatis等。今天我們介紹一個新的mybatis增強框架 fluent mybatis
    2021-10-10
  • ibatis結合oracle批量插入三種方法的測評

    ibatis結合oracle批量插入三種方法的測評

    今天小編就為大家分享一篇關于ibatis結合oracle批量插入三種方法的測評,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Java多線程死鎖問題詳解(wait和notify)

    Java多線程死鎖問題詳解(wait和notify)

    線程之間形成相互等待資源的環(huán)時,就會形成順序死鎖,下面這篇文章主要給大家介紹了關于Java多線程死鎖問題(wait和notify)的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • MybatisPlus自動填充創(chuàng)建(更新)時間問題

    MybatisPlus自動填充創(chuàng)建(更新)時間問題

    在開發(fā)數據庫相關應用時,手動設置創(chuàng)建和更新時間會導致代碼冗余,MybatisPlus提供了自動填充功能,通過實現MetaObjectHandler接口并重寫insertFill、updateFill方法,可以自動維護創(chuàng)建時間、更新時間等字段,極大簡化了代碼,這不僅提高了開發(fā)效率,也保證了數據的可追溯性
    2024-09-09

最新評論

新绛县| 衡南县| 建瓯市| 陇西县| 青岛市| 工布江达县| 翁牛特旗| 西乌珠穆沁旗| 昌平区| 垦利县| 山阳县| 吉林市| 南乐县| 马山县| 周口市| 陈巴尔虎旗| 吉首市| 西林县| 汉川市| 澳门| 吉首市| 阳新县| 伊春市| 满洲里市| 普定县| 长治市| 资溪县| 农安县| 百色市| 鄂伦春自治旗| 托里县| 肇东市| 武义县| 苏尼特左旗| 中江县| 泽普县| 江陵县| 革吉县| 长汀县| 长兴县| 新绛县|