电子购书商城
(一)创建Maven项目并配置Mybatis框架
(二)Login登录功能的实现
准备工作
- 写好要使用的实体pojo类。
- MySql数据库表中具体信息。
- mapper接口与映射文件。
映射文件中有Mysql数据库的sql语句。(项目中连接Mysql数据库时只需要sqlSession.getMapper得到映射文件即可)
service与servlet
- 在service包中写一个用户接口IUserService,这个接口中写登录或注册等与用户操作相关的方法。
/**
* 登录和注册的接口
* @author Elvira
*
*/
public interface IUserService {
/**
* 登录时比对数据库用户是否存在
* @param username
* @param password
* @return
*/
SUser findUser(String username, String password);
}
- 写一个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);
}
}
- 写一个登录的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数据库中的信息进行比对,比对成功则跳转到登录成功后的页面。