更新時(shí)間:2022-05-05 09:12:23 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2369次
Filter過濾器,它是Servlet技術(shù)中最實(shí)用的技術(shù),Web開發(fā)人員通過Filter技術(shù),對web服務(wù)器管理的所有web資源:例如Jsp, Servlet, 靜態(tài)圖片文件或靜態(tài) html 文件等進(jìn)行攔截,從而實(shí)現(xiàn)一些特殊的功能。例如實(shí)現(xiàn)URL級別的權(quán)限訪問控制、過濾敏感詞匯、壓縮響應(yīng)信息等一些高級功能。它主要用于對用戶請求進(jìn)行預(yù)處理,也可以對HttpServletResponse進(jìn)行后處理。使用Filter的完整流程:Filter對用戶請求進(jìn)行預(yù)處理,接著將請求交給Servlet進(jìn)行處理并生成響應(yīng),最后Filter再對服務(wù)器響應(yīng)進(jìn)行后處理。
功能在HttpServletRequest到達(dá) Servlet 之前,攔截客戶的HttpServletRequest 。根據(jù)需要檢查HttpServletRequest,也可以修改HttpServletRequest 頭和數(shù)據(jù)。
在HttpServletResponse到達(dá)客戶端之前,攔截HttpServletResponse 。根據(jù)需要檢查HttpServletResponse,也可以修改HttpServletResponse頭和數(shù)據(jù)。
系統(tǒng)采用Struts架構(gòu),想在java過濾器中判斷session是否失效,失效即跳轉(zhuǎn)到登錄頁面,不好使啊!
代碼如下:
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
String indexPage = config.getInitParameter("indexPage");
// 設(shè)置request編碼用的字符集
request.setCharacterEncoding("utf-8"); // ①
HttpServletRequest requ = (HttpServletRequest) request;
HttpSession session = requ.getSession(true);
System.out.println("進(jìn)入Session過濾器");
// 獲取客戶請求的頁面
String requestPath = requ.getServletPath();
System.out.println("S請求動(dòng)作:" + requestPath);
if (!requestPath.endsWith("/login_noauth1.do")) {
String userid = String.valueOf(session.getAttribute("username"));
if (userid.equals("null")) {
((HttpServletResponse) response).sendRedirect(indexPage);
return;
} else {
chain.doFilter(request, response);
}
} else {
chain.doFilter(request, response);
}
}
以上就是關(guān)于“在Java Filter中如何進(jìn)行頁面重定向”的介紹,大家如果想了解更多相關(guān)知識,不妨來關(guān)注一下動(dòng)力節(jié)點(diǎn)的Java在線學(xué)習(xí),里面的課程內(nèi)容從入門到精通,細(xì)致全面,通俗易懂,適合沒有基礎(chǔ)的小白學(xué)習(xí),希望對大家能夠有所幫助。
初級 202925
初級 203221
初級 202629
初級 203743