TengChenLi 2012-01-10 13:47
浏览 269
已采纳

登录过滤器问题

项目中登录的路径:/user/login.action 现在要多登录过滤,如果没用户登录就跳到登录页面,我的filter方法如下:public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
ServletException {
HttpSession session = ((HttpServletRequest) request).getSession();
HttpServletRequest httpReq = (HttpServletRequest) request;
HttpServletResponse httpRes = (HttpServletResponse) response;
String url = httpReq.getServletPath();
String path = httpReq.getContextPath();
//把login.jsp排除掉
if ((url.startsWith("/")&& !url.startsWith("/user/login")&& !url.startsWith("/login.jsp"))) {// 若访问后台资源
User user = (User) session.getAttribute("user");
if (user == null) {// 转入管理员登陆页面
httpRes.sendRedirect(path + "/login.jsp");
return;
}
}
chain.doFilter(request, response);

},现在直接输入登录的long.action是报错的,因为我把login.action没给过滤,如果不加")&& !url.startsWith("/user/login")这句的话,他就会过滤这个login.action,跑到登录页面,当我输入登录信息,点击登录时,它还会走这个过滤方法,求解决方法
  • 写回答

4条回答 默认 最新

  • li28544071 2012-01-10 15:11
    关注

    [quote]拦截器能对jsp过滤吗?你的意思是不管用过滤器还是拦截器,都不需对登录的action进行过滤或是拦截???[/quote]
    你的每个jsp不都是通过action返回的吗?

    login.jsp本来就不用过滤和拦截,请求login.jsp本来就是要去登陆,你还判断有没有登陆,是不是有点多余?又或者请求这个页面,可以看成“切换用户”

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办