如果要防止他访问JSP页面,就用<logic:present></logic:present>标记来判断已授权用户访问该页面所需的Bean是否存在,如果存在,就是合法用户,反之就是非法用户。
如果要防止他访问ActionServlet,那么直接在Servlet或Bean里面写一个方法来判断已授权用户访问的条件是否满足就可以了。

解决方案 »

  1.   

    那岂不要在每个jsp页面或servlet中判断,太不实际了吧
      

  2.   

    过滤器Filter
    写一个就可以对所有的页面进行过滤,体现了代码的从用性!
    思路很简单,就是登陆成功后,在session里面做一个标实。
    在Filter中,判断这个标实,正确的话就可以访问,错误的话
    就转到登陆页面!
      

  3.   

    如果只是针对URL做访问权限判断,可以用过滤器,过滤器会有一个url匹配过程,匹配上的url访问,就会调用Filter实现类的doFilt()方法,在这个方法里你可以设置自己的权限判断和处理方法。找个JSP的书上的例子试试看好了,挺容易的。
      

  4.   

    那有这样的情况:
        1、不能让用户没有登陆就访问jsp页面,更不能访问servlet,
        2、不同的用户有不同的访问权限,比如,登陆之后管理员可以访问某些页面和servlet,而普通用户可以访问另外的页面和servlet,如何用filter实现?
        3、比如一个servlet进行两个处理动作,查看和修改,都是在一个servlet中进行处理,通过一个提交参数action的值不同来区分,如何保证管理员就能查看和修改而普通用户只能查看,但是处理都是一个servlet来做的,如何用filter做?
      

  5.   

    filter只是针对url访问请求的过滤,并不能影响某些视图的显示逻辑,像上面的第3个问题,如果是同一个JSP/Servlet的页面,要根据用户权限的不同在界面上显示不同的内容,那只能在JSP/Servlet做权限判断。上面第1个问题很容易做到,把Servlet都放在/servlet/*下面,而jsp都放在/jsp/*.jsp下,这样就可以用filter来操作控制所有的servlet和jsp的访问了。第2个问题不需要filter吧,只要在处理登录的servlet中根据用户权限设置不同的页面跳转就可以了
      

  6.   

    用Session呢?合法用户赋给一个Session值,非法用户直接输入网址,没有session值,一判断即重定向至某页
      

  7.   

    在过滤器中判断 refer 头.
      

  8.   

    过滤器了,控制防止输入URL就用JS控制了。
      

  9.   

    filter 验证session对象是否存在/合法就可以了
      

  10.   

    最最简单的方法,就是在这个URL地址的页面里加入Session判断!
      

  11.   

    jsp页面放到WEB-INF/目录下即可。
      

  12.   

    把jsp放在web-inf中,那个目录不允许直接访问
      

  13.   

    登陆成功后,在session里面做一个标识,正确的话就可以访问,错误的话
    就转到登陆页面!