中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Web的Filter,Listener和Servlet怎么用

發布時間:2022-03-10 09:11:02 來源:億速云 閱讀:168 作者:iii 欄目:開發技術

這篇文章主要介紹“Web的Filter,Listener和Servlet怎么用”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Web的Filter,Listener和Servlet怎么用”文章能幫助大家解決問題。

Filter:過濾器

 1. 概念:
* 生活中的過濾器:凈水器,空氣凈化器,土匪、
* web中的過濾器:當訪問服務器的資源時,過濾器可以將請求攔截下來,完成一些特殊的功能。
* 過濾器的作用:
	* 一般用于完成通用的操作。如:登錄驗證、統一編碼處理、敏感字符過濾...
2. 快速入門:
1. 步驟:
	1. 定義一個類,實現接口Filter
	2. 復寫方法
	3. 配置攔截路徑
		1. web.xml
		2. 注解
2. 代碼:
	@WebFilter("/*")//訪問所有資源之前,都會執行該過濾器
	public class FilterDemo1 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("filterDemo1被執行了....");
	         //放行
	        filterChain.doFilter(servletRequest,servletResponse);
	    }
	    @Override
	    public void destroy() {
	    }
	}
 3. 過濾器細節:
  1. web.xml配置	
	<filter>
        <filter-name>demo1</filter-name>
        <filter-class>cn.itcast.web.filter.FilterDemo1</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>demo1</filter-name>
		<!-- 攔截路徑 -->
        <url-pattern>/*</url-pattern>
    </filter-mapping>
2. 過濾器執行流程
	1. 執行過濾器
	2. 執行放行后的資源
	3. 回來執行過濾器放行代碼下邊的代碼
3. 過濾器生命周期方法
	1. init:在服務器啟動后,會創建Filter對象,然后調用init方法。只執行一次。用于加載資源
	2. doFilter:每一次請求被攔截資源時,會執行。執行多次
	3. destroy:在服務器關閉后,Filter對象被銷毀。如果服務器是正常關閉,則會執行destroy方法。只執行一次。用于釋放資源
4. 過濾器配置詳解
	* 攔截路徑配置:
		1. 具體資源路徑: /index.jsp   只有訪問index.jsp資源時,過濾器才會被執行
		2. 攔截目錄: /user/*	訪問/user下的所有資源時,過濾器都會被執行
		3. 后綴名攔截: *.jsp		訪問所有后綴名為jsp資源時,過濾器都會被執行
		4. 攔截所有資源:/*		訪問所有資源時,過濾器都會被執行
	* 攔截方式配置:資源被訪問的方式
		* 注解配置:
			* 設置dispatcherTypes屬性
				1. REQUEST:默認值。瀏覽器直接請求資源
				2. FORWARD:轉發訪問資源
				3. INCLUDE:包含訪問資源
				4. ERROR:錯誤跳轉資源
				5. ASYNC:異步訪問資源
		* web.xml配置
			* 設置<dispatcher></dispatcher>標簽即可
5. 過濾器鏈(配置多個過濾器)
	* 執行順序:如果有兩個過濾器:過濾器1和過濾器2
		1. 過濾器1
		2. 過濾器2
		3. 資源執行
		4. 過濾器2
		5. 過濾器1 
	* 過濾器先后順序問題:
		1. 注解配置:按照類名的字符串比較規則比較,值小的先執行
			* 如: AFilter 和 BFilter,AFilter就先執行了。
		2. web.xml配置: <filter-mapping>誰定義在上邊,誰先執行

Listener:監聽器

* 概念:web的三大組件之一。
* 事件監聽機制
	* 事件	:一件事情
	* 事件源 :事件發生的地方
	* 監聽器 :一個對象
	* 注冊監聽:將事件、事件源、監聽器綁定在一起。 當事件源上發生某個事件后,執行監聽器代碼

* ServletContextListener:監聽ServletContext對象的創建和銷毀
* 方法:
	* void contextDestroyed(ServletContextEvent sce) :ServletContext對象被銷毀之前會調用該方法
	* void contextInitialized(ServletContextEvent sce) :ServletContext對象創建后會調用該方法
* 步驟:
	1. 定義一個類,實現ServletContextListener接口
	2. 復寫方法
	3. 配置
		1. web.xml
				<listener>
				 <listener-class>cn.itcast.web.listener.ContextLoaderListener</listener-class>
			 </listener>
* 指定初始化參數<context-param>
		2. 注解:
			* @WebListener

servlet

* 概念:運行在服務器端的小程序
* Servlet就是一個接口,定義了Java類被瀏覽器訪問到(tomcat識別)的規則。
* 將來我們自定義一個類,實現Servlet接口,復寫方法。
* * 快速入門:
1. 創建JavaEE項目
2. 定義一個類,實現Servlet接口
	* public class ServletDemo1 implements Servlet
3. 實現接口中的抽象方法
4. 配置Servlet
	 在web.xml中配置:
    <!--配置Servlet -->
    <servlet>
        <servlet-name>demo1</servlet-name>
        <servlet-class>cn.itcast.web.servlet.ServletDemo1</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>demo1</servlet-name>
        <url-pattern>/demo1</url-pattern>
    </servlet-mapping>
 * 執行原理:
1. 當服務器接受到客戶端瀏覽器的請求后,會解析請求URL路徑,獲取訪問的Servlet的資源路徑
2. 查找web.xml文件,是否有對應的<url-pattern>標簽體內容。
3. 如果有,則在找到對應的<servlet-class>全類名
4. tomcat會將字節碼文件加載進內存,并且創建其對象
5. 調用其方法
* Servlet中的生命周期方法:
1. 被創建:執行init方法,只執行一次
	* Servlet什么時候被創建?
		* 默認情況下,第一次被訪問時,Servlet被創建
		* 可以配置執行Servlet的創建時機。
			* 在<servlet>標簽下配置
				1. 第一次被訪問時,創建
            		* <load-on-startup>的值為負數
	            2. 在服務器啟動時,創建
	                * <load-on-startup>的值為0或正整數
 * Servlet的init方法,只執行一次,說明一個Servlet在內存中只存在一個對象,Servlet是單例的
		* 多個用戶同時訪問時,可能存在線程安全問題。
		* 解決:盡量不要在Servlet中定義成員變量。即使定義了成員變量,也不要對修改值
2. 提供服務:執行service方法,執行多次
	* 每次訪問Servlet時,Service方法都會被調用一次。
3. 被銷毀:執行destroy方法,只執行一次
	* Servlet被銷毀時執行。服務器關閉時,Servlet被銷毀
	* 只有服務器正常關閉時,才會執行destroy方法。
	* destroy方法在Servlet被銷毀之前執行,一般用于釋放資源
* Servlet3.0:
* 好處:
	* 支持注解配置。可以不需要web.xml了。
* 步驟:
	1. 創建JavaEE項目,選擇Servlet的版本3.0以上,可以不創建web.xml
	2. 定義一個類,實現Servlet接口
	3. 復寫方法
	4. 在類上使用@WebServlet注解,進行配置
		* @WebServlet("資源路徑")

關于“Web的Filter,Listener和Servlet怎么用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临夏县| 斗六市| 山丹县| 资源县| 南皮县| 大港区| 华亭县| 自治县| 永川市| 如东县| 威宁| 盐边县| 安泽县| 青海省| 商河县| 铁岭县| 江门市| 泸州市| 泾源县| 六安市| 靖西县| 通海县| 玛曲县| 耿马| 黔东| 乐都县| 华阴市| 阿合奇县| 米脂县| 开原市| 额尔古纳市| 深泽县| 通河县| 离岛区| 蒙阴县| 邳州市| 吴桥县| 文昌市| 西青区| 丹寨县| 临汾市|