JAVA-WEB HttpServletRequest-简单实现用户登录


注册页面

<!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);

	}
}

猜你喜欢

转载自blog.csdn.net/alexzt/article/details/80825858