关于用户身份验证方法

zhanggc1001 2008-01-15 09:14:08
如题:我的目的是想在用户尚未登陆时,访问其他的页面都会返回到登录界面,
做好能写在过滤类里,我想了一个方法,但觉得这样作不太好
HttpSession session = ((HttpServletRequest) request).getSession();

String path = ((HttpServletRequest) request).getRequestURI();
if (path.endsWith("login.jsp")||path.endsWith("login.do")) {

} else {
if (session.getAttribute("user") == null) {
((HttpServletResponse) response).sendRedirect("/book/jsp/login.jsp");
}
}
有没一什么好的方法啊,我想可能关键的问题是如果区分第一次访问,
也就是说当我第一次访问login.jsp根本不需要进行验证,访问其他页面时其他页面就跳到登陆界面
以后访问其他页面是就需要进行验证,
有没一什么好的方法阿,高手们!
...全文
199 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
小MAY 2008-01-16
  • 打赏
  • 举报
回复
认同加过滤器比较合适。。。。。。。。。。。。下面是过滤器的写法

//Process the request/response pair
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) {
try {
HttpServletRequest hsrq = (HttpServletRequest)request;
HttpServletResponse hsrp = (HttpServletResponse)response;
if(!isLogin(hsrq, hsrp)){
hsrp.sendRedirect(hsrq.getContextPath() + "/loginservlet");
}
filterChain.doFilter(request, response);
} catch (ServletException sx) {
filterConfig.getServletContext().log(sx.getMessage());
} catch (IOException iox) {
filterConfig.getServletContext().log(iox.getMessage());
}
}
KK3K2005 2008-01-16
  • 打赏
  • 举报
回复
if (session.getAttribute("user") == null)
Response.redirect("login.jsp");

这样总可以了把
zhanggc1001 2008-01-15
  • 打赏
  • 举报
回复
5楼的方法可以,我也知道,但如果是混在一起就不可以了,
to 3楼,4楼,你俩说的方法是一样的,
但是如果你第一次就访问了登录界面,
if (session.getAttribute("user") == null) 如果写在过滤类里
没有就想里塞值,那我第一次访问其它的页面时session.getAttribute("user")也是null
这样还是往里塞值,但是这样就返回不了登录界面了!
不知道我说清楚了没
zya0031 2008-01-15
  • 打赏
  • 举报
回复
把login.jsp和登陆后的页面分开放,然后只对登陆后页面的文件夹加过滤器好了

==========================================================
我是菜鸟。。。。
KK3K2005 2008-01-15
  • 打赏
  • 举报
回复
if (session.getAttribute("user") == null)

这样还不解决问题?

验证是不是第一次进入页面 和验证是否登陆有什么区别?
yuwenbao 2008-01-15
  • 打赏
  • 举报
回复
你访问login页面当然不用验证,你只不过是判断session中有没有你设置的值,没有你就塞值,有你什么也不用干或者跳转到你想要的页面,别的页面验证就好了,不知道你是不是表达的这种意思
zhanggc1001 2008-01-15
  • 打赏
  • 举报
回复
我也说不清楚,但是感觉就是不好
这样做是根据访问首页的路径进行判断,
我就是想问问有没有其他的方法,但也是写在过滤类里的
  • 打赏
  • 举报
回复
这样做为什么不好呢?

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