用户登录:前端传账号密码器到后端,后端拿去与数据库中的的用户表匹配,若账号密码一致,则登录成功;
修改用户数据:前端传修改的数据以及id值给后端,后端拿到这些数据去操作数据库,id值是用来作唯一标识的。
展示效果
功能1:用户登录
账号密码错误时显示
账号密码正确,登录成功,跳转到用户列表页。
功能2:点击修改,跳转到编辑页面并且回显数据
输入新的数据
点提交后跳回用户列表页
代码:
1.用户登录
项目环境搭建
目录结构
pom.xml文件
4.0.0 org.example MybtaisCrud-master1.0-SNAPSHOT war mysql mysql-connector-java5.1.32 org.mybatis mybatis3.5.5 javax.servlet javax.servlet-api3.1.0 javax.servlet.jsp jsp-api2.2 jstl jstl1.2
mybatis配置文件
sql代码
CREATE TABLE t_user( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAr(25), PASSWORD VARCHAr(25) );
编码
首先从Servlet 开始,创建LoginServlet.java类
package com.wufagnag.web;
import com.wufagnag.pojo.User;
import com.wufagnag.service.UserService;
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;
import java.util.List;
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = req.getParameter("username");
String password = req.getParameter("password");
UserService userService = new UserService();
User user = userService.findUser(username,password);
List users = userService.findAllUser();
if (user != null){
req.setAttribute("users",users);
req.getRequestDispatcher("list.jsp").forward(req,resp);
}else {
req.setAttribute("loginMagess","用户名和密码不匹配");
req.getRequestDispatcher("login.jsp").forward(req,resp);
}
}
}
接着是逻辑层的ServiceUser.java
package com.wufagnag.service;
import com.wufagnag.mapper.UserMapper;
import com.wufagnag.pojo.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.util.List;
public class UserService {
public User findUser(String username, String password) throws IOException {
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis.xml"));
SqlSession sqlSession = sqlSessionFactory.openSession(true);
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.selectUser(username, password);
return user;
}
public List findAllUser() throws IOException {
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis.xml"));
SqlSession sqlSession = sqlSessionFactory.openSession(true);
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
return mapper.selectAllUser();
}
}
UserMapper.java映射文件
package com.wufagnag.mapper;
import com.wufagnag.pojo.User;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.util.List;
public interface UserMapper {
@Select("select * from t_user where username = #{username} and password = #{password}")
public User selectUser(@Param("username") String username, @Param("password") String password);
@Select("select * from t_user")
List selectAllUser();
}
前端login.jsp页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
登录
会员登录USER LOGIN
${loginMagess}
前端页面list.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
用户列表
| 用户id | 用户名称 | 操作 |
|---|---|---|
| ${user.id} | ${user.username} |
修改 删除 |
2.修改用户数据
首先是查用户原来的值
UserByIdServlet.java通过用户的id值从数据库中获取用户数据
package com.wufagnag.web;
import com.wufagnag.pojo.User;
import com.wufagnag.service.UserService;
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;
@WebServlet("/selectUserById")
public class UserByIdServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String queryString = req.getQueryString();
String[] split = queryString.split("=");
String id = split[1];
User user = UserService.findUserById(id);
req.setAttribute("user",user);
req.getRequestDispatcher("updata.jsp").forward(req,resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
逻辑层的UserService.java中添加findUserById()方法,作用是根据前端传来的id值,获取数据库中与之对应的用户数据
public static User findUserById(String id) throws IOException {
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis.xml"));
SqlSession sqlSession = sqlSessionFactory.openSession(true);
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
return mapper.selectUserById(id);
}
UserMapper接口,添加根据id查用户的方法selectUserById()
@Select("select * from t_user where id = #{id}")
User selectUserById(String id);
即可查到用户原来的值
接下来是修改
创建UpdataServlet.java
package com.wufagnag.web;
import com.wufagnag.pojo.User;
import com.wufagnag.service.UserService;
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;
import java.util.List;
@WebServlet("/updata")
public class UpdataServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = req.getParameter("username");
String password = req.getParameter("password");
String id = req.getParameter("id");
UserService userService = new UserService();
userService.updata(new User(Integer.valueOf(id),username,password));
List users = userService.findAllUser();
req.setAttribute("users",users);
req.getRequestDispatcher("/list.jsp").forward(req,resp);
}
}
UserService.java添加updata()方法
public void updata(User user) throws IOException {
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis.xml"));
SqlSession sqlSession = sqlSessionFactory.openSession(true);
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.updata(user);
}
UserMapper接口添加updata()方法
@Update("update t_user set username = #{username},password = #{password} where id = #{id}")
void updata(User user);
即可完成修改功能
谢谢阅读!



