采用MVC模式,权限放在数据库中,调有底层的时候如果没有权限,则在Controller中捕获异常,重定向道出错页面给可以!并且,这种方式可以单独抽象出来权限控制模块,有利于复用!可以设计一个User对象!
在大型的项目中,这个方法很有效!

解决方案 »

  1.   

    同意BOVY。
    用servlet作为controller,权限存放在数据库里,
    建立user对象,页面提交到servlet,进行权限判断,然后重定向。
    这样,每个功能各自独立,比较容易做。
      

  2.   

    偶学JSP的道行尚浅
    很多地方不明白,
    controller是什么东西?
    偶还是第一次听说
    怎么用呀?
      

  3.   

    请问页面较多的情况下,具体该怎么处理。
    就是Servlet如何解决数据库中的权限与JSP页面间的关系。还有数据库中的权限该如何表示。我现在用一个Varchar字段,用数字代表权限,用分号分割多个权限,例如3;5;9等。请问有无更好方法!
      

  4.   

    用模式控制,设计模式的一种!~~
    很好用的
    jive里面的方法也可以参考!~~
      

  5.   

    权限级别在数据库里体现,再把数据库中的级别set到session中。至于页面的显示,就靠sql语名完成吧。
      

  6.   

    to djinzaghi(java) 
    能不能说详细一点,在页面的显示上。
      

  7.   

    我是在登录后,把级别设在session中,现在
    的问题是在加载页面时,进行权限判断的时候,
    功能号不放在页面中的话,有其它更好的办法吧
      

  8.   

    这里有精彩的论述:
    http://www.jdon.com:81/jive/article.jsp?forum=46&thread=2897
      

  9.   

    在页面显示也就是用<%......%> 和html把result按需要的格式(通过html和jsp脚本片断来实现)表示出来的。
      

  10.   

    关于jsp页面的权限管理应该存在一个层次:
    我现在把它们分为三个层次
     1 应用或目录的访问权,主要是通过判断是否登陆来决定,同时获得用户登陆信息。这个实现通过配置jsp web server的安全管理来实现,在tomcat下已经提供了三种模式来实现,一般不必编程。只需配置就可以了。
     2 判断用户是否对具体页面有访问权,我认为在Filter中实现比较好,如果使用controller模式,就无法通过url直接访问资源,必须通过转发,但是页面上访问的资源种类多有图形、css文件、js文件等等,这样要不就是服务器端配置比较乱,要不就是写页面时候比较麻烦。
     3 判断用户对数据或功能的权限,就必须写在页面中了。
      

  11.   

    请详细介绍如何用Filter实现权限控制。谢谢
      

  12.   

    这是我在Filter实现权限控制的模式 import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    import java.util.*;public class PurviewFilter implements Filter {
       private FilterConfig filterConfig;
      public void init(FilterConfig filterConfig) throws ServletException {
         this.filterConfig=filterConfig;
      }  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {    if (request instanceof HttpServletRequest) {
          HttpServletRequest req = (HttpServletRequest)request;      String userName =req.getRemoteUser();
          String resourcePath= req.getRequestURI();
          if(userName==null)
          {
              //没有登录用户处理          //return;
          }      if(!verifyUser(userName,resourcePath))
          {
              //用户没有资源使用权限处理         // return;
          }      chain.doFilter(request,response);
        }
      }  private boolean verifyUser(String userName,String resourcePath)
      {
          //在这里填写校验处理过程
          // 载入权限控制列表
          // 判断resourcePath是否在权限控制列表
          // 不在 表明resourcePath不被保护,返回true
          // 在
          //   判断用户是否有权限
          return false;
      }  public void destroy() {  }
    }
      

  13.   

    权限控制列表,可以有多种载入方式
      如果是使用tomcat4以上版本的话,可以做一个bean,配置成JNDI Resources,这样就可以使用了,这是当前的流行做法。例如
      Context initCtx = new InitialContext();
      Context envCtx = (Context) initCtx.lookup("java:comp/env");
      MyBean bean = (MyBean) envCtx.lookup("bean/MyBeanFactory");  还有你可以在ServletContextListener建立一个控制列表对象,这样
    你就可以读取了,这是我以前的用法。