为了数据的安全,需要用户登录之后才能访问和使用一些页面和功能,所以需要加入过滤器对访问进行拦截过滤,只有满足要求才能访问一些资源。
前端
$(function () {
let username = sessionStorage.getItem("username")
if(username === null){
location.href='/html/login.html';
}
})
写一个js,只有用户登录之后,将用户名存入session中,在其它页面能通过session取到用户名才能访问该页面,如果取不到信息就不能访问,并跳转到登录界面,让用户进行登录。
后端
@WebFilter("/*")
public class MyFilter extends HttpFilter {
@Override
protected void doFilter(HttpServletRequest req, HttpServletResponse res, FilterChain chain) throws IOException, ServletException {
String path = req.getServletPath();
if (path.startsWith("/back/")) {
String username = (String) req.getSession().getAttribute("username");
if (username == null) {
res.getWriter().println(JSONObject.toJSONString(ResultDTO.getResult("未登录")));
} else {
// 放行
chain.doFilter(req, res);
}
} else {
chain.doFilter(req, res);
}
}
创建一个类,继承HttpFilter,重写doFilter方法,@WebFilter("/*")设置过滤路径为所有,String path = req.getServletPath()都到访问的请求路径,添加判断条件进行路径过滤,只有满足条件才放行,不满足条件给出返回信息。