【电子购书商城】(二)Login登录功能的实现

本文介绍电子购书商城系统中Login登录功能的实现过程,包括准备工作,如定义实体类、数据库表结构、mapper接口和映射文件;然后在service层编写IUserService接口及其实现类UserServiceImpl,最后在servlet中处理登录请求,实现用户信息与数据库的比对,成功后跳转至登录成功页面。
摘要由CSDN通过智能技术生成

电子购书商城

(一)创建Maven项目并配置Mybatis框架

(二)Login登录功能的实现

准备工作

  1. 写好要使用的实体pojo类。
  2. MySql数据库表中具体信息。
    在这里插入图片描述
  3. mapper接口与映射文件。
    映射文件中有Mysql数据库的sql语句。(项目中连接Mysql数据库时只需要sqlSession.getMapper得到映射文件即可)

service与servlet

  1. 在service包中写一个用户接口IUserService,这个接口中写登录或注册等与用户操作相关的方法。
/**
 * 登录和注册的接口
 * @author Elvira
 *
 */
public interface IUserService {
	/**
	 * 登录时比对数据库用户是否存在
	 * @param username
	 * @param password
	 * @return
	 */
	SUser findUser(String username, String password);
}
  1. 写一个IUserService接口的实现类UserServiceImpl。这个类中写具体的方法该如何实现。
public class UserServiceImpl {

	SqlSession sqlSession = null;
	SUserMapper mapper = null;

	public UserServiceImpl() {
		sqlSession = MyBatisSqlSessionFactory.openSession();
		mapper = sqlSession.getMapper(SUserMapper.class);
	}

	// 登录的方法
	public SUser findUser(String username, String password) {
		SUserExample example = new SUserExample();
		example.createCriteria().andUsernameEqualTo(username).andPasswordEqualTo(password);
		List<SUser> list = mapper.selectByExample(example);
		return list.get(0);
	}
}
  1. 写一个登录的servlet:LoginServlet。重写doGet方法。
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		// 1、获得用户名和密码
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		// 2、从数据库中验证该用户名和密码是否正确
		SUser user = new UserServiceImpl().findUser(username, password);
		// 3、根据返回的结果给用户不同显示信息
		if (user != null) {
			// 用户登录成功
			request.getSession().setAttribute("user", user);
			response.sendRedirect("/estore_project/indexSuccess");
		} else {
			// 用户登录失败
			response.getWriter().write("your username or password is wrong");
		}
	}

运行结果

点击登录时,action将表单中username与password信息提交给登录的servlet,在servlet中将信息与Mysql数据库中的信息进行比对,比对成功则跳转到登录成功后的页面。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值