前言
本文介绍了用户信息登录、增删改查等操作,也包含了相对复杂的删除选中功能、分页功能和复杂条件查询功能。
一、所用jar包

二、整体框架

三、用户登录
3.1登录展示

3.2基本思路
1.获取输入的验证码,与生成的验证码比较,不一致则报出验证码错误,跳转到login.jsp页面,一致则进行下一步。
2.获取输入的用户名与密码,与数据库中的数据比较,有则跳转到list.jsp页面,无则报出用户名或密码错误,跳转到login.jsp页面。
注意:每生成一个验证码都要进行属性的删除,作用是避免验证码重复。
3.3LoginServlet代码
package web.servlet;
import domain.User;
import org.apache.commons.beanutils.BeanUtils;
import service.Impl.UserServiceImpl;
import 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 javax.servlet.http.HttpSession;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.Map;
@WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置编码
request.setCharacterEncoding("utf-8");
//获取验证码
String verifycode = request.getParameter("verifycode");
HttpSession session = request.getSession();
String checkcode_server = (String) session.getAttribute("CHECKCODE_SERVER");
//避免验证码重复
session.removeAttribute("CHECKCODE_SERVER");
//判断验证码是否一致
if (!checkcode_server.equalsIgnoreCase(verifycode)){
//验证码错误
request.setAttribute("login_msg","验证码错误!");
request.getRequestDispatcher("/login.jsp").forward(request,response);
return;
}
Map<String, String[]> map = request.getParameterMap();
User user=new User();
try {
BeanUtils.populate(user,map);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
UserService service=new UserServiceImpl();
User login_user=service.login(user);
if (login_user==null){
//用户名或密码错误
request.setAttribute("login_msg","用户名或密码错误!");
request.getRequestDispatcher("/login.jsp").forward(request,response);
}else {
//登录成功,返回index.jsp
request.getSession().setAttribute("user",user);
response.sendRedirect(request.getContextPath()+"/index.jsp");
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request,response);
}
}
四、用户列表展示
4.1 列表模糊查询+分页展示

4.2PageBean对象
作用:用于存储数据。

4.3基本思路
1.在FindUserByPageServlet中获取当前页码(currentPage)、每页条数(rows)参数和所有参数集合(map)。
2.调用UserServiceImpl实现类中的findUserByPage(currentPage,rows,map)实现数据的分页
3.在findUserByPage(currentPage,rows,map)方法中调用UserDaoImpl中的findUserByPage(currentPage,rows,map)来访问数据库中的数据。
4.转发到list.jsp页面
4.4FindUserByPageServlet代码
package web.servlet;
import domain.PageBean;
import domain.User;
import service.Impl.UserServiceImpl;
import 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.Map;
@WebServlet("/findUserByPageServlet")
public class FindUserByPageServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException

本文详细阐述了web应用中用户信息的查询、登录、添加、修改和删除操作,包括分页查询、验证机制和JavaScript交互。涵盖了Servlet、Service、DAO层的实现,以及与前端页面的交互逻辑。
最低0.47元/天 解锁文章

6381

被折叠的 条评论
为什么被折叠?



