我现在有3种不同的角色1:root 2:user 3:supply
这3个角色的所有用户都在同一个表里 sys_user里
我现在输入一个用户ID进行登录,把登录的名字和密码传给一个servlet,来判断这个用户是root还是user或是supply。登录到不同的页面root.jsp,user.jsp,supply.jsp
我现在写了一个SQL,来判断哪个用户该登录到哪个页面
String sql = "select * from sys_user" ;
if ( !id.equals("") )
{
sql += " where ID = '" + ID +"'";
}
if( !id.equals("") )
{
sql += " where ID = '" + ID +"'";
}
if( !id.equals("") )
{
   sql += "where ID = '" + ID +"'";
} 我大概是这么想的,但是还是不太清除 怎么实现了 谢谢大家了

解决方案 »

  1.   

    先根据用户名密码查处这个人,然后判断 用户类型,根据类型决定jsp
      

  2.   

    response.sendRedirect(arg0)页面跳转
      

  3.   

    使用过滤器,web.xml
    <filter>      
    <filter-name>ManagerFilter</filter-name>
    <filter-class>filter.ManagerFilter</filter-class>
    <init-param>
    <param-name>employee</param-name>
    <param-value>/first.jsp,/second.jsp</param-value>
    </init-param>
    <init-param>
    <param-name>leader</param-name>
    <param-value>/gbk1.jsp,/gbk2.jsp</param-value>
    </init-param>
    </filter>在过滤器中   String em = config.getInitParameter("leader");
                 得到可以访问的页面,同时截取当前url 
                   String requestUri = request.getRequestURI();
    String uri = requestUri.substring(requestUri.lastIndexOf("/"));
    if(em.indexOf(requesturi)== -1)  他可以访问的页面不是当前url 不允许
      

  4.   

    String sql = "select a.C_Usr_Id,a.C_Usr_Name,a.C_Usr_Passwd from sys_usr a,sys_role_usr b,sys_roles c " ;
    if ( !supplyID.equals("") )
    {
     sql+="where a.C_Usr_Id = '" + supplyID + "'  and  a.C_Usr_Passwd ='" + supplyPWD +"' and a.C_Usr_ID=b.C_Usr_ID and c.C_Roles_ID=b.C_Role_ID and b.C_Role_ID='1'";
    }  root用户
    if(!supplyID.equals(""))
    {
    sql+="where a.C_Usr_Id = '" + supplyID + "'  and  a.C_Usr_Passwd ='" + supplyPWD +"' and where a.C_Usr_ID=b.C_Usr_ID and c.C_Roles_ID=b.C_Role_ID and b.C_Role_ID='2'";
    }      user用户
    else
    {
    sql+="where a.C_Usr_Id = '" + supplyID + "'  and  a.C_Usr_Passwd ='" + supplyPWD +"' and where a.C_Usr_ID=b.C_Usr_ID and c.C_Roles_ID=b.C_Role_ID and b.C_Role_ID='3'";  suulpy用户
    }
     rs = db.getSelectRs(sql);
    大家看看  这样写对吗?