最近在写项目时发现,其它请求也可以进入主界面,于是写了一个过滤器,具体如下:
首先在后台写一个过滤器,大致如下:
先获得当前URL路径:request.getRequsetURI();
然后把你需要的URL都放行:chain.doFilter(request,response);
接着判断当前路径是否含有"/login.jsp"或者输入登录用户名和密码时发出的请求,如果有则放行,接着当后端向前端回复时又经过过滤器,此刻session获得登录信息,判断session中是否存在登录信息,存在则放行,不存在则返回到登录页面。这个过滤起就算写完了。
一些代码:
继承Filter
HttpServletRequest request = (HttpServletRequest)servletRequest;
HttpServletResponse response = (HttpServletResponse )servletResponse;
..
HttpSession session = request.getSession(false);
..
逻辑判断自己写
..
response.sendRedirect(request.getContextPath()+"/login.jsp");
最后在web.xml中配一下:<filter>
<filter-name>sessionFilter</filter-name>
<filter-class>你的过滤器地址</filter-class>
</filter>
<filter-mapping>
<filter-name>sessionFilter</filter-name>
<url-pattern>/*对所有斜线后的过滤</url-pattern>
</filter-mapping>
存在问题:1,过滤器将过滤掉所有请求,记得放行一些需要放行的请求