大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

Servlet教程

Filter過濾Servlet的過程

為了幫助讀者快速了解 Filter 的開發過程,下面通過案例演示 Filter 程序如何對 Servlet 程序的調用過程進行攔截。

1、創建 Servlet

在 MyEclipse 中創建一個名為 filterDemo01 的 Web 項目,并在項目的 src 下創建一個名為 com.mengma.filter 的包,在該包中創建一個名為 MyServlet 的 Servlet 類,該類用于訪問時在瀏覽器中輸出“Hello MyServlet”。MyServlet 類的實現代碼如下所示。

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、創建 Filter 類

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

圖 1 創建一個 Filter

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

依次單擊 OK 和 Finish 按鈕即可完成 Filter 類的創建。創建后的 MyFilter 類的主要代碼如下所示。

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 類默認的構造方法,其他三個方法是 Filter 接口中的方法。在 doFilter() 方法中,chain.doFilter(request,response)用于過濾處理,表示將請求向下傳遞。

使用 MyEclipse 創建過濾器類后,需在 web.xml 中創建過濾器信息,代碼如下:

<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>

在上述代碼中,設置了過濾器對 /MyServlet 請求資源進行攔截,將在請求到達 MyServlet 程序前執行 MyFilter 程序。過濾器的配置信息中包含多個元素,這些元素分別具有不同的作用。

• <filter>根元素用于注冊一個 Filter。

• <filter-name>子元素用于設置 Filter 名稱。

• <filter-class>子元素用于設置 Filter 類的完整名稱。

• <filter-mapping>根元素用于設置一個過濾器所攔截的資源

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

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

3、修改 Filter

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

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

4、運行項目并查看結果

啟動 Tomcat 服務器,在瀏覽器的地址欄中輸入地址 http://localhost:8080/filterDemo01/MyServlet 訪問 MyServlet,此時,瀏覽器窗口顯示的結果如圖 2 所示。

圖 2 運行結果

從圖 2 中可以看出,在使用瀏覽器訪問 MyServlet 時,瀏覽器窗口中只顯示了 MyFilter 的輸出信息,而沒有顯示 MyServlet 的輸出信息,這說明 MyFilter 成功攔截了 MyServlet 程序。

全部教程
主站蜘蛛池模板: 黄视频在线观看www 黄视频在线观看网站 | 一级黄色免费网站 | 久久视频精品a线视频在线观看 | 欧美成人日韩 | 99热这里有精品 | 色综合小说天天综合网 | 色噜噜狠狠一区二区三区 | 99久久久久国产精品免费 | 中文字幕一区二区三区 精品 | 91在线免费看 | 国产精品爱久久久久久久小 | 久久精品国产久金国产思思 | 手机看片国产欧美日韩高清 | 婷婷天天| 草草国产成人免费视频 | 午夜小视频网站 | 亚洲福利社 | 成人激情在线视频 | 无遮挡又黄又爽又色1000部 | 九久久| 日韩在线第二页 | 精品四虎免费观看国产高清午夜 | 一区二区三区在线 | 网站 | h片在线播放免费高清 | 男人叼女人的痛爽视频免费 | 伊在人香蕉99久久 | 亚洲一区二区三 | 日本一区二区三区四区公司 | 国产中文久久精品 | 九九久久精品国产 | 日韩欧一级毛片在线播无遮挡 | 免费区欧美一级毛片精品 | 色综合综合色综合色综合 | 欧美日韩1区| 亚洲欧洲一区二区三区在线 | 日本黄 色 成 年 人免费观看 | 国产成人一区二区 | 欧美日韩亚洲综合久久久 | 日韩在线看片 | 中文字幕视频免费 | 一级毛片免费视频 |