package com.iflytek.filter;
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.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebFilter(urlPatterns={"/*"})
public class LoginFilter implements Filter {
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain fc) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest)arg0;
HttpServletResponse response = (HttpServletResponse)arg1;
// 请求服务器地址 servlet或者是jsp 如果有login 不需要判断session
// 请求服务器地址 servlet或者是jsp 如果没有login 需要判断session
// 请求资源文件 css js jpg等 不需要判断session
String uri = request.getRequestURI();//获得请求的URI
System.out.println("hello");
if(uri.contains("resource")){
// 访问资源文件
// 将请求提交给服务器
fc.doFilter(arg0, arg1);
}else{
if(uri.contains("login")){
// 将请求提交给服务器
fc.doFilter(arg0, arg1);
}else{
HttpSession session = request.getSession();
if(session.getAttribute("user") == null){
// 回到登录页面
response.sendRedirect(request.getContextPath() + "/views/login.jsp");
}else{
// 将请求提交给服务器
fc.doFilter(arg0, arg1);
}
}
}
}
@Override
public void init(FilterConfig arg0) throws ServletException {
}
}
使用jsp过滤器实现登录权限
最新推荐文章于 2022-05-20 13:33:41 发布