2014-02-11 99 views
0

多用户登录页面我有由具有3个字段的登录页即index.jsp的:创建使用Servlet和JSP

1.>用户类型选择标记(它包括管理员,EMP,PROJ统筹, PROJ。经理) 2>用户名文本框 3>密码文本框

登录按钮

现在的问题是,我有不同的用户(管理员,EMP,凸出,统筹,凸出不同的表。经理)用他们的用户名和密码。

因此,是否有任何步骤明智的过程来验证使用servlet和jsp的多用户登录。

我m能够成功地为单个用户运行(仅用于用户名和密码),但无法为多用户。

+1

这是你的数据库设计的问题。使它完美。 – Kris

+0

您的设计存在缺陷。但为了给你提示,你可以根据用户的用户类型选择'if-else',你可以查找不同的表。 –

+0

@PradeepSimha说db设计有一个缺陷,然后建议OP引入_another_缺陷并不一定是有建设性的。至少它应该是一个'enum',它拥有正确的'PreparedStatement'。 –

回答

2

假设在控制器,你在变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:

  • 这是简单的和/或浅的类层次结构一个很好的策略,其中有层次结构中的类型之间几乎没有重叠。
+0

你可能想解释为什么这是一个非常糟糕的主意并不成功,只是为了让OP得到消息。 –

+0

@BoristheSpider绝对是。我会尝试 –

0

在你的情况最有可能有两个approahes

1)您可以手动创建查询以上

2)您可以创建一个包含用户类型的表说,(它包括管理,EMP,项目协调员,项目经理)及其相关表格。因此,在控制,当你获得所需的信息

但是,这将是一个开销,并为新的用户类型,你必须重新创建用户。因此,如果您有一个存储所有用户名和密码的表,并且对于用户类型可以添加新列,那么添加它会更好。