国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

告別web.xml映射Servlet、Filter、Listener,解鎖注解新方式開(kāi)發(fā)

這篇具有很好參考價(jià)值的文章主要介紹了告別web.xml映射Servlet、Filter、Listener,解鎖注解新方式開(kāi)發(fā)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

編譯軟件:IntelliJ IDEA 2019.2.4 x64
操作系統(tǒng):win10 x64 位 家庭版
服務(wù)器軟件:apache-tomcat-8.5.27



一. Servlet、Filter、Listener的注解方式是什么?

Servlet、Filter和Listener都支持使用注解的方式進(jìn)行配置:

  • Servlet常用的注解是@WebServlet,可以在Servlet類上添加該注解并指定Servlet的url-pattern等屬性來(lái)配置Servlet。
  • Filter常用的注解是@WebFilter,可以在Filter類上添加該注解并指定要過(guò)濾的url-pattern等屬性來(lái)配置Filter。
  • Listener常用的注解是@WebListener,可以在Listener類上添加該注解來(lái)聲明一個(gè)Listener。

二. 為什么要使用Servlet、Filter、Listener的注解方式?

主要原因:

替代原來(lái)配置文件web.xml的寫(xiě)法

使用注解的好處:

  1. 使開(kāi)發(fā)更加方便和快速,相比于傳統(tǒng)的在web.xml中配置相關(guān)節(jié)點(diǎn),使用注解的方式可以將配置信息直接寫(xiě)在對(duì)應(yīng)的類上,降低了配置的復(fù)雜性,也不用手動(dòng)添加大量的xml節(jié)點(diǎn),減少了出錯(cuò)的可能性
  2. 可以提高代碼的可讀性和可維護(hù)性,注解可以直接放在代碼中,對(duì)于開(kāi)發(fā)團(tuán)隊(duì)來(lái)說(shuō)更容易理解,而且當(dāng)應(yīng)用有變化時(shí),只需要修改對(duì)應(yīng)的代碼就可以了,無(wú)需再去尋找web.xml文件并修改其中的配置

三. 如何使用Servlet、Filter、Listener的注解方式?

3.1 Servlet的注解方式

3.1.1 常用用法

位置:

在Servlet實(shí)現(xiàn)類的上方寫(xiě)注解

語(yǔ)法:

//設(shè)置當(dāng)前Servlet的名稱為HelloServlet,訪問(wèn)其路徑為/hello
@WebServlet(name="HelloServlet",value="/hello"

name:相當(dāng)于配置文件的servlet-name的值
value:相當(dāng)于配置文件的url-pattern

可以簡(jiǎn)寫(xiě):

name可以省略,如果只剩下value屬性,屬性名可以省略,如 @Webservlet(“/hello”)

注意:

value屬性和urlPatterns屬性都可以用來(lái)指定Servlet能夠處理的請(qǐng)求路徑。
如果同時(shí)指定了兩個(gè)屬性,則以u(píng)rlPatterns屬性的值為準(zhǔn)。

例如@WebServlet(name=“HelloServlet”,value=“/hello”,urlPatterns =‘’/first"),最終以/first作為訪問(wèn)路徑**

3.1.2 案例

案例:使用Servlet的注解代替原來(lái)的web.xml映射Servlet,演示其效果

代碼示例如下:

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;

//設(shè)置HelloServlet的訪問(wèn)路徑 :/hello
@WebServlet(name = "HelloServlet",value = "/hello")
public class HelloServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("訪問(wèn)了HelloServlet.......");
    }
}

告別web.xml映射Servlet、Filter、Listener,解鎖注解新方式開(kāi)發(fā)

告別web.xml映射Servlet、Filter、Listener,解鎖注解新方式開(kāi)發(fā)

3.2 Filter的注解方式

3.2.1 常用用法

位置:

在Filter實(shí)現(xiàn)類的上方寫(xiě)注解

語(yǔ)法:

//聲明一個(gè)Filter,指定該Filter名為HelloFilter,指定了該Filter處理請(qǐng)求的url-pattern為"/hello"
@WebFilter(filterName="HelloFilter",urlPatterns="/hello")

filterName:相當(dāng)于web.xml中的filter-name標(biāo)簽的值
urlPatterns:相當(dāng)于web.xml中的url-pattern標(biāo)簽的值

注意:

value屬性和urlPatterns屬性都可以用來(lái)指定Servlet能夠處理的請(qǐng)求路徑。
如果同時(shí)指定了兩個(gè)屬性,則以u(píng)rlPatterns屬性的值為準(zhǔn)。

3.2.2 案例

