java filter 不过滤器_java过滤器不过滤某个货某一些路径
展開全部
首先在web.xml 配置 參數
noLoginPaths ?參數名可自取
LoginFilter
com.imooc.filter.LoginFilter
noLoginPaths
login.jsp;fail.jsp;LoginServlet
charset
UTF-8
LoginFilter
/*
然后在 Filter 中,創建一個?FilterConfig 的引用, 這個引用在init中初始化,并且能夠62616964757a686964616fe4b893e5b19e31333363373763通過它獲取?中的key和value ?,
String?noLoginPaths?=?config.getInitParameter("noLoginPaths");然后通過判斷用戶請求的url 是否符合 noLoginPaths 中設置的不過濾選項,如果如何,就調用do.filter放行
關鍵代碼 :if(noLoginPaths!=null){
String[]?strArray?=?noLoginPaths.split(";");
for?(int?i?=?0;?i?
if(strArray[i]==null?||?"".equals(strArray[i]))continue;
if(request.getRequestURI().indexOf(strArray[i])!=-1?){
arg2.doFilter(arg0,?arg1);
return;
}
}
}
完整代碼: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.http.HttpServletRequest;
import?javax.servlet.http.HttpServletResponse;
import?javax.servlet.http.HttpSession;
public?class?LoginFilter?implements?Filter?{
private?FilterConfig?config;
@Override
public?void?destroy()?{
}
@Override
public?void?doFilter(ServletRequest?arg0,?ServletResponse?arg1,?FilterChain?arg2)?throws?IOException,?ServletException?{
HttpServletRequest?request?=?(HttpServletRequest)?arg0;
HttpServletResponse?response?=?(HttpServletResponse)?arg1;
HttpSession?session?=?request.getSession();
String?noLoginPaths?=?config.getInitParameter("noLoginPaths");
String?charset?=?config.getInitParameter("charset");
if(charset==null){
charset?=?"UTF-8";
}
request.setCharacterEncoding(charset);
if(noLoginPaths!=null){
String[]?strArray?=?noLoginPaths.split(";");
for?(int?i?=?0;?i?
if(strArray[i]==null?||?"".equals(strArray[i]))continue;
if(request.getRequestURI().indexOf(strArray[i])!=-1?){
arg2.doFilter(arg0,?arg1);
return;
}
}
}
if(session.getAttribute("username")!=null){
arg2.doFilter(arg0,?arg1);
}else{
response.sendRedirect("login.jsp");
}
}
@Override
public?void?init(FilterConfig?arg0)?throws?ServletException?{
config?=?arg0;
}
}
總結
以上是生活随笔為你收集整理的java filter 不过滤器_java过滤器不过滤某个货某一些路径的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 张宇1000题线性代数 第九章 二次型
- 下一篇: 基于Frangi滤波的视网膜静脉血管检测