效果图如下:
注册页面的register.jsp内容如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<meta charset="UTF-8"/>
<title>注册</title>
<link rel="stylesheet" type="text/css" href="css/basic.css?v=<%= System.currentTimeMillis()%>">
</head>
<body>
<div>
<h1>用户注册</h1>
<form action="register" method="POST">
<img src="img/login.png"><input type="text" name="username" placeholder="用户名..."/><br/><br/>
<img src="img/password.png"><input type="password" name="password" placeholder="密码..."/><br/><br/>
<input type="submit" value="注册">
<input type="reset" value="重置"><br><br>
<span>如果已经注册点击<a href="index.jsp"/>这里</a>登录!</span>
</form>
</div>
</body>
</html>
然后就是在UserDao.java添加一个插入用户对象的方法
/**
* 注册用户
*
* @param user 用户对象
* @return 返回受影响行数
*/
public int insertUser(User user) {
try {
// 获取数据库连接对象
Connection connection = JDBCUtils.getConnection();
// 数据库语句
String sql = "insert into users (username, password) values (?,?);";
// 创建数据库执行对象
PreparedStatement ps = connection.prepareStatement(sql);
// 设置参数
ps.setString(1, user.getUsername());
ps.setString(2, user.getPassword());
// 执行插入语句并返回受影响行
int i = ps.executeUpdate();
// 返回受影响行数
return i;
} catch (SQLException e) {
e.printStackTrace();
}
return 0;
}
对该方法进行测试,在UserDaoTest.java中添加如下代码:
/**
* 测试注册功能
*/
@Test
public void testInsertUser(){
User user=new User("张三","123456");
int i = userDao.insertUser(user);
System.out.println(i);
}
接下来就是写注册实现的RegisterServlet.java
package servlet;
import bean.User;
import dao.UserDao;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class RegisterServlet extends HttpServlet {
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) {
try {
// 获取注册的用户名
String name = request.getParameter("username");
// 获取注册的密码
String password = request.getParameter("password");
// 实例化用户对象并传入注册用户数据
User user = new User(name, password);
// 调用数据库的插入用户方法进行数据库插入数据并返回受影响行数
int i = new UserDao().insertUser(user);
// 如果受影响行数大于0即表示注册成功
if (i > 0) {
// 设置编码格式
response.setContentType("text/html;charset=UTF-8");
// 弹出注册成功的对话框,点击确定后跳转到登录页面
response.getWriter().print("<script>alert('注册成功!');window.location.href='index.jsp'</script>");
} else {
// 设置编码格式
response.setContentType("text/html;charset=UTF-8");
// 注册失败也弹出提示框
response.getWriter().print("<script>alert('注册失败!');window.location.href='register.jsp'</script>");
}
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
}
写好之后在web.xml中进行配置
<web-app>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!--登录Servlet-->
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/loginServlet</url-pattern>
</servlet-mapping>
<!--注册Servlet-->
<servlet>
<servlet-name>RegisterServlet</servlet-name>
<servlet-class>servlet.RegisterServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RegisterServlet</servlet-name>
<url-pattern>/register</url-pattern>
</servlet-mapping>
</web-app>
注册实现完成。
如果注册成功就会跳转到登录页面,如果注册失败仍然是注册页面。
点击确定跳转登录页面。
在上面只说明了注册功能的源码,如果对完整源码有兴趣。
可搜索微信公众号【Java实例程序】或者扫描下方二维码关注公众号获取更多。
注意:在公众号后台回复【CSDN201909260924】可获取本节源码。