web简单案例-用户信息查询

web简单案例-用户信息查询,第1张

web简单案例-用户信息查询

文章目录
  • 前言
  • 一、所用jar包
  • 二、整体框架
  • 三、用户登录
    • 3.1登录展示
    • 3.2基本思路
    • 3.3LoginServlet代码
  • 四、用户列表展示
    • 4.1 列表模糊查询+分页展示
    • 4.2PageBean对象
    • 4.3基本思路
    • 4.4FindUserByPageServlet代码
    • 4.5UserServiceImpl类中的分页方法
    • 4.6 sql查询
    • 4.7 分页相关的 web界面
  • 五、添加 *** 作
    • 5.1 页面展示
    • 5.2基本思路
    • 5.3AddUserServlet代码
  • 六、修改 *** 作
    • 6.1页面展示
    • 6.2 基本思路
    • 6.3UpdateUserServlet代码
  • 七、删除 *** 作
    • 7.1 通过删除按钮进行删除
    • 7.2 通过删除选中按钮删除
    • 7.3 相应的web页面
    • 7.4 Javascript代码


前言

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


一、所用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 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, IOException {
        //获取参数
        String currentPage = request.getParameter("currentPage");
        String rows = request.getParameter("rows");
        if (currentPage==null||"".equals(currentPage)){
            currentPage="1";
        }
        if (rows==null||"".equals(rows)){
            rows="5";
        }

        Map map = request.getParameterMap();


        //调用函数
        UserService service=new UserServiceImpl();
        PageBean pb=service.findUserByPage(currentPage,rows,map);

        request.setAttribute("pb",pb);
        request.setAttribute("condition",map);
        System.out.println(pb);
        request.getRequestDispatcher("/list.jsp").forward(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request,response);
    }
}


4.5UserServiceImpl类中的分页方法
@Override
    public PageBean findUserByPage(String _currentPage, String _rows, Map map) {
        int currentPage = Integer.parseInt(_currentPage);
        int rows = Integer.parseInt(_rows);
        PageBean pb=new PageBean();
        pb.setCurrentPage(currentPage);
        pb.setRows(rows);

        //获取总条数
        int totalCount=dao.findCount(map);
        pb.setTotalCount(totalCount);

        //获取当前总页码
        int totalPage=(totalCount%rows==0)?totalCount/rows:(totalCount/rows+1);
        pb.setTotalPage(totalPage);

        //获取数据
        int start=(currentPage-1)*rows;
        List list=dao.findUserByPage(start,rows,map);
        pb.setList(list);

        return pb;
    }
4.6 sql查询
@Override
    public List findUserByPage(int start, int rows, Map map) {
        String sql="select * from user where 1=1";
        StringBuilder sb=new StringBuilder(sql);
        Set keySet = map.keySet();
        List list=new ArrayList();
        for (String key : keySet) {
            String value = map.get(key)[0];
            if (key.equals("currentPage")||key.equals("rows")){
                continue;
            }
            if (value!=null&&!"".equals(value)){
                sb.append(" and "+key+" like ? ");
                list.add("%"+value+"%");
            }
        }
        sb.append(" limit ?,? ");
        list.add(start);
        list.add(rows);
        List users = template.query(sb.toString(), new BeanPropertyRowMapper(User.class),list.toArray());
        return users;
    }
 
4.7 分页相关的 web界面 
    
    
        					
										


					

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5596832.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)