黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

Servlet教程

Filter過(guò)濾Servlet的過(guò)程

為了幫助讀者快速了解 Filter 的開(kāi)發(fā)過(guò)程,下面通過(guò)案例演示 Filter 程序如何對(duì) Servlet 程序的調(diào)用過(guò)程進(jìn)行攔截。

1、創(chuàng)建 Servlet

在 MyEclipse 中創(chuàng)建一個(gè)名為 filterDemo01 的 Web 項(xiàng)目,并在項(xiàng)目的 src 下創(chuàng)建一個(gè)名為 com.mengma.filter 的包,在該包中創(chuàng)建一個(gè)名為 MyServlet 的 Servlet 類(lèi),該類(lèi)用于訪(fǎng)問(wèn)時(shí)在瀏覽器中輸出“Hello MyServlet”。MyServlet 類(lèi)的實(shí)現(xiàn)代碼如下所示。

package com.mengma.filter;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.getWriter().write("Hello MyServlet");
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }
}

2、創(chuàng)建 Filter 類(lèi)

右擊 com.mengma.filter 包,然后選擇 New→Other...,在彈出窗口中的 Web 文件夾下找到 Filter,單擊 Next 按鈕,在新窗口的 Class name 文本框中填寫(xiě)所創(chuàng)建的 Filter,單擊 Next 按鈕進(jìn)入 Filter 映射信息的配置窗口,如圖 1 所示。

圖 1 創(chuàng)建一個(gè) Filter

在圖 1 中,單擊 Filter Mappings 窗口中的 /MyFilter,然后單擊右側(cè)的 Edit 按鈕,在彈出窗口中的 Pattern 文本框中將 /MyFilter 更改為 /MyServlet(/MyFilter 是默認(rèn)攔截的 URL,/MyServlet 是需要攔截的 URL,這里指 MyServlet 類(lèi))。

依次單擊 OK 和 Finish 按鈕即可完成 Filter 類(lèi)的創(chuàng)建。創(chuàng)建后的 MyFilter 類(lèi)的主要代碼如下所示。

package com.mengma.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
@WebFilter("/MyServlet")
public class MyFilter implements Filter {
    public MyFilter() {
    }
    public void destroy() {
    }
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        chain.doFilter(request, response);
    }
    public void init(FilterConfig fConfig) throws ServletException {
    }
}

在上述代碼中,MyFilter() 是 MyFilter 類(lèi)默認(rèn)的構(gòu)造方法,其他三個(gè)方法是 Filter 接口中的方法。在 doFilter() 方法中,chain.doFilter(request,response)用于過(guò)濾處理,表示將請(qǐng)求向下傳遞。

使用 MyEclipse 創(chuàng)建過(guò)濾器類(lèi)后,需在 web.xml 中創(chuàng)建過(guò)濾器信息,代碼如下:

<filter>
    <filter-name>MyFilter</filter-name>
    <filter-class>com.mengma.filter.MyFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>MyFilter</filter-name>
    <url-pattern>/MyServlet</url-pattern>
</filter-mapping>

在上述代碼中,設(shè)置了過(guò)濾器對(duì) /MyServlet 請(qǐng)求資源進(jìn)行攔截,將在請(qǐng)求到達(dá) MyServlet 程序前執(zhí)行 MyFilter 程序。過(guò)濾器的配置信息中包含多個(gè)元素,這些元素分別具有不同的作用。

• <filter>根元素用于注冊(cè)一個(gè) Filter。

• <filter-name>子元素用于設(shè)置 Filter 名稱(chēng)。

• <filter-class>子元素用于設(shè)置 Filter 類(lèi)的完整名稱(chēng)。

• <filter-mapping>根元素用于設(shè)置一個(gè)過(guò)濾器所攔截的資源

• <filter-name>子元素必須與  <filter>中的<filter-name> 子元素相同。

• <url-pattern>子元素用于匹配用戶(hù)請(qǐng)求的 URL,例如 /MyServlet,這個(gè) URL 還可以使用通配符*表示,例如 *.do 適用于所有以 .do 結(jié)尾的 Servlet 路徑。

3、修改 Filter

為了演示 Filter 的攔截效果,對(duì) MyFilter 類(lèi)中的 doFilter() 方法進(jìn)行修改,修改后的代碼如下:

public void doFilter(ServletRequest request, ServletResponse response,
        FilterChain chain) throws IOException, ServletException {
    PrintWriter out = response.getWriter();
    out.write("Hello MyFilter");
}

4、運(yùn)行項(xiàng)目并查看結(jié)果

啟動(dòng) Tomcat 服務(wù)器,在瀏覽器的地址欄中輸入地址 http://localhost:8080/filterDemo01/MyServlet 訪(fǎng)問(wèn) MyServlet,此時(shí),瀏覽器窗口顯示的結(jié)果如圖 2 所示。

圖 2 運(yùn)行結(jié)果

從圖 2 中可以看出,在使用瀏覽器訪(fǎng)問(wèn) MyServlet 時(shí),瀏覽器窗口中只顯示了 MyFilter 的輸出信息,而沒(méi)有顯示 MyServlet 的輸出信息,這說(shuō)明 MyFilter 成功攔截了 MyServlet 程序。

全部教程
主站蜘蛛池模板: 国产制服在线 | 手机在线精品视频每日更新 | 天天槽夜夜槽槽不停 | 日本中文字幕网站 | 中文字字幕码一二三区 | 成人在线免费视频播放 | 精品欧美在线观看视频 | 91短视频版在线观看www免费 | 国产亚洲一区在线 | 日本精品高清一区二区2021 | 182tv午夜精品视频在线播放 | 亚洲动漫第一页 | 国产成人精品在线观看 | 免费观看一级一片 | 一个人的www免费视频 | 日本福利视频 | 在线观看深夜观看网站免费 | 欧美日韩视频一区二区在线观看 | 日日摸日日添夜夜爽97 | 桃花岛亚洲精品tv自拍网站 | 日韩中文字幕精品免费一区 | 免费观看性欧美特黄 | 欧美成人在线免费 | 5252色欧美在线男人的天堂 | 福利一区二区在线观看 | 成人毛片免费观看视频 | 亚洲成av人片在线观看无码 | 色天使亚洲| 涩涩网站在线看 | 日韩亚洲一区二区三区 | 日本一区二区三区在线 观看网站 | 午夜精品久视频在线观看 | 影音先锋最新资源网 | 久久女同互慰一区二区三区 | 亚洲二三区 | 最新中文字幕在线视频 | 国产成人精品三级在线 | 一级欧美日韩 | 天天在线精品视频在线观看 | 国产制服在线 | 青青草原手机在线视频 |