1. 新建web项目 Shop_SM
2. 复制Shop资源和相关代码,实现注册功能
回顾当前配置下的加载顺序
1.MyBatis的主配置文件mybatis-config.xml (在根目录下)和 工具类MyBatisUtil(注意总配置文件的路径)

2.实体类(User)

3.dao层(UserMapper.xml,UserDao接口)
3.1 Mapper文件
UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nz.dao.UserDao">
<!--启用缓存-->
<cache></cache>
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.nz.entity.User">
<id column="uid" property="uid" />
<result column="username" property="username" />
<result column="password" property="password" />
<result column="nickname" property="nickName" />
<result column="create_time" property="createTime" />
</resultMap>
<!-- 查询list -->
<select id="selectList" resultMap="BaseResultMap">
select * from user
</select>
<!--添加-->
<insert id="insertUser">
insert into user(username,password,nickname)
values(#{username},#{password},#{nickName})
</insert>
</mapper>
3.2 dao接口
UserDao
package com.nz.dao;
import com.nz.entity.User;
import java.util.List;
public interface UserDao {
//查询
public List<User> selectList();
//添加
public int insertUser(User user);
}
4.service层(UserService,UserServiceImpl)
4.1 Service接口
UserService
package com.nz.service;
import com.nz.entity.User;
import java.util.List;
public interface UserService {
//查询
public List<User> queryList();
//注册
public boolean addUser(User user);
}
4.2 Service实现
UserServiceImpl
package com.nz.service.impl;
import com.nz.dao.UserDao;
import com.nz.entity.User;
import com.nz.service.UserService;
import com.nz.util.MyBatisUtil;
import org.apache.ibatis.session.SqlSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl implements UserService {
//查询
@Override
public List<User> queryList() {
SqlSession sqlSession = MyBatisUtil.getSqlSession();
UserDao userDao = sqlSession.getMapper(UserDao.class);
List<User> list = userDao.selectList();
System.out.print("userDao:"+userDao);
return list;
}
//增加
@Override
public boolean addUser(User user) {
SqlSession sqlSession = MyBatisUtil.getSqlSession();
UserDao userDao = sqlSession.getMapper(UserDao.class);
int i = userDao.insertUser(user);
sqlSession.commit();
return true;
}
}
5.测试端(TestJunit)
package com.nz.test;
import com.nz.entity.User;
import com.nz.service.UserService;
import com.nz.service.impl.UserServiceImpl;
import org.junit.Test;
import java.util.List;
/**
* Created by 86185 on 2023/2/1.
*/
public class TestJunit {
@Test
public void method(){
UserService userService = new UserServiceImpl();
List<User> list = userService.queryList();
User user = list.get(1);
boolean b1 = userService.addUser(user);
System.out.print(b1);
}
}
实现注册
注册跳转的页面是

uri是 /user/register
2. servlet内建UserRegisterServlet,实现跳转
@WebServlet("/user/register")需要与userRegister内的 /user/register 保持一致(如上方图)若不一致,则跳转失败
UserRegisterServlet代码如下:
package com.nz.servlet;
import com.nz.entity.User;
import com.nz.service.UserService;
import com.nz.service.impl.UserServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* Created by 86185 on 2023/2/1.
*/
@WebServlet("/user/register")
public class UserRegisterServlet extends HttpServlet {
public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.print("this is user register");
//处理请求乱码
req.setCharacterEncoding("utf-8");
//处理响应乱码
resp.setContentType("text/html;charset=utf-8");
//获得前台参数
String username = req.getParameter("cliName");
String nickName = req.getParameter("cliRealname");
String password = req.getParameter("cliPassword1");
User user = new User();
user.setUsername(username);
user.setNickName(nickName);
user.setPassword(password);
//逻辑
UserService userService = new UserServiceImpl();
boolean b1 = userService.addUser(user);
//携带User参数
req.setAttribute("user",user);
//转发到registerOk页面
req.getRequestDispatcher("/user/registerOk.jsp").forward(req,resp);
}
}
3.在实现跳转的UserRegisterServlet内打一个断点,可以看到注册的账号密码等

运行之后,进入云音乐登陆页面
http://127.0.0.1:6060/login.jsp

5.点注册跳转到用户注册页面userRegister
http://127.0.0.1:6060/user/userRegister.jsp
输入完成后点击注册即可注册成功

