用于验证登录的jsp代码

时间:2011-04-01 03:36:29

标签: jsp

我需要做一个登录页面,只需1个登录表单即可验证3种不同类型的用户,即学生,讲师和管理员。 我有3张桌子是学生 - > metric,stu_name,stu_pass                          讲师 - > s_code,lec_name,lec_pass                          admin - > id,ad_name,ad_pass 我不知道如何编码。任何人都可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

首先,您需要设置数据库的结构,以便检查它们的用户类型。您可以将三个表合并为一个,然后添加用户类型。

Table: user 
userId   +    password    +   name       +   userType
10001    |    123456      |   Admin      |   STUDENT
10002    |    123456      |   LecturerA  |   LECTURER
10003    |    123456      |   StudentA   |   STUDENT

现在,在您的登录表单上,只需为userId和密码输入文本即可。

这里的关键是在验证期间获取用户类型。当然,您需要在查询中包含此内容。

示例(?是输入字段中的值)

SELECT name, userType FROM user WHERE userId = ? AND password = ?;

现在,对于页面我只会制作一个伪代码,这取决于你如何管理它。因为我不知道你将如何显示页面。

伪代码

If userType equal to null //This means invalid userId and password
    redirect to login and prompt user for invalid user and password
Else If userType equal to ADMIN
    Show the admin page
Else If userType equal to LECTURER
    Show the lecturer page
Else If userType equal to STUDENT
    Show the user page

有很多工作要做。但您可以将此作为起点,然后根据自己的开发需求进行最大化。

<强>更新:

在您的应用程序中进行编码阶段之前,请确保您已正确设计它。特别是在您的情况下,您需要使用不同模块的不同用户类型。您必须知道处理模块中用户权限的好方法。

示例:

样本结构

Table: user
userId  +  password   +   name
10001   |  123456     |   Admin
10002   |  123456     |   LecturerA
10003   |  123456     |   StudentA

Table: module
moduleCode   +   moduleName
MC0001       |   ADMIN     
MC0002       |   LECTURER
MC0003       |   STUDENT

Table: usermodule
uniqueId    +   userId   +   moduleCode
1           |   10001    |   MC0001
2           |   10001    |   MC0002
3           |   10002    |   MC0003
4           |   10003    |   MC0004

查询类似

SELECT 
      m.moduleName
   FROM user u 
  INNER JOIN usermodule um 
     ON u.userId = um.userId
   LEFT OUTER JOIN module m
     ON um.moduleCode = m.moduleCode
  WHERE u.userId = ? AND password = SHA1(?)

请注意,查询未经过测试,但它会是类似的。在这里,您将获得一个有权限的模块列表。

在实际业务中,您需要更多的表格。

答案 1 :(得分:1)

在html页面中使用此代码。

  <form method="post" id="loginform" name="form" action="cStaffLogin">

        <select name="UserRole" style="width:250px;">

        <option id="#">Select Role</option>
        <option id="ADMIN">ADMIN</option>
        <option id="LECTURER"> LECTURER</option>
        <option id="STUDENT"> STUDENT</option>

        </select>
    </form>

cStaffLogin

在Servlet中使用此代码

String strUserRole = request.getParameter("UserRole");

if(strUserRole.equals("ADMIN"))
{
RequestDispatcher RequetsDispatcherObj =request.getRequestDispatcher("/Admin.jsp");
RequetsDispatcherObj.forward(request, response);
}

if(strUserRole.equals("LECTURER"))
{
RequestDispatcher RequetsDispatcherObj =request.getRequestDispatcher("/Lecturer.jsp");
RequetsDispatcherObj.forward(request, response);
}

if(strUserRole.equals("STUDENT"))
{
RequestDispatcher RequetsDispatcherObj =request.getRequestDispatcher("/Student.jsp");
RequetsDispatcherObj.forward(request, response);
}

上面给出了最简单的解决方案.....

答案 2 :(得分:0)

太容易了。您创建一个下拉框,其中包含3种用户类型:学生,管理员,讲座。

如果您使用servlet作为控制器,当请求发送到控制器时,请检查下拉框的值是学生,管理员还是讲师。然后针对每种类型的用户执行您要验证的内容。

有一个新的一天