案例:使用F1lter注解代替原來(lái)的web.xml映射的形式設(shè)置HelloFilter的過(guò)濾路徑,演示其效果

代碼示例如下:

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

//設(shè)置HelloFilter的過(guò)濾路徑:/hello
@WebFilter(filterName="HelloFilter",urlPatterns="/hello")
public class HelloFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("HelloFilter放行前的代碼...");
        filterChain.doFilter(servletRequest,servletResponse);//放行請(qǐng)求
        System.out.println("HelloFilter放行后的代碼...");
    }

    @Override
    public void destroy() {

    }
}

告別web.xml映射Servlet、Filter、Listener,解鎖注解新方式開(kāi)發(fā)

告別web.xml映射Servlet、Filter、Listener,解鎖注解新方式開(kāi)發(fā)

3.3 Listener的注解方式

3.3.1 常用用法

位置:

在 Listener實(shí)現(xiàn)類的上方寫(xiě)注解

語(yǔ)法:

@WebListener

ps:

此注解方式一般不用寫(xiě)屬性值,且它默認(rèn)只有一個(gè)屬性value(默認(rèn)屬性值為空字符串)

3.3.2 案例

案例:使用Listener的注解代替原來(lái)的web.xml注冊(cè)監(jiān)聽(tīng)器的形式,演示其效果

代碼示例如下:

@WebListener
public class MyListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        System.out.println("ServletContext對(duì)象創(chuàng)建后執(zhí)行");
    }

    @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        System.out.println("ServletContext對(duì)象銷毀后執(zhí)行");
    }
}

告別web.xml映射Servlet、Filter、Listener,解鎖注解新方式開(kāi)發(fā)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-428531.html

