Jsp+mysql a)注册页面中需要输入用户名、密码、确认密码以及身份的选择和验证码的输入。 b) 注册页面中的每个输入均需判断是否为空,为空进行提示。 C) 注册的用户名必须是从未有人注册的,如已有,请提示:“用户名已存在!” d)用户名必须满足当身份为教师时长度为5位,当身份为学生时长度为9位,当身份为管理员时长度为13位。 e)密码和确认密码必须保持一致,否则,请提示:“两次输入的密码不一致!”。 f) 验证码为4位随机数字,当输入不正确时,请提示:“验证码输入错误!” g) 以上条件均满足,请跳转至登录页面。 h) 数据库请自行设计。 代码
时间: 2024-02-11 09:03:46 浏览: 152
以下是一个基本的 JSP 和 MySQL 注册页面的代码示例,其中包含上述所有要求:
index.jsp:
```html
<!DOCTYPE html>
<html>
<head>
<title>注册页面</title>
</head>
<body>
<form action="register.jsp" method="post">
<label>用户名:</label>
<input type="text" name="username"><br><br>
<label>密码:</label>
<input type="password" name="password"><br><br>
<label>确认密码:</label>
<input type="password" name="confirmPassword"><br><br>
<label>身份:</label>
<select name="role">
<option value="teacher">教师</option>
<option value="student">学生</option>
<option value="admin">管理员</option>
</select><br><br>
<label>验证码:</label>
<input type="text" name="captcha"><br><br>
<img src="captcha.jsp" alt="验证码"><br><br>
<input type="submit" value="注册">
</form>
</body>
</html>
```
register.jsp:
```java
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ page import="java.sql.*, java.util.*, java.io.*" %>
<%
String username = request.getParameter("username");
String password = request.getParameter("password");
String confirmPassword = request.getParameter("confirmPassword");
String role = request.getParameter("role");
String captcha = request.getParameter("captcha");
// 检查每个输入是否为空
if (username == null || username.trim().equals("")) {
out.println("请输入用户名!");
return;
}
if (password == null || password.trim().equals("")) {
out.println("请输入密码!");
return;
}
if (confirmPassword == null || confirmPassword.trim().equals("")) {
out.println("请输入确认密码!");
return;
}
if (captcha == null || captcha.trim().equals("")) {
out.println("请输入验证码!");
return;
}
// 检查密码和确认密码是否相同
if (!password.equals(confirmPassword)) {
out.println("两次输入的密码不一致!");
return;
}
// 检查验证码是否正确
HttpSession session = request.getSession();
String captchaString = (String) session.getAttribute("captcha");
if (!captcha.equals(captchaString)) {
out.println("验证码输入错误!");
return;
}
// 检查用户名是否已存在
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "password");
ps = conn.prepareStatement("SELECT * FROM users WHERE username=?");
ps.setString(1, username);
rs = ps.executeQuery();
if (rs.next()) {
out.println("用户名已存在!");
return;
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
// 检查用户名长度是否符合要求
int usernameLength = 0;
if (role.equals("teacher")) {
usernameLength = 5;
} else if (role.equals("student")) {
usernameLength = 9;
} else if (role.equals("admin")) {
usernameLength = 13;
}
if (username.length() != usernameLength) {
out.println("用户名长度不正确!");
return;
}
// 保存用户信息到数据库
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "password");
ps = conn.prepareStatement("INSERT INTO users (username, password, role) VALUES (?, ?, ?)");
ps.setString(1, username);
ps.setString(2, password);
ps.setString(3, role);
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
// 跳转到登录页面
response.sendRedirect("login.jsp");
%>
```
captcha.jsp:
```java
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%
Random random = new Random();
int captcha = random.nextInt(9000) + 1000;
HttpSession session = request.getSession();
session.setAttribute("captcha", String.valueOf(captcha));
out.println(captcha);
%>
```
在 MySQL 中创建一个名为 "users" 的表,包含列 "id"、"username"、"password" 和 "role",并将代码中的数据库连接信息修改为您自己的数据库连接信息。
总之,这个示例代码演示了如何创建一个 JSP 和 MySQL 的注册页面,并验证和保存用户输入的值。
阅读全文