首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

请问 JSP页面之间跳转的有关问题 !

2012-09-28 
请教 JSP页面之间跳转的问题!!home.jspJava code%String un (String)session.getAttribute(userName)

请教 JSP页面之间跳转的问题 !!
home.jsp

Java code
<%    String un = (String)session.getAttribute("userName");    if("".equals(un) && un == null){        response.sendRedirect("login.jsp");    }%>


在进入主页面之前先判断 session里面有没有用户名的值 防止直接输入地址进入主页面
如果没有值 就跳回登陆页面

但是我这样写没有作用 还是可以直接进入

请教错在什么地方? 
还有就是怎么加个弹出窗口提示 alert("请您先登陆!");

[解决办法]
你这样写的判断条件结果永远为假。应该是if("".equals(un) || un == null),而不是 && 吧。
[解决办法]
写个过滤器多好
核心代码
isLogin = (String) session.getAttribute("islogin");
//把不要过滤的内容排除掉:如首页
if (req.getRequestURI().equals(req.getContextPath()+"/")
|| req.getRequestURI().equals(req.getContextPath() + "XXXX")
) {
filterChain.doFilter(req, res);
}else if ((isLogin != null) && (isLogin.equals("true"))) {
filterChain.doFilter(req, res);
//System.out.println("Login success");
} else {
System.out.println("Login fail");
session.invalidate();
res.sendRedirect(req.getContextPath()+"/Page/relogin.jsp?reg=msg");
//验证不成功,让用户登录。
}

[解决办法]
首先这句String un = (String)session.getAttribute("userName");就有问题,如果session中没有userName,那么session.getAttribute("userName")=null,(String)null是会发生异常的。但是在JSP中的JAVA代码产生的异常不会中断JSP页面,而是发生异常时,这段代码就被pass掉了。
所以,假设你未登录就访问某个页面,还是不会跳到登录页面去。
建议用过滤器实现,简单方便。
[解决办法]
写个过滤器可以实现你的要求,何必写那么多验证。
请看
http://blog.csdn.net/wpabbs/archive/2008/08/21/2806677.aspx

热点排行