亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

小白,不太明白Filter過濾器怎么用,請求大佬幫幫我

小白,不太明白Filter過濾器怎么用,請求大佬幫幫我

胡子哥哥 2021-12-31 07:07:36
首先問一個問題,FilterChain參數是做什么用的?假如我就有一個過濾器,FilterChain.doFilter(request,response);這句話是不是必須寫?還有如果有幾個過濾器,用FilterChain.doFilter(request,response)調用下一個過濾器的時候,Java怎么知道調用的順序呢?難道是按照web.xml文件里配置的順序么?我是新手,請教諸位大俠!謝謝您的回答,我再問一個問題,就是<url-pattern>/resource/*</url-pattern>這個映射地址怎么寫?您這里寫的/resource/*是什么意思?不是隨便寫吧?
查看完整描述

2 回答

?
米脂

TA貢獻1836條經驗 獲得超3個贊

我來給你簡單的說一下吧:)
首先要明確。Filter是JSP2.0里面的東西 ,顧名思義,也就是過濾器的意思
和你說說如何用吧。要用Filter就得在web.xml中配置
例:
//配置方法和配置普通的Servlet一樣的哦
<filter>
<filter-name>PrivFilter</filter-name>
<filter-class>com.myPriv.filter.PrivFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>PrivFilter</filter-name>
<url-pattern>/resource/*</url-pattern>
</filter-mapping>
//com.myPriv.filter.PrivFilter是這個過濾器所在的位置。當然這個過濾器必須實現接口javax.servlet.Filter。
然后就可以在過濾器這個接口方法中增加過濾條件了
public void doFilter(ServletRequset request, ServletResponse response,FilterChain chain)
thows ServletException, IOException{

然后你可以把過濾條件寫出來,寫在doFilter方法里面
我這里寫一個簡單的例子:
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
HttpSession session=request.getSession();
ServletContext application=session.getServletContext();

if(session.getAttribute("userSession")==null)
{
response.sendRedirect("error/priv_error.jsp");
return;
}
else
{
chain.doFilter(request, response);
}

}

在上面的這個過濾方法中,如果session.getAttribute("userSession")==null)那就跳轉到錯誤頁面。如果不為空,則繼續
所以
chain.doFilter(request, response);的意思就是跳轉到下個頁面,
明白了吧?

如果還有不明白。,可以留下你的問題

------------------------
還有忘了回答你的問題 了。java會在處理每一個Servlet時都走一次Filter的。所以你不必擔心你的過濾不起作用了
而且chain.doFilter(request.response);
是必須的。沒有他,程序就不會繼續了:)他是讓你的request和response繼續運行哦
--------------------------------
這個你就可接寫/*
好了。它是說對哪些范圍起作里這個過濾器



查看完整回答
反對 回復 2022-01-04
?
忽然笑

TA貢獻1806條經驗 獲得超5個贊

Filter不是jsp2.0中特有的,2.0和3.0里面都有,只不過在2.0中用過濾器需要用xml配置文件,而在3.0中不需要配置文件,一般eclipse會為你默認生成:@WebFilter("/Filter").

查看完整回答
反對 回復 2022-01-04
  • 2 回答
  • 0 關注
  • 304 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號