欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Servlet的兩種創(chuàng)建方式(xml?注解)示例詳解

 更新時(shí)間:2023年08月31日 14:22:04   作者:Code技術(shù)分享  
這篇文章主要為大家介紹了Servlet的兩種創(chuàng)建方式(xml?注解)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

一、使用web.xml的方式配置(Servlet2.5之前使用)

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
        http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>java-servlet-demo02</display-name>
  <!-- servlet配置 -->
  <servlet>
    <!-- 名稱 -->
    <servlet-name>WebXmlServlet</servlet-name>
    <!-- servlet全稱類名 -->
    <servlet-class>com.mcode.servlet.controller.WebXmlServlet</servlet-class>
    <!-- 啟動(dòng)的優(yōu)先級(jí),數(shù)字越小越先起作用 -->
    <load-on-startup>1</load-on-startup>
  </servlet>
  <!-- 映射配置 -->
  <servlet-mapping>
    <!-- 對(duì)應(yīng)名稱 -->
    <servlet-name>WebXmlServlet</servlet-name>
    <!-- 資源匹配規(guī)則:精確匹配 -->
    <url-pattern>/webxml</url-pattern>
  </servlet-mapping>
</web-app>

WebXmlServlet

package com.mcode.servlet.controller;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
 * ClassName: WebXmlServlet
 * Package: com.mcode.servlet.controller
 * Description:
 *
 * @Author robin
 * @Create 2023/8/30 20:49
 * @Version 1.0
 */
public class WebXmlServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //設(shè)置編碼方式
        resp.setCharacterEncoding("UTF-8");
        //指定客戶端解碼方式
        resp.setHeader("content-type", "text/html;charset=UTF-8");
        //輸出
        resp.getWriter().write("基于webxml方式配置的servlet");
    }
}

效果圖

url-pattern匹配規(guī)則

匹配規(guī)則取值說明
精確匹配/具體的名稱只有url路徑是具體的名稱的時(shí)候才會(huì)觸發(fā) Servlet
后綴匹配*.xxx只要是以xxx結(jié)尾的就匹配觸發(fā)Servlet
通配符匹配/*匹配所有請(qǐng)求,包含服務(wù)器的所有資源
通配符匹配/匹配所有請(qǐng)求,包含服務(wù)器的所有資源,不包括.jsp

load-on-startup說明

  • 元素標(biāo)記容器是否應(yīng)該在web應(yīng)用程序啟動(dòng)的時(shí)候就加載這個(gè) servlet
  • 它的值必須是一個(gè)整數(shù),表示 servlet被加載的先后順序
  • 如果該元素的值為負(fù)數(shù)或者沒有設(shè)置,則容器會(huì)當(dāng)serv1et被請(qǐng)求時(shí)再加載
  • 如果值為正整數(shù)或者0時(shí),表示容器在應(yīng)用啟動(dòng)時(shí)就加載并初始化這個(gè) servlet,值越小, servlet的優(yōu)先級(jí)越高,就越先被加載。值相同時(shí),容器就會(huì)自己選擇順序來加載

二、使用注解的方式配置(Servlet3.0后支持,推薦)

AnnotationServlet

package com.mcode.servlet.controller;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
 * ClassName: AnnotationServlet
 * Package: com.mcode.servlet.controller
 * Description:
 *
 * @Author robin
 * @Create 2023/8/30 20:51
 * @Version 1.0
 */
@WebServlet("/annotation")
public class AnnotationServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //設(shè)置編碼方式
        resp.setCharacterEncoding("UTF-8");
        //指定客戶端解碼方式
        resp.setHeader("content-type", "text/html;charset=UTF-8");
        //輸出
        resp.getWriter().write("基于注解方式配置的servlet");
    }
}

效果圖

@WebServlet注解

屬性:下面是一些常用屬性,value和url一般是必須的,但是二者不能共存,若同時(shí)指定,一般自動(dòng)忽略value。

屬性名類名屬性描述
nameString指定servlet的name屬性,等價(jià)于<servlet-name>,若沒有指定,則默認(rèn)是類的全限定名
valueString[]等價(jià)于urlPatterns,兩者不能共存
urlPatternsString[]指定一組servlet的url的匹配模式,等價(jià)于<url-pattern>
loadOnStartupint指定servlet的加載順序,等價(jià)于<load-on-startup>
initParamsWebinitParams[]指定一組初始化參數(shù),等價(jià)于<init-params>
asyncSupportedboolean申明servlet是否支持異步操作模式,等價(jià)于<async-supported>
displayNameStringservlet的顯示名,等價(jià)于<display-name>
descriptionStringservlet的描述信息,等價(jià)于<description>

@WebServlet 屬于類級(jí)別的注解,標(biāo)注在繼承了 HttpServlet 的類之上。常用的寫法是將 Servlet 的相對(duì)請(qǐng)求路徑(即 value)直接寫在注解內(nèi),

@WebServlet(urlPatterns = “/MyServlet”)。

