注册页面
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="/java_web/register" method="post">
用户名:<input type="text" name="username"/><br>
密码:<input type="password" name="password"/><br>
性别:男<input type="radio" name="gander" value="male">
女<input type="radio" name="gander" value="female"><br>
<input type="submit" value="提交"/>
</form>
</body>
</html>
注册servlet
package demo;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.Arrays;
import java.util.Iterator;
import java.util.Map;
import java.util.UUID;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.beanutils.BeanUtils;
import domain.User;
public class Register extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置POST方式request编码,
request.setCharacterEncoding("UTF-8");
//用户实例
User user = new User();
//设置userID(因为form中无此参数)
user.setId(UUID.randomUUID().toString());
//获得post参数map
Map<String, String[]> properties = request.getParameterMap();
//使用BeanUtils.populate来封装post参数到User类
try {
BeanUtils.populate(user, properties);
} catch (IllegalAccessException | InvocationTargetException e) {
e.printStackTrace();
}
//对比用户是否存在
User userFlag = UserService.isExist(user);
User registeredUser = null;
//判断用户是否存在
if(userFlag == null) {
//开始注册
registeredUser = UserService.register(user);
if(registeredUser != null) {
System.out.println("注册成功");
response.sendRedirect(request.getContextPath()+"/request/login.jsp");
}else {
System.out.println("注册异常");
}
}else {
System.out.println(user.getUsername() + "该用户已存在");
request.getRequestDispatcher("/request/reg.html").forward(request, response);
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
longin.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
<h3>请登录:</h3>
<h4><%=request.getAttribute("msg")!=null?request.getAttribute("msg"):""%></h4>
<form action="/java_web/Login" method="post">
<input type="text" name="username" /><br/>
<input type="password" name="password" /><br/>
<input type="submit" value="登录" /><br/>
</from>
</body>
</html>
longin Servlet
package demo;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import domain.User;
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public LoginServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
//获得request传来的参数
String username = request.getParameter("username");
String password = request.getParameter("password");
//封装到User类
User user = new User();
user.setUsername(username);
user.setPassword(password);
//查询用户是否存在
UserService us = new UserService();
User userFlag = us.login(user);
//response反馈
if(userFlag != null) {
response.getWriter().println("User:" + username + "登录成功!");
}else {
// response.getWriter().println("用户不存在或密码错误!");
request.setAttribute("msg", "用户不存在或密码错误!");
request.getRequestDispatcher("/request/login.jsp").forward(request, response);
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
userDAO
package DBUtils;
import java.sql.SQLException;
import java.util.Arrays;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import domain.User;
public class UserDAO {
private static QueryRunner qr = null;
static {
qr = new QueryRunner(C3P0Utils.getDataSource());
}
public static User isExist(User user) {
/*
* 查询用户是否存在
*/
String sql = "select * from user where username=?";
try {
return qr.query(sql, new BeanHandler<User>(User.class), user.getUsername());
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
public static User register(User user) {
/*
* 用户注册方法
*/
try {
String sql = "insert into user values(?,?,?,?)";
Object[] params = {user.getId(), user.getUsername(), user.getPassword(), user.getGander()};
System.out.println("--------------------------------");
System.out.println(Arrays.toString(params));
int row = qr.update(sql, params);
if(row > 0) {
return user;
}else {
return null;
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
userService
package demo;
import DBUtils.UserDAO;
import domain.User;
public class UserService {
private DAO dao = new DAO();
public User login(User user) {
//调用DAO中的登录函数
return dao.lgoin(user);
}
public static User isExist(User user) {
return UserDAO.isExist(user);
}
public static User register(User user) {
return UserDAO.register(user);
}
}