国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

JSP網站開發基礎總結《九》

2019-11-14 23:22:50
字體:
來源:轉載
供稿:網友
jsp網站開發基礎總結《九》

  本篇屬于附加篇,在之前的總結中給大家提到過一個關于登錄狀態驗證的效果,當時是通過session對象完成的,今天我查了一下,JSP為我們封裝了一個用于過濾用的過濾器類Filter,通過它我們就可以非常輕松的完成之前的那個功能了,而且可以在很多地方使用,非常實用。廢話不多說,下面開始簡單為大家介紹一下JSP提供的過濾器類。

 1、過濾器簡介:

  過濾器是什么?過濾器就是根據過濾規則對過濾源進行過濾,然后得到過濾結果。Web過濾器的是什么呢?首先Web過濾器的過濾源是用戶的各種請求,過濾規則是開發人員實現制定好的,過濾結果是響應。如何理解呢?大家應該都有這樣的經歷,當我們想下載一個資源時,如果沒有登錄,這是系統就會彈出登錄窗口強制我們登錄;而當我們已經登錄后,我們單擊下載時,便不會出現強制我們登錄的頁面。這便是今天我們要一起學習的Web攔截器知識。

 2、過濾器的工作原理:

  

 3、過濾器的生命周期:

  

  過濾器的初始化,我們將我們的工程添加到Tomcat后,當啟動Tomcat后,系統便立即會調用過濾器的init()方法,也就是我們的工程一旦部署,我們在項目的添加的過濾器便立刻開始工作。當我們關閉Tomcat時,我們的過濾器會調用destroy()方法,結束我們的過濾監聽。

 4、探究過濾器的工作原理:

  a、創建過濾器對象類:

public class firstFilter implements Filter {    public void destroy() {        System.out.

  該類需要實現javax.servlet.Filter接口:   

  

  b、web.xml文件聲明:

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  <!-- 過濾器對象聲明 --> <filter>  <filter-name>firstFilter</filter-name><!-- 過濾器名 -->  <filter-class>cn.imcook.filter.firstFilter</filter-class><!-- 指定我們新建的過濾器對象的地址 --> </filter> <!-- 過濾規則聲明  --> <filter-mapping>  <filter-name>firstFilter</filter-name><!-- 指定規則對于的過濾器對象 -->  <url-pattern>/*</url-pattern><!-- *:代表所有的請求 -->  <dispatcher>REQUEST</dispatcher><!-- 該處有四個值可選,默認是REQUEST --> </filter-mapping>  <welcome-file-list>  <welcome-file>index.jsp</welcome-file> </welcome-file-list> <login-config>  <auth-method>BASIC</auth-method> </login-config></web-app>

  這樣一行行寫代碼,很不方便,myeclipse為我們提供了窗口化操作,請看下面的步驟:

  打開我們的web.xml文件,點擊Design,進入窗口操作界面:

  

  點擊左側的Filter,先添加一個過濾器對象:

  

  然后再點擊Filter,添加該過濾器的規則聲明(Filter Mapping):

  

 5、啟動Tomcat,在地址瀏覽器地址欄輸入我們的工程名(例如:http://localhost:8080/HelloWord/index.jsp),觀察myeclipse控制臺的輸出。

  ·

  以上便是我們對Filter生命周期的探究。

 6、過濾重定向:

  在這里我們只需要在我們創建的Filter類中稍作修改就可以完成了,那如何修改呢?我只需要在我們的doFilter()方法中添加一個重定向就可以了。

public class loginFilter implements Filter {    public void destroy() {        System.out.println("Destroy");    }    public void doFilter(ServletRequest arg0, ServletResponse arg1,            FilterChain arg2) throws IOException, ServletException {        System.out.println("start-----doFilter");                //arg2.doFilter(arg0, arg1);                //重定向        HttpServletRequest requst = (HttpServletRequest)arg0;        HttpServletResponse response = (HttpServletResponse)arg1;        response.sendRedirect(requst.getContextPath()+"/Login.jsp");                System.out.println("end------doFilter");    }    public void init(FilterConfig arg0) throws ServletException {        System.out.println("Init");    }}

  對于JSP中關于過濾器的知識,就先為大家總結到這里,如果你對過濾器知識很感興趣,請持續關注博客。下一篇:對個過濾器執行順序


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平昌县| 华蓥市| 县级市| 平昌县| 泸水县| 廊坊市| 金川县| 靖边县| 藁城市| 嘉禾县| 五华县| 海门市| 洪湖市| 濮阳市| 华池县| 大关县| 鄄城县| 阜康市| 宁明县| 县级市| 温宿县| 老河口市| 贺兰县| 封丘县| 永州市| 武山县| 郯城县| 嵊泗县| 浦江县| 天峨县| 淮安市| 屯门区| 博罗县| 长兴县| 长治县| 鱼台县| 白朗县| 深泽县| 哈尔滨市| 拉萨市| 南充市|