多用户登录页面我有由具有3个字段的登录页即index.jsp的:创建使用Servlet和JSP
1.>用户类型选择标记(它包括管理员,EMP,PROJ统筹, PROJ。经理) 2>用户名文本框 3>密码文本框
登录按钮
现在的问题是,我有不同的用户(管理员,EMP,凸出,统筹,凸出不同的表。经理)用他们的用户名和密码。
因此,是否有任何步骤明智的过程来验证使用servlet和jsp的多用户登录。
我m能够成功地为单个用户运行(仅用于用户名和密码),但无法为多用户。
多用户登录页面我有由具有3个字段的登录页即index.jsp的:创建使用Servlet和JSP
1.>用户类型选择标记(它包括管理员,EMP,PROJ统筹, PROJ。经理) 2>用户名文本框 3>密码文本框
登录按钮
现在的问题是,我有不同的用户(管理员,EMP,凸出,统筹,凸出不同的表。经理)用他们的用户名和密码。
因此,是否有任何步骤明智的过程来验证使用servlet和jsp的多用户登录。
我m能够成功地为单个用户运行(仅用于用户名和密码),但无法为多用户。
假设在控制器,你在变type
得到用户类型,那么你可以手动创建查询,并从数据库中这样获取结果:
String query = "Select * from "+type+" where <Your condition>";
但是这是非常糟糕的主意来做到这一点。相反,你应该看看db中的继承。我想this将帮助你重组你的数据库。
为什么这是个坏主意?
让我们假设你有3种类型的用户当前在你的系统中说:管理员,员工和用户。
现在过了一段时间,如果您需要在系统中添加另一种类型的用户说HR,那么您必须执行哪些步骤:
1)为具有相同重复列的HR创建另一个表。
2)改变你的HR用户的Java文件的逻辑。
3)如果您对查询进行了硬编码,则扫描整个项目以获得相同效果。在DB继承
和好处:
只需插入数据库中记录与type = "HR"
和你做。不是很简单吗?
,仅供参考:
Advantages:
Disadvantages:
When to use:
你可能想解释为什么这是一个非常糟糕的主意并不成功,只是为了让OP得到消息。 –
@BoristheSpider绝对是。我会尝试 –
在你的情况最有可能有两个approahes
1)您可以手动创建查询以上
2)您可以创建一个包含用户类型的表说,(它包括管理,EMP,项目协调员,项目经理)及其相关表格。因此,在控制,当你获得所需的信息
但是,这将是一个开销,并为新的用户类型,你必须重新创建用户。因此,如果您有一个存储所有用户名和密码的表,并且对于用户类型可以添加新列,那么添加它会更好。
这是你的数据库设计的问题。使它完美。 – Kris
您的设计存在缺陷。但为了给你提示,你可以根据用户的用户类型选择'if-else',你可以查找不同的表。 –
@PradeepSimha说db设计有一个缺陷,然后建议OP引入_another_缺陷并不一定是有建设性的。至少它应该是一个'enum',它拥有正确的'PreparedStatement'。 –