在JSP中,利用学生登录系统login.html的信息查询数据库db的表student(stdId,Pwd),如果存在登录成功,否则重新登录。
时间: 2024-12-12 08:26:35 浏览: 6
在JSP页面中实现这样的功能,通常会涉及前端用户输入验证、数据提交到服务器以及后端的数据库交互。以下是步骤的一个简要概述:
1. **HTML部分 (login.html)**:
- 创建一个登录表单,包括stdId(学号)和Pwd(密码)输入字段,以及登录按钮。
```html
<form action="login.jsp" method="post">
<input type="text" name="stdId" placeholder="学号" required>
<input type="password" name="pwd" placeholder="密码" required>
<button type="submit">登录</button>
</form>
```
2. **JSP部分 (login.jsp)**:
- 使用EL表达式或JSTL标签(如`<c:if>`)检查提交的数据,并通过HTTP POST请求将数据发送到Servlet。
```jsp
<%@ page import="java.sql.*" %>
<%
String stdId = request.getParameter("stdId");
String pwd = request.getParameter("pwd");
// 连接到数据库
Connection conn = null;
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost/db", "username", "password");
PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM student WHERE stdId = ? AND Pwd = ?");
pstmt.setString(1, stdId);
pstmt.setString(2, pwd);
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
// 登录成功,处理后续操作
out.println("登录成功!");
} else {
// 登录失败,显示错误消息并跳转回登录页面
request.setAttribute("errorMsg", "用户名或密码错误");
response.sendRedirect("login.html");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (conn != null) try { conn.close(); } catch (SQLException e) {}
}
%>
```
3. **相关问题--:**
1. JSP如何避免SQL注入攻击?
2. 如何优化数据库查询性能?
3. JSP与Servlet的区别是什么?
阅读全文