JSP如何做出用户和管理员同页面登录
时间: 2024-01-14 16:03:49 浏览: 29
1. 首先,需要在数据库中设计用户表和管理员表,分别存储用户和管理员的信息,包括用户名、密码等。
2. 在登录页面中,可以通过一个下拉框或者单选框来让用户选择登录身份,如下所示:
```
<form action="login.jsp" method="post">
<label>登录身份:</label>
<select name="identity">
<option value="user">用户</option>
<option value="admin">管理员</option>
</select>
<br>
<label>用户名:</label>
<input type="text" name="username">
<br>
<label>密码:</label>
<input type="password" name="password">
<br>
<input type="submit" value="登录">
</form>
```
3. 在login.jsp页面中,可以根据用户选择的身份来判断是用户登录还是管理员登录,如下所示:
```
<%
String identity = request.getParameter("identity");
String username = request.getParameter("username");
String password = request.getParameter("password");
if("user".equals(identity)){
// 用户登录逻辑
}else if("admin".equals(identity)){
// 管理员登录逻辑
}else{
// 其他错误提示
}
%>
```
4. 在用户登录逻辑和管理员登录逻辑中,可以分别查询用户表和管理员表,判断用户名和密码是否正确,如下所示:
```
// 用户登录逻辑
String sql = "select * from user where username=? and password=?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, username);
pstmt.setString(2, password);
ResultSet rs = pstmt.executeQuery();
if(rs.next()){
// 登录成功,跳转到用户首页
response.sendRedirect("user/index.jsp");
}else{
// 登录失败,返回登录页面并提示错误信息
request.setAttribute("error", "用户名或密码错误");
request.getRequestDispatcher("login.jsp").forward(request, response);
}
// 管理员登录逻辑
String sql = "select * from admin where username=? and password=?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, username);
pstmt.setString(2, password);
ResultSet rs = pstmt.executeQuery();
if(rs.next()){
// 登录成功,跳转到管理员首页
response.sendRedirect("admin/index.jsp");
}else{
// 登录失败,返回登录页面并提示错误信息
request.setAttribute("error", "用户名或密码错误");
request.getRequestDispatcher("login.jsp").forward(request, response);
}
```
5. 在用户首页和管理员首页中,可以显示不同的功能模块,如下所示:
```
// 用户首页
<html>
<head>
<title>用户首页</title>
</head>
<body>
<h1>欢迎您,用户<%=username%></h1>
<ul>
<li><a href="profile.jsp">个人资料</a></li>
<li><a href="order.jsp">我的订单</a></li>
<li><a href="logout.jsp">退出登录</a></li>
</ul>
</body>
</html>
// 管理员首页
<html>
<head>
<title>管理员首页</title>
</head>
<body>
<h1>欢迎您,管理员<%=username%></h1>
<ul>
<li><a href="user.jsp">用户管理</a></li>
<li><a href="order.jsp">订单管理</a></li>
<li><a href="logout.jsp">退出登录</a></li>
</ul>
</body>
</html>
```
6. 在退出登录功能中,可以使用session来清除用户或管理员的登录状态,如下所示:
```
// 退出登录逻辑
session.invalidate(); // 清除session中的数据
response.sendRedirect("login.jsp"); // 跳转到登录页面
```