到了這里,關(guān)于告別web.xml映射Servlet、Filter、Listener,解鎖注解新方式開(kāi)發(fā)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Spring注解驅(qū)動(dòng)開(kāi)發(fā)之常用注解案例_告別在XML中配置Bean

    注解驅(qū)動(dòng)開(kāi)發(fā)就是不再使用Spring的bean.xml文件,改為純使用注解的方式開(kāi)發(fā) @Configuration 此注解為配置類注解,相當(dāng)于spring.xml文件,即配置類==配置文件 @Bean 給容器中注冊(cè)一個(gè)Bean;類型為返回值的類型,id默認(rèn)是用方法名作為id 示例 Person類(后續(xù)注解配置類中都會(huì)以此類舉例),

    2024年01月21日
    瀏覽(28)
  • Servlet——web.xml配置

    Servlet——web.xml配置

    本文主要介紹Web.xml常用配置項(xiàng),包括: web首頁(yè)的修改 Servlet通配符映射與初始化參數(shù) 全局參數(shù)的設(shè)置 404,500等錯(cuò)誤碼的頁(yè)面設(shè)置 例如: 效果如下(默認(rèn)訪問(wèn)到了index.html文件): 二級(jí)頁(yè)面同樣適用: Servlet代碼層: 結(jié)果: 看一個(gè)之前的例子: xml中配置全局參數(shù) servlet中獲取

    2023年04月15日
    瀏覽(19)
  • Servlet 初始化參數(shù)(web.xml和@WebServlet)
  • JavaBean、MVC、Filter和Listener

    JavaBean、MVC、Filter和Listener

    JavaBean 是一種JAVA語(yǔ)言寫(xiě)成的可重用組件。 實(shí)體類(pojo)。 JavaBean有特殊的寫(xiě)法: 必須要有一個(gè)無(wú)參構(gòu)造 屬性必須私有 必須要對(duì)應(yīng)的set/get方法 本質(zhì)就是一個(gè)java類 一般用來(lái)和數(shù)據(jù)庫(kù)字段做映射 ORM:對(duì)象關(guān)系映射 表---類 字段---屬性 行記錄---對(duì)象 MVC:Model模型,View視圖,Co

    2024年02月11日
    瀏覽(16)
  • JavaWeb學(xué)習(xí)|JavaBean;MVC三層架構(gòu);Filter;Listener

    JavaWeb學(xué)習(xí)|JavaBean;MVC三層架構(gòu);Filter;Listener

    實(shí)體類 JavaBean有特定的寫(xiě)法: 必須要有一個(gè)無(wú)參構(gòu)造 屬性必須私有化。 必須有對(duì)應(yīng)的get/set方法 用來(lái)和數(shù)據(jù)庫(kù)的字段做映射 ORM; ORM:對(duì)象關(guān)系映射 表---類 字段--屬性 行記錄----對(duì)象 ? Filter:過(guò)濾器,用來(lái)過(guò)濾網(wǎng)站的數(shù)據(jù) 處理中文亂碼 登錄驗(yàn)證.... 弄一個(gè)過(guò)濾器的demo 空maven+web項(xiàng)

    2024年02月13日
    瀏覽(96)
  • 小黑子—JavaWeb:第六章 - Filter、Listener、AJAX與JSON

    小黑子—JavaWeb:第六章 - Filter、Listener、AJAX與JSON

    概念: Filter表示過(guò)濾器,是JavaWeb三大組件(Servlet、Filter、Listener)之一。 過(guò)濾器可以把對(duì)資源的請(qǐng)求攔截下來(lái),從而實(shí)現(xiàn)一些特殊的功能。 過(guò)濾器一般完成一些通用的操作,比如:權(quán)限控制、統(tǒng)一編碼處理、敏感字符處理等等 定義類,實(shí)現(xiàn)Filter接口,并重寫(xiě)其所有方法 配置

    2024年02月14日
    瀏覽(49)
  • 【終極解決方案】Could not open ServletContext resource [/WEB-INF/dispatcher-servlet.xml]

    【終極解決方案】Could not open ServletContext resource [/WEB-INF/dispatcher-servlet.xml]

    【??終極解決方案??】Could not open ServletContext resource [/WEB-INF/dispatcher-servlet.xml] 如同上面說(shuō)的,啟動(dòng)Tomcat之后,項(xiàng)目初始化找不到配置文件dispatcher-servlet.xml 。 1.1、配置文件命名問(wèn)題 web.xml文件中配置的servlet名字和springmvc配置文件的名字不一樣,修改成一樣即可。 這里要

    2024年02月10日
    瀏覽(16)
  • 033-安全開(kāi)發(fā)-JavaEE應(yīng)用&SQL預(yù)編譯&Filter過(guò)濾器&Listener監(jiān)聽(tīng)器&訪問(wèn)控制

    033-安全開(kāi)發(fā)-JavaEE應(yīng)用&SQL預(yù)編譯&Filter過(guò)濾器&Listener監(jiān)聽(tīng)器&訪問(wèn)控制

    1、JavaEE-JDBC-SQL預(yù)編譯 2、JavaEE-HTTP-Filter過(guò)濾器 3、JavaEE-對(duì)象域-Listen監(jiān)聽(tīng)器 演示案例: ?JavaEE-預(yù)編譯-SQL ?JavaEE-過(guò)濾器-Filter ?JavaEE-監(jiān)聽(tīng)器-Listen 提前編譯好執(zhí)行邏輯,你注入的語(yǔ)句不會(huì)改變?cè)羞壿嫞?預(yù)編譯寫(xiě)法: safesql 是一個(gè)預(yù)編譯的 SQL 查詢語(yǔ)句,其中 ? 是一個(gè)占位符

    2024年02月22日
    瀏覽(18)
  • DAY14_Filter&Listener&Ajax&Axios&Json&fastjson&綜合案例-axios和html交互

    DAY14_Filter&Listener&Ajax&Axios&Json&fastjson&綜合案例-axios和html交互

    Filter 表示過(guò)濾器,是 JavaWeb 三大組件(Servlet、Filter、Listener)之一。 過(guò)濾器可以把對(duì)資源的請(qǐng)求 攔截 下來(lái),從而實(shí)現(xiàn)一些特殊的功能。 如下圖所示,瀏覽器可以訪問(wèn)服務(wù)器上的所有的資源(servlet、jsp、html等) 而在訪問(wèn)到這些資源之前可以使過(guò)濾器攔截來(lái)下,也就是說(shuō)在訪問(wèn)

    2024年02月15日
    瀏覽(23)
  • Spring Boot 3.1.2版本使用javax.servlet.Filter時(shí),發(fā)現(xiàn)Filter不起作用

    Spring Boot 3.1.2版本使用javax.servlet.Filter時(shí),發(fā)現(xiàn)Filter不起作用

    在學(xué)習(xí)Filter的過(guò)程中,我實(shí)現(xiàn)了Filter的init和destory方法以及doFilter方法后,運(yùn)行SpringBoot程序發(fā)現(xiàn),我的控制臺(tái)中并沒(méi)有輸出ini和destory中的調(diào)試信息。 代碼如下: ?可以看到控制臺(tái)中并沒(méi)有輸出initialize Filter和destory Filter等信息 ?利用postman發(fā)送http請(qǐng)求發(fā)現(xiàn)access Filter也沒(méi)有輸出

    2024年03月09日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包