我用struts+jsp做的,有些页面通过绝对路径可以直接访问到的。有没什么办法可以阻值不是合法用户就不能访问。我听说可以用判断session来解决。在c#里有个pageload,写在那里很容易判断。我就不知道jsp里写在什么地方可以实现这的功能呀? 最好有例子代码贴下。

解决方案 »

  1.   

    现成的代码道是没有。可以提供两种思路。
    1, 就想你说的用session 通过判断session中是否有对应的值来判断用户是否登陆。 
        最好做成一个自定义的标签。将你需要登陆的页面嵌入这个标签就可以了。2, 通过过滤器来处理 . 将你需要登陆后才能访问的页面放到 一个目录下。
        然后 在过滤器中判断你的请求是否能够进入这个目录就可以了。
      
      

  2.   

    可以把jsp放到WEB-INF下的目录下,这样客户端就不能直接访问了,所有的页面跳转都用服务器端重定向。
    在jsp页面上就可以直接用session
    <% Uer user = (User) session.getAttribute("user");%>...
      

  3.   

    jsp页面:var permissionList="<%=session.getAttribute("userSession_name")%>";
      

  4.   

    一般都用filter来控制权限,
    看看我们教程中的介绍:http://www.family168.com/tutorial/jsp/html/jsp-ch-07.html#jsp-ch-07-02
      

  5.   

    可以用session控制,
    用户登录时,将用户名存到session中,访问该页面时,判断一下session中的用户名是否空,如果空,则禁止访问。
    登录时:session.setAttrbiute("username",username);
    访问页面时:if(session.getAttribute(username)==null)
               {
                       //错误提示,或者页面跳转
               } 
      

  6.   

             最好用url重写,因为有些用户禁用Cookie,使得Session失去作用.
      

  7.   

    使用过滤器吧!
    session是控制不住的,用户如果知道路径的话,可以跳过登录页面访问其他的页面啊!这样的话,登录页面形同虚设了.你总不能在每个页面都判断session中用户信息吧!
      

  8.   

    用filter控制一堆jsp页面的访问权限