@WebServlet(“/MyServlet”) 省略了 urlPatterns 屬性名

如果 @WebServlet 中需要設(shè)置多個(gè)屬性,則屬性之間必須使用逗號(hào)隔開.

通過實(shí)現(xiàn) Serlvet 接口或繼承 GenericServlet 創(chuàng)建的 Servlet 類無法使用 @WebServlet 注解。

使用 @WebServlet 注解配置的 Servlet 類,不要在 web.xml 文件中再次配置該 Servlet 相關(guān)屬性。若同時(shí)使用 web.xml 與 @WebServlet 配置同一 Servlet 類,則 web.xml 中 的值與注解中 name 取值不能相同,否則容器會(huì)忽略注解中的配置。

以上就是Servlet的兩種創(chuàng)建方式(xml 注解)示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Servlet創(chuàng)建方式的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • SpringBoot中自定義首頁(默認(rèn)頁)及favicon的方法

    SpringBoot中自定義首頁(默認(rèn)頁)及favicon的方法

    這篇文章主要介紹了SpringBoot中如何自定義首頁(默認(rèn)頁)及favicon,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • 面試題:用 Java 逆序打印鏈表

    面試題:用 Java 逆序打印鏈表

    這篇文章主要介紹了面試題:用 Java 逆序打印鏈表,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • Spring中Bean創(chuàng)建完后打印語句的兩種方法

    Spring中Bean創(chuàng)建完后打印語句的兩種方法

    這篇文章主要介紹了Spring中Bean創(chuàng)建完后打印語句的兩種方法,一個(gè)是實(shí)現(xiàn)InitializingBean接口,另一個(gè)使用@Bean注解和initMethod屬性,通過代碼示例介紹的非常詳細(xì),感興趣的小伙伴可以參考閱讀
    2023-07-07
  • Spring?EnableAsync注解異步執(zhí)行源碼解析

    Spring?EnableAsync注解異步執(zhí)行源碼解析

    這篇文章主要為大家介紹了Spring?EnableAsync注解源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • 基于Java內(nèi)存溢出的解決方法詳解

    基于Java內(nèi)存溢出的解決方法詳解

    本篇文章是對(duì)Java內(nèi)存溢出的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • Java哈希表的概念及實(shí)現(xiàn)完整代碼

    Java哈希表的概念及實(shí)現(xiàn)完整代碼

    這篇文章主要介紹了Java哈希表的概念及實(shí)現(xiàn)的相關(guān)資料,哈希表是一種高效查找數(shù)據(jù)的結(jié)構(gòu),通過哈希函數(shù)將關(guān)鍵字映射到數(shù)組的索引位置,當(dāng)發(fā)生沖突時(shí),可以通過閉散列或開散列(鏈地址法)來解決,需要的朋友可以參考下
    2024-11-11
  • Java基于ShardingSphere實(shí)現(xiàn)分庫(kù)分表的實(shí)例詳解

    Java基于ShardingSphere實(shí)現(xiàn)分庫(kù)分表的實(shí)例詳解

    ShardingSphere?已于2020年4月16日成為?Apache?軟件基金會(huì)的頂級(jí)項(xiàng)目,?它們均提供標(biāo)準(zhǔn)化的數(shù)據(jù)水平擴(kuò)展、分布式事務(wù)和分布式治理等功能,可適用于如?Java?同構(gòu)、異構(gòu)語言、云原生等各種多樣化的應(yīng)用場(chǎng)景,對(duì)ShardingSphere分庫(kù)分表相關(guān)知識(shí)感興趣的朋友一起看看吧
    2022-03-03
  • Spring底層事務(wù)原理解析

    Spring底層事務(wù)原理解析

    Spring事務(wù)有可能會(huì)提交,回滾、掛起、恢復(fù),所以Spring事務(wù)提供了一種機(jī)制,可以讓程序員來監(jiān)聽當(dāng)前Spring事務(wù)所處于的狀態(tài),這篇文章主要介紹了Spring底層事務(wù)原理,需要的朋友可以參考下
    2022-12-12
  • java如何多線程批量更新10萬級(jí)的數(shù)據(jù)

    java如何多線程批量更新10萬級(jí)的數(shù)據(jù)

    在處理大數(shù)據(jù)量的批量更新時(shí),直接使用mybatis的updateBatch可能導(dǎo)致效率低下甚至OOM,通過每次處理5000條數(shù)據(jù)的方式雖然安全但效率低,更優(yōu)的解決方案是使用多線程處理,將數(shù)據(jù)分批并多線程執(zhí)行,有效提高了處理速度并保證了系統(tǒng)穩(wěn)定性
    2024-10-10
  • 一篇文章弄懂Java和Kotlin的泛型難點(diǎn)

    一篇文章弄懂Java和Kotlin的泛型難點(diǎn)

    這篇文章主要給大家介紹了如何通過一篇文章弄懂Java和Kotlin的泛型難點(diǎn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05

最新評(píng)論