在项目中,我们需要配置过滤器,拦截非法请求。
在src/main/java下创建包,在包下创建过滤器的类
AccessFilter.java
public class AccessFilter implements Filter{
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
//将我们的request和response对象强制转换成我们的http类型
HttpServletResponse res=(HttpServletResponse)response;
HttpServletRequest req=(HttpServletRequest)request;
//获取请求路径
String path=req.getRequestURI();
System.out.println(path);
if(path.endsWith("login.html")) {
//请求继续向下传递
chain.doFilter(req, res);
}else {
Object id = req.getSession().getAttribute("id");
if(id!=null) {
chain.doFilter(request, response);
}else {
res.sendRedirect(req.getContextPath()+"/login.html");
}
}
}
}
我们还需要在web.xml配置过滤器
<filter>
<filter-name>AccessFilter</filter-name>
<filter-class>com.wzc.web.AccessFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>AccessFilter</filter-name>
<!-- 所有以html结尾的文件 -->
<url-pattern>*.html</url-pattern>
</filter-mapping>
这样就可以拦截除了请求路径为login.html之外的所有请求了.