登陆的时候要把它的角色也select出来才能控制的
登陆的时候在数据库里把角色取出来然后进行判断然后进行跳转。
若是多个角色就给出连接让他自己选择好了

解决方案 »

  1.   

    你都已经有用户权限了。 那就在session里加入用户的信息。 客户端提交请求时, 先看session的用户信息, ok? 安权限跳转。
      

  2.   

    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.sql.*;
     
    /*使用数据库连接池的Servlet*/
    public class Admin_loginServlet extends HttpServlet 
    {

    protected void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException 
    {
    HttpSession session=request.getSession();
    response.setContentType("text/html;charset=GBK");

    /*获得用户名及密码*/
    String SName=request.getParameter("SName");
    String Password=request.getParameter("Password");
    Connection connection;
    if(SName==null)
    {
    response.sendRedirect("../Adminerror.jsp?errmsg=用户名为空");
    System.out.println("用户名为空");
    }

    AdminBean AdminBean=new AdminBean();
    if(!AdminBean.SelectSName(SName))
    {
    response.sendRedirect("../Adminerror.jsp?errmsg=登陆出错,用户名不对");
    System.out.println("登陆出错,用户名不对");
    }
    else
    {
    if(!(AdminBean.getPassword().trim()).equals(Password))
    {
    response.sendRedirect("../Adminerror.jsp?errmsg=登陆出错,密码不对");
    System.out.println("登陆出错,密码不对");
    }
    else
    {
    session.setAttribute("username",SName);
    response.sendRedirect("../admin_index.jsp");
    System.out.println("管理登陆正常");
    return;
    }
    }
    AdminBean.closeConnection();

    }
    }
      

  3.   

    建议你增加一个配置文件,给不同角色分配不同的页面,在servlet中把角色取出来,然后根据角色从配置文件中读出分配的页面,再做转向
      

  4.   

    谢谢各位。
    不过我觉得没有那么简单吧。
    1.每种用户都必须进入自己相关的页面,每个页面所包含的功能模块是不一样的,也就是说页面是不一样的,这应该如何解决,难道用JSP?
    2.每个独立的功能页面也是分权限的,有的按钮可见,有的按钮不可见,这又如何实现呢?
    实际上,我的servlet与浏览器的通信采用一种统一的格式,请求参数中用Action来定义功能分类,然后紧跟其他参数继续细化,为了便于servlet分析权限,是不是还要传递一个用户名?我是头次作web应用,请大家纳谏。
      

  5.   

    1.每种用户都必须进入自己相关的页面,每个页面所包含的功能模块是不一样的,也就是说页面是不一样的,这应该如何解决,难道用JSP?对,权限类根据登陆用户检索其权限,页面中判断,有的话则允许进入页面,没有该页面中模块的任何权限则转向2.每个独立的功能页面也是分权限的,有的按钮可见,有的按钮不可见,这又如何实现呢?
    实际上,我的servlet与浏览器的通信采用一种统一的格式,请求参数中用Action来定义功能分类,然后紧跟其他参数继续细化,为了便于servlet分析权限,是不是还要传递一个用户名?我是头次作web应用,请大家纳谏。根据个人拥有的不同权限决定按钮的可见性获可用性求参数中用Action来定义功能分类,然后紧跟其他参数继续细化,为了便于servlet分析权限,是不是还要传递一个用户名?这句详细些?什么意思
      

  6.   

    在权限控制方面,你应该采用struts + filter,通过filter来过滤,
    zwxu(zwxu)说的
    建议你增加一个配置文件,给不同角色分配不同的页面,在servlet中把角色取出来,然后根据角色从配置文件中读出分配的页面,再做转向不错,可以在filter中实现
      

  7.   

    分四种实体user : 用户信息,这里只保存必要的信息(比如登录名和密码)。因为你要重用嘛。和具体系统有关的用户信息不要保存在这里,提供一个关联即可userGroup : 用户组。 和用户是一对多关系。一个userGroup里保存多个用户role : 角色。 就是你通过需求分析出来的系统有哪些角色。 一个角色里可以保存多个用户组。Resource : 资源。就是系统有哪些功能。 resource是和role有关系的。 在需求时就可以确定什么样的角色可以有哪些功能。一个role里可以有多个resource。这样通过四种实体的关系,可以得到一个用户有哪些功能。
    做一个通用的模块把上面这四种实体维护起来到数据库中。 (这个一点也不难)
    定义好这个模块对外的接口。以提供外部调用。 在你的权限模块加一个单独的类,提供一个静态的验证的方法。比如 boolean hasResource(String userId, String resourceId);提供一个用户,和一个要验证的资源。 如果该用户有权限返回true,否则返回false,以便在其它模块里使用这个方法来判断用户是否有权限。至于你是不是要一次把该用户所有权限都取出来,然后相应的显示菜单了什么的。 看你的需要,加一个取指定用户全部resource方法可能较好。
    这种实现的好处是设计相对简单,并在权限设置上有很大的灵活性,而且有一定的重用价值。(我们已经用在不同的项目中了)。
    整个权限模块只有一个方法和其实模块有偶合,就是那个验证是否有权限的方法
    boolean hasResource(String userId, String resourceId);坏处是这种实现对数据库来说也要复用。 因为这个权限模块所对应的表结构已经定下来了。所以如果想在其它项目中用这个模块,其相应的表也得放入这个项目中(不过这几个表非常独立,不会影响太大)。
    借用别人的,感觉这个权限分配不错啊,当然只是一个思路具体的需要楼主自己写了哦
    (我也在自己写呢呵呵)
      

  8.   

    hocus(争取增肥10公斤) 说的是用STRUTS来做吧?
    现在感觉很多都是想 hocus(争取增肥10公斤) 说的这样啊
      

  9.   

    求参数中用Action来定义功能分类,然后紧跟其他参数继续细化,为了便于servlet分析权限,是不是还要传递一个用户名?抱歉,我没说清楚。我的系统一共有5个模块。每个模块都有增加,删除,修改数据等基本操作,提交请求时,用了一个参数名为“action”的参数来表示每个模块,还有其他的参数表示更细化的功能。比如:提交参数:<url>?action="msg"&operation="delete"&id="100"
    action表示消息模块,operation表示删除操作,id表示消息ID。我想了想,其实没必要这样传递用户名。这个可以在session中记录用户名。后来我和我的同事讨论了一下,可以用JSP来表示用户页面。
    流程是这样的,用户登录-〉servlet把权限数据传给一个jsp-〉jsp将每个模块的链接列出来。没有前述的复杂了。不过,作为学习,我还是想听听大家的意见,谢谢。
      

  10.   

    可以利用filter技术可以细讲么?
      

  11.   

    xinshou1979330(Success.java) :
    谢谢回帖。
    实际上你讲是如何在后台实现权限管理,但并没有说明在表示层如何实现。
      

  12.   

    可以参照servlet2.3规范中的filter技术,写一个权限控制filter。
      

  13.   

    定义用户的时候肯定是分角色的吧
    通过登录用户的角色,跳转到相应的页面,同时将用户信息放入Session
    每个jsp页面用JavaBean检验Session中用户角色是否有权访问
    或者用FilterServlet