注册 登录
编程论坛 JAVA论坛

求解:关于Filter在判断无登录状态下的问题。一直想不通!

tequilashou 发布于 2020-07-29 13:47, 1720 次点击
我的做法是 直接判断session 如果空就放行,如果不用,就跳转到登录页。

但是我看到有些人,不明白为什么?

先去配置初始化,将需要权限的页面做初始化,然后读取这些初始化界面,在拿取当前地址,做比较,如当前拿取的页面和初始化页面相同在去判断session。没有必要啊!
但为什么要多此一举?

我直接判断session 如果存在就允许进入。不存在就拦截放行到index.html。而且运行也没什么地方感觉不对。
2 回复
#2
tequilashou2020-07-29 13:53
package fkpi.ilter;

import

import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginFilter extends HttpFilter{
    @Override
    protected void doFilter(HttpServletRequest req, HttpServletResponse resp, FilterChain chain) {
        
            if(req.getSession().getAttribute("userName")==null){//拿取到sesson判断,如果空了
                try {
                    resp.sendRedirect(req.getContextPath()+"/index.jsp");//跳转到首页
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }else{
                try {
                    chain.doFilter(req, resp);//如果不空,说明已经登录了,就直接放行
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (ServletException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
    }
}
#3
tequilashou2020-07-29 13:54
好像没有问题啊,这样。
1