Java使用Filter實現(xiàn)登錄驗證
1、什么是Filter
Filter可認為是Servlet的一種特殊用法,主要是對用戶發(fā)起的請求進行預處理或后處理,意思就是在請求到達用戶想請求的地址之前先進入Filter,或者在離開用戶請求之后進入Filter。Filter類似于門衛(wèi),你在進入之前門衛(wèi)需要盤查你,身份合法進入,身份不合法攔截。
1.1、Filter過濾器的使用場景
1、對用戶的請求進行統(tǒng)一認證,適合做權(quán)限管理。
2、對請求和響應進行加密處理。
3、對用戶發(fā)送的請求或者響應的數(shù)據(jù)進行過濾處理。
4、對所有用戶的請求或者響應進行記錄,可以進行日志管理。
2、Filter的使用方式
說明1:Filter的使用需要實現(xiàn)Filter接口,并重寫doFilter方法
說明2:導包信息import javax.servlet.Filter;
說明3:當用戶正在進行登錄的時候需要放行。
2.1、創(chuàng)建Filter
public class LoginFilter implements Filter{
//銷毀方法
public void destroy() {
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
throws IOException, ServletException {
//將ServletRequest轉(zhuǎn)化成HttpServletRequest
HttpServletRequest request=(HttpServletRequest)servletRequest;
HttpServletResponse response=(HttpServletResponse)servletResponse;
//獲取當前用戶的請求地址
String url=request.getRequestURI();
//如果請求的地址中包含login,就放行
//如果用戶正在通過login.jsp或者請求login.do進行登錄,要放行。
if(url.indexOf("login")>-1){
//放行
filterChain.doFilter(request, response);
return ;
}
HttpSession session=request.getSession();
String username=(String)session.getAttribute("username");
//如果username值為空,說明沒有登錄,因為登錄成功后會將用戶信息保存在session中。
if(username!=null){
//放行
filterChain.doFilter(request, response);
return ;
}
//如果沒有登錄轉(zhuǎn)發(fā)到login.jsp
request.getRequestDispatcher("login.jsp").forward(request, response);
}
@Override
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}
2.2、在web.xml中配置Filter信息
<!-- 自定義過濾器 -->
<filter>
<filter-name> LoginFilter </filter-name>
<filter-class>com.it.filter. LoginFilter </filter-class>
</filter>
<filter-mapping>
<filter-name> LoginFilter </filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>到此這篇關(guān)于Java使用Filter實現(xiàn)登錄驗證的文章就介紹到這了,更多相關(guān)Java Filter登錄驗證內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
idea向System.getenv()添加系統(tǒng)環(huán)境變量的操作
這篇文章主要介紹了idea向System.getenv()添加系統(tǒng)環(huán)境變量的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06
SpringBoot整合Security實現(xiàn)權(quán)限控制框架(案例詳解)
Spring Security是一個能夠為基于Spring的企業(yè)應用系統(tǒng)提供聲明式的安全訪問控制解決方案的安全框,是一個重量級的安全管理框架,本文給大家介紹的非常詳細,需要的朋友參考下吧2021-08-08
POI讀取excel簡介_動力節(jié)點Java學院整理
這篇文章主要介紹了POI讀取excel簡介,詳細的介紹了什么是Apache POI和組件,有興趣的可以了解了解一下2017-08-08
手把手教學Win10同時安裝兩個版本的JDK并隨時切換(JDK8和JDK11)
最近在學習JDK11的一些新特性,但是日常使用基本上都是基于JDK8,因此,需要在win環(huán)境下安裝多個版本的JDK,下面這篇文章主要給大家介紹了手把手教學Win10同時安裝兩個版本的JDK(JDK8和JDK11)并隨時切換的相關(guān)資料,需要的朋友可以參考下2023-03-03
JavaCV實戰(zhàn)之調(diào)用攝像頭基礎(chǔ)詳解
這篇文章主要介紹了使用JavaCV框架對攝像頭進行各種處理的基礎(chǔ)理論詳解,文中的示例代碼講解詳細,對我們學習JavaCV有一定的幫助,需要的可以了解一下2022-01-01

