我有一个登录页面,即 index.jsp,它有 3 个字段:
1.> 用户类型选择标签(包括admin、emp、proj. co-ordinator、proj. manager) 2.> 用户名文本框 3.> 密码文本框
登录按钮
现在的问题是我为不同的用户(admin、emp、proj.co-ordinator、proj.manager)及其用户名和密码设置了不同的表。
那么是否有任何逐步的过程来使用 servlet 和 jsp 验证多用户登录。
我能够成功地为单用户运行(例如仅用户名和密码),但无法为多用户运行。
最佳答案
假设在 Controller 中您在变量type
中获取用户类型,那么您可以手动创建查询并从数据库中获取结果,如下所示:
String query = "Select * from "+type+" where <Your condition>";
但是这样做确实是个坏主意。相反,您应该查看 db 中的继承。我猜this将帮助您重组数据库。
为什么这是个坏主意?
假设您的系统中当前有 3 种类型的用户:管理员、员工和用户。
现在一段时间后,如果您需要在系统中添加另一种类型的用户(例如 HR),那么您必须执行哪些步骤:
1) 为 HR 创建另一个具有相同重复列的表。
2) 为 HR 用户更改 java 文件中的逻辑。
3) 如果您对查询进行了硬编码,则扫描整个项目以获得相同的效果。
数据库继承的好处:
只需使用 type = "HR"
将记录插入数据库即可。是不是很简单?
仅供引用:
优点:
- 简单的方法。
- 易于添加新类,您只需为附加数据添加新列即可。
- 只需更改行的类型即可支持多态性。
- 数据访问速度很快,因为数据位于一张表中。
- 临时报告非常简单,因为所有数据都可以在一张表中找到。
缺点:
- 类层次结构内的耦合增加,因为所有类都直接耦合到同一个表。一个类中的更改可能会影响表,进而影响层次结构中的其他类。
- 数据库中可能会浪费空间。
- 表明当类型之间存在显着重叠时,类型变得复杂。
- 对于大型层次结构,表可以快速增长。
何时使用:
- 对于简单和/或浅层类层次结构来说,这是一个很好的策略,其中层次结构中的类型之间很少或没有重叠。
关于java - 使用servlet和jsp创建多用户登录页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21696857/