JAVA如何设计一个页面,能够在登陆时识别不同的类型的用户?

教务系统,有学生表,教师表,注册的时候我设置了一个选项按钮来区别学生和教师的注册,0是教师,1是学生,根据这个来保存到不同的数据表中。

但现在问题是,我如何在登陆的时候,不设置什么选项按钮,不用用户名来判断,直接输入用户名和密码,能够判断是老师登录还是学生登录,从而去对应的数据表进行验证

首先给楼主泼个冷水,如果不做任何改变,你这个问题的答案是不可能做到。仅通过账号是不可能找到对应的表。

如果可以的话建议楼主重新设计表结构和逻辑。这样的设计有一定的问题,账号应该跟角色分开。这是后话了。

上面讲了如果不做改变的话,如果可以改变,可以在学生表和教师表之外再做一个账号关联角色关联表
1,关联表中存储账号和角色的关联关系,当然此时账号与角色一定是一对一的关系
2,注册的时候再原有逻辑基础上再往关联表中插入一个记录,记录账号是什么角色
3,登陆的时候先查账号的角色,这样就能找到是什么表,然后在用户账号+密码去对应的表验证

把老师的账号前缀设置成T,学生的账号前缀设置成S,
只要他输入完成,比如:T-0001(学生),就能根据前缀进行识别。

登录时根据登录信息到数据库查询

这种需求都不是在页面上实现的,你在设计数据库的时候就应该有一个权限表,每个用户在注册的时候,就会提供自己的身份,根据这个身份给予权限,登录的时候根据权限展示不同的页面,有些东西只能老师看到和修改,有些只能学生看到和修改

权限模块用的什么框架啊,在框架的拦截器里面判断权限然后根据权限显示不同的页面试试可以吗

你登录成功,展示主页的时候更具权限展示就行了,安全的话就在后台加权限验证就可以了

【1】加标志位
比如学生的id为:100001,100002等等,,老师的id:200001,200002,,只要能通过标志区分就行

【2】根据id长度判断
老师人数一般情况下会远小于学生人数,所以设置id可以比学生少一位,是不是就能够判断了

登录时如果不设置任何标志位的话,只根据用户名和密码去查的话只能2个表都查。而且老师的用户名,密码和学生的用户名密码是允许有重复的。所以这里为什么不在登录的时候设置标志位呢,或者点击超链接的时候就将学生和老师区分开呢

你为啥教师表学生表分两个表,没意义啊,在一个表里不就行了

怎么会有这么奇葩的逻辑性毛病的问题。。。

用户表 ID 用户名 密码 类别 状态等
角色表: 角色ID 角色
用户角色表: 用户ID 角色ID
角色权限表: 角色ID 权限

差不多就这个意思