JAVA-WEB Servlet 做简单的用户登录


假设数据库已经添加了用户表


在工程webcontent下准备一个登录页面login.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
	
	<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>


项目src文件夹下新建LonginServlet(如果用eclipse新建的servlet会自动在web.xml中添加此servlet标签如有需要修改下网站路径url-pattern)

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.setName(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("用户不存在或密码错误!");
		}
		

	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}

}


LoginServlet中用到的类

User类 - Java bean 全部用eclipse生成的没必要贴出来了

UserService类 - 提供了检测用户登录等功能的服务层类


package demo;

import domain.User;

public class UserService {
	
	private DAO dao = new DAO();
	
	public User login(User user) {
		//调用DAO中的登录函数
		return dao.lgoin(user);
	}
}

DAO类 - 数据访问对象(Data Access Object DAO) 将低级别的数据访问逻辑与高级别的业务逻辑分离的设计模式。

    DAO使用C3P0连接池与Apache JDBCUtil 

    连接池不会的             点击这里

    Apache JDBCUtil     点击这里

package demo;

import java.sql.SQLException;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;

import DBUtils.C3P0Utils;
import domain.User;

public class DAO {
	
	
	private static QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());;
	
	
	public User lgoin(User user) {
		/*
		 * 检测传入用户的帐号密码是否存在与数据库
		 * 存在返回该用户的bean
		 * 不存在返回null
		 */
		String sql = "select * from user where username=? and password=?";
		
		try {
			return qr.query(sql, new BeanHandler<domain.User>(domain.User.class), user.getName(),user.getPassword());
		} catch (SQLException e) {
			return null;
		}
		
	}

}

运行工程进入login.html

输入帐号密码测试成功。



猜你喜欢

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