可以在每个页面里 用session.getA..("uid",name)来判断 没有值得就 response.sendredirect("")页面

解决方案 »

  1.   

    用session.getA..("uid",name)你怎知道是哪个用户登陆过哟,如A用户正常登陆,B用户直接进入其它页面这时的session.getA..("uid",name)是有值的它是A用户的值
    这样是不行的.怎么做我也UP一下
      

  2.   

    to weilianggd(序列号777710) :
    看来你对session还不理解,服务器会为每一个访问的用户建立一个单独的session,即使是在同一台电脑上,打开两个浏览器来访问同一个页面,服务器也会建立两个session。
    A用户登录成功,只在A用户的session内保存登录信息,从B用户的session内是不可能得到A的登录信息的。
    好好看看jsp和servlet的基础吧。
      

  3.   

    这个问题可以采用自定义标签技术实现:只有登录的用户才有session,但有session也不能访问其角色权限以外的资源。
    解决这个问题,可以在用户的session中存入所有能访问的页面,自定义标签实现这样的功能:本页面属于权限范畴,允许载入,否则跳转。
    每个JSP中都使用一下这个自定义标签,问题就解决了。
      

  4.   

    singedcat(以梦为马):请教是否可以给各例子看看?本人不是很懂你的方法.3ks
      

  5.   

    写一个jsp文件,判断session是否为空,如果为空就跳转到登陆页面,然后每个jsp文件包含这个jsp文件,很快就搞定了
      

  6.   

    回复人: senint(无厘头) ( ) 信誉:95  2005-02-28 11:27:00  得分: 0  
     
     
       写一个jsp文件,判断session是否为空,如果为空就跳转到登陆页面,然后每个jsp文件包含这个jsp文件,很快就搞定了
      
     
    >>>>>>>若你是系统用户,就能登录,一登录就有session,如果你是一个低权限用户,若不控制的话,只要你知道页面链接,纵使该资源是你所无权访问的,你在地址栏中输入该地址,你一样可以进入该页面。“很快就搞定了”?
      

  7.   

    如果是担心用户未登录就能访问到jsp页面,并且采用了struts或springMVC来做前台的话,解决办法很简单,把所有的jsp放到WEB-INF目录下,这样用户就不能使用浏览器通过url来访问到jsp了。比如是struts,就要做到每次访问的都是xxx.do,然后由这个.do对应的action来跳转到真正的jsp页面。用户是否登录就在action中验证,未通过就全局跳到一个登录界面。然后,如果系统有权限高低等级的限制,比如某个有权的已登录的用户能访问一个功能,而另一个无权的已登录的用户却不能访问这个功能,这种情况仍然采用上边的访问模式,也在action中对一个登录用户进行权限高低判断,看他是否有权使用该模块的功能,无权就跳到主页去。
      

  8.   

    寫一個filter,只能在某些頁面獲的繪話
      

  9.   

    IceCraft(心淡情浓) :若不用struts或springMVC,怎么来解决这个问题?
      

  10.   

    用Filter是最佳方案!
    这样不用在每个页面中加入判断session的代码,而且可以控制任何文件类型。赞同clare0peng(克雷尔).
      

  11.   

    如果用filter应该如何实现呢?
      

  12.   

    放到WEB-INF里面就可以了(Tomcat)
      

  13.   

    如果不通过JSP,有办法实现页面访问控制吗?
      

  14.   

    如果不通过JSP,有办法实现页面访问控制吗?
      

  15.   

    to IceCraft(心淡情浓):
    如果允许一台电脑登陆两个用户,是不是不好控制A和B之间不同的权限
    如A有权限访问一个页面,而B没有,B直接输入网址进入该页面如何控制?Filter是什么?谁解释一下?
    我们的做法是使用session,加上把角色分类,每个页面规定哪些角色可以进入
    每个页面首先判断是否为合法的登陆用户,然后再判断是否是该页面合法角色的一种
      

  16.   

    如果不通过JSP,有办法实现页面访问控制吗?
      

  17.   

    to lippea(E.L.) :
        即使是一台电脑打开两个浏览器登录两个用户A和B,它们各自的session是完全不同的。
        在action中进行权限验证处理,首先从session取得账号,然后查询数据库该帐号是否有访问该页面的权限,有权限才能跳转到对应的jsp进行处理,无权则跳回首页。不存在你所说的“如A有权限访问一个页面,而B没有,B直接输入网址进入该页面”。首先你要了解不同浏览器访问同一个网页session其实不是同一个!
        Filter(过滤器),它的作用是当用户请求到达服务器后过滤器可以首先进行一定的处理,当服务器完成处理要反馈给用户数据时过滤器又可以做一些处理。这种方式控制访问的办法通常是检查用户请求的url的地址或url所携带的参数是否符合一个特定的字符串,这样就知道用户想访问的是哪个页面或功能,然后查询该用户是否有权访问,有权则继续把请求传递给服务器的后台处理,否则跳过或跳转到某个页面。
      

  18.   

    to singedcat(以梦为马):
        确实可以通过自定义标签来完成验证。
      

  19.   

    to singedcat(以梦为马):
        确实可以通过自定义标签来完成验证。
      

  20.   

    to IceCraft(心淡情浓) 
    我明白你的意思,但我的意思是一台电脑两个session,那么不是使用系统中的链接
    而是自己打开一个ie,然后输入一个系统地址
    服务器能区别是哪个session访问这个地址,从而进行权限判断吗?
      

  21.   

    to IceCraft(心淡情浓) :
    谢谢你的详细解答,大概明白filter是在用户请求到来,和处理后发出用户所需数据时的过滤器
    没用过,不知道是什么 ^_^
      

  22.   

    to guolijuan029():
        jsp支持自定义标签,具体做法就是写一个tld标签库,以及对应的处理类。使用的时候就在jsp的开头处加上一个标签,比如<app:check/>,然后会调用处理类来完成用户是否登录以及权限检查,通过就继续显示该页面的内容,不通过就跳转到别的页面去。这种方法也比较方便,每个需要检查的页面加上一个标签就可以了。具体例子,你可以下载struts的开发包,里边带了一个这样的例子。to lippea(E.L.) :
        其实你考虑的可能有限过度了。只要你不特意去使用单例模式,你完全可以把服务器想象为只为一个用户服务。多个用户就有多个服务器,每个用户都对应一个服务器。每个用户之前互不牵扯。