首先在启动类必须加@ServletComponentScan
然后写filter代码
package com.cd.market.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
@WebFilter("*.html")
public class SystemFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
//设置不需要过滤的url
String [] ignore = {"/login.html","/index.html"};
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
//转换成http对象
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp = (HttpServletResponse) response;
HttpSession session = req.getSession();
String reqpath= req.getServletPath();
for (String str:ignore) {
if (str.equals(reqpath)) {
chain.doFilter(req,resp);
return;
}
}
if (session.getAttribute("user")==null) {
resp.sendRedirect("/login.html");
}else {
chain.doFilter(req, resp);
}
}
@Override
public void destroy() {
}
}