java - 使用servlet和jsp创建多用户登录页面

标签 java jsp servlets

我有一个登录页面,即 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/

相关文章:

java - 如何在 JSP 中将错误消息打印到用户屏幕而不是标准输出?

java - 定期更新 WEB-INF 中的文件而不重新启动应用程序 - Google App Engine

Servlet 中的 java.util.ConcurrentModificationException

java - Servlet 中始终运行的线程

java - 使用 c :import in a . jsp 导入特定元素

java - 表达式的类型必须是数组类型,但它解析为 JSONArray

java - 用于生成 Java JNA 包装器的 jnaerator 的 SimpleMeaningfulExample 将不起作用

java - 网络 3 : websockets with SSL on Android

java - 如何读取不同Java项目中的属性文件?

java - 有没有比较 PHP 和 JSP 的基准?