home.jsp<%
String un = (String)session.getAttribute("userName");
if("".equals(un) && un == null){
response.sendRedirect("login.jsp");
}
%>在进入主页面之前先判断  session里面有没有用户名的值  防止直接输入地址进入主页面
如果没有值  就跳回登陆页面但是我这样写没有作用  还是可以直接进入请教错在什么地方? 
还有就是怎么加个弹出窗口提示 alert("请您先登陆!");

解决方案 »

  1.   

    你这样写的判断条件结果永远为假。应该是if("".equals(un) || un == null),而不是 && 吧。
      

  2.   

    这个判断逻辑一般不会放在jsp文件中,这样如果你还有其他页面,你还需要加入你的那些code,最好是放在一个集中控制跳转的java代码中
      

  3.   

    弹出警告框得用JavaScript吧:<script language="javascript">alert("文本内容");</script>
      

  4.   

    写个过滤器多好
    核心代码
         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");
                    //验证不成功,让用户登录。
                }
      

  5.   


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

  6.   

    首先这句String un = (String)session.getAttribute("userName");就有问题,如果session中没有userName,那么session.getAttribute("userName")=null,(String)null是会发生异常的。但是在JSP中的JAVA代码产生的异常不会中断JSP页面,而是发生异常时,这段代码就被pass掉了。
    所以,假设你未登录就访问某个页面,还是不会跳到登录页面去。
    建议用过滤器实现,简单方便。
      

  7.   

    真的如你所说   呵呵  
    我把 &&  改成  ||  还是一样的效果   我正郁闷怎么回事呢   谢谢!
    不过我没有用过过滤器  过滤器很简单吗  要不要导什么jar包啊 ?
      

  8.   

    最好选判断null再判断其它..         过滤器.还比较容易吧..不用导入jar包..JBuilder内置有的.  Eclipse要自己手写.
      

  9.   

    我用的eclipse + my  不幸哦   - -!
      

  10.   

    <%if(session.getAttribute("user")==null){%>
    <script lanuage="javascript">alert("你还没登录,请先登录!!");
     window.location.href("login.jsp");
    </script> 
      

  11.   

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

  12.   

    写个过滤器可以实现你的要求,何必写那么多验证。
    请看
    http://blog.csdn.net/wpabbs/archive/2008/08/21/2806677.aspx 
      

  13.   

    <%
      String un = (String)session.getAttribute("userName");
      if("".equals(un) )
      {
      response.sendRedirect("login.jsp");
      }
    %> 
    equals(object)   不用再加""==nu     如果单写""==nu     条件 是跳不成的