真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

JavaWeb過濾器簡介-創(chuàng)新互聯(lián)

過濾器位于客戶端和web應用程序之間,用于檢查和修改兩者之間流過的請求和響應。

網(wǎng)站建設哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、重慶小程序開發(fā)公司、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了治多免費建站歡迎大家使用!

在請求到達Servlet/JSP之前,過濾器截獲請求。

在響應送給客戶端之前,過濾器截獲響應。

多個過濾器形成一個過濾器鏈,過濾器鏈中不同過濾器的先后順序由部署文件web.xml中過濾器映射的順序決定。

最先截獲客戶端請求的過濾器將最后截獲Servlet/JSP的響應信息。

我們需要實現(xiàn)一個Filter接口,導入import javax.servlet.*,并實現(xiàn)其中的抽象方法。

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

public class LoginFilter implements Filter {

    @Override
    //初始化
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {

    }

    @Override
    //刪除過濾器
    public void destroy() {

    }
}

以上操作和Servlet很相似,也可以理解為Filter就是一個Servlet,只是Filter所對應的功能和位置不相同。

配置映射路徑:

過濾器配置映射路徑有兩種方法,第一種方法就是在web.xml中配置

login.jsp  過濾器配置映射 LoginFiltercom.scores.filter.LoginFilterLoginFilter/*

第二種方法就是利用注解的方式進行配置( 攔截的路徑 /*:攔截所有的請求)

@WebFilter(urlPatterns = {"/*"})

配置完成之后接下來我們就可以給LoginFilter寫上一些輸出語句及邏輯判斷

package com.scores.filter;

import javax.servlet.*;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;

public class LoginFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("init");
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest)servletRequest;
        //獲取當前uri
        String uri = request.getRequestURI();
        //通過這條輸出語句可以清楚的看到被攔截的請求
        System.out.println("doFilter"+uri);
        //通過過濾器----允許通過
        filterChain.doFilter(servletRequest,servletResponse);
    }

    @Override
    public void destroy() {
        System.out.println("destroy");
    }
}

在實行不同的要求時可以用不同的邏輯判斷來完成,例如你想完成必須要有用戶登錄才能繼續(xù)訪問后續(xù)頁面的要求,就可以在doFilter中加入邏輯判斷,假如nowses就代表你的賬號密碼。

//邏輯判斷
Object loginuser = request.getSession().getAttribute("nowses");
//如果他這個loginuser不為空
if(loginuser != null){
    //允許通過
     filterChain.doFilter(servletRequest,servletResponse);
    
}else{
    //跳轉回登錄頁面
    HttpServletResponse response = (HttpServletResponse) servletResponse;
        response.sendRedirect("/ScoresWeb/login.jsp");
}

總結:

過濾器:根據(jù)業(yè)務需求對請求進行攔截。

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


文章名稱:JavaWeb過濾器簡介-創(chuàng)新互聯(lián)
新聞來源:http://weahome.cn/article/depscc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部