要求实现以下功能:
用hibernate链接mysql数据库,里面有三张表:1.t_teacher;2.t_student;3.admin
当用户登录时,从数据库查相关信息,如果用户在第一张表里面,查询匹配成功后返回teacher.jsp这个页面
当该用户不在第一张表里的时候,开始查找第二张表,匹配成功后返回到student.jsp这个页面
如果用户不存在前两张表里面,则查询第三张表,匹配成功后返回一个中转页面(比如返回admin.jsp这个页面),里面有两个超链接,对应teacher.jsp和student.jsp这个页面.
如果该用户不存在三张表的任何一张表,页面弹出提示账号或密码错误还一个是过滤器,如果用户不登陆直接访问类似teacher.jsp之类的网页,做拦截,提示用户请先登陆,并返回登陆页面.

解决方案 »

  1.   

    你有没有想过这三个表其实可以整合到一张表里的,只是类型不一样而已,所以只要添加一个字段来区分是teacher还是别的类型,这样就只要查一次就可以了。如果你只是想试一下你自己的方法,可以这样:
    写一个方法,里面依次调用hibernate的查询方法,当然返回结果只要是true 或者 false就可以了。
    如果没有继续向下查询public String query(){
       if(query_teacher())
         return "has_teacher";
    }else if(query_student()){
         return "has_student";
    }else if(query_admin()){
         return "has_admin";
    }else rerurn "noresult";根据返回的不同的结果来进行不同的转发
      

  2.   

    登录成功时可以设置一个标示到session中,然后过滤器在doFilt里读取登录时设置到session中的值,如果有则正常跳转,若没有则返回登录页面.