JavaWeb用户信息查看的登录、增删改查案例
创始人
2024-03-29 15:59:34

黑马JavaWeb案例整理记录

文章目录

  • 案例源码:
  • 一、需求
  • 二、设计
    • 1、技术选型
    • 2、数据库设计
  • 三、开发步骤
  • 四、详细过程
    • 1、创建web项目,部署tomcat,导入jar包
    • 2、编写首页index.jsp
    • 3、编写servlet、servie、daomain、dao
  • 五、案例升级实现
    • 1、实现内容
    • 2、list.jsp新增设计
    • 3、实现登录功能
      • login.jsp设计
      • LoginServlet编写
      • UserDaoImpl语句
    • 4、实现添加功能
      • add.jsp编写
      • AddUserServlet编写
      • userDaoImpl语句
    • 5、实现删除功能
      • list.jsp修改
      • DelUserServlet
      • userDaoImpl增加语句
    • 6、修改功能实现
      • list.jsp增加修改发送路径
      • FindUserServlet编写
      • update.jsp编写
      • UpdateUserServlet编写
      • UserServiceImpl实现方法
      • UserDaoImpl实现方法
    • 7、删除选中功能
      • list.jsp编写
      • DelSelectServlet编写
      • UserServiceImpl编写
      • UserDaoImpl编写
    • 8、实现全选,全不选和提示是否删除框
      • list.jsp编写实现
    • 9、分页查询功能(分页展示数据)
      • 改index.jsp路径
    • 10、多条件组合查询
  • 未完待续........

案例源码:

一、需求

实现页面跳转和用户信息的增删改查操作

二、设计

1、技术选型

Servlet+JSP+MySQL+JDBCTempleat+Duird+BeanUtilS+tomcat+BootStrap

2、数据库设计

SQL语句

create database heima; -- 创建数据库use heima; 			   -- 使用数据库create table day17_user(   -- 创建表id int primary key auto_increment,name varchar(20) not null,gender varchar(5),age int,address varchar(32),qq	varchar(20),email varchar(50));

三、开发步骤

1. 环境搭建1. 创建数据库环境2. 创建项目,导入需要的jar包2. 编码3. 测试
4. 部署运维

本笔记(不包含测试和运维)

四、详细过程

在这里插入图片描述

1、创建web项目,部署tomcat,导入jar包

jar包下载地址(里边有很多调出合适的)
链接:https://pan.baidu.com/s/1V0X99u6U1zoDyFy2xm9Cyg
提取码:h8sz
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、编写首页index.jsp

3、编写servlet、servie、daomain、dao

导入druid.properties,导入JDBCUtils类。源码都在源码链接中

五、案例升级实现

1、实现内容

  1. 列表查询
  2. 登录
  3. 添加
  4. 删除
  5. 修改

2、list.jsp新增设计

按钮位置
输入框
分页条
复选框

3、实现登录功能

login.jsp设计

用到了checkCodeServlet,在我的其他博客写了,链接??
login.jsp点击切换验证码实现,如下图
在这里插入图片描述

LoginServlet编写

@WebServlet(value = "/loginServlet")
public class LoginServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1.设置编码request.setCharacterEncoding("utf-8");//2.获取数据//2.1获取用户填写验证码String verifycode = request.getParameter("verifycode");//3.验证码校验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();//4.封装User对象User user = new User();try {BeanUtils.populate(user, map);}catch (IllegalAccessException e){e.printStackTrace();}catch (InvocationTargetException e){e.printStackTrace();}//5.调用Srvice查询UserService service = new UserServiceImpl();User loginUser = service.login(user);//6.判断是否登录成功if(loginUser != null){//登录成功//将用户存入sessionsession.setAttribute("user",loginUser);//跳转页面response.sendRedirect(request.getContextPath()+"/index.jsp");}else{//登录失败//提示信息request.setAttribute("login_msg","用户名或密码错误!");//跳转登录页面request.getRequestDispatcher("/login.jsp").forward(request,response);}}
}

UserDaoImpl语句

/*** 登录账号* @param username* @param password* @return*/@Overridepublic User findUserByUsernameAndPassword(String username, String password) {try {String sql = "select * from day17_user where username = ? and password= ?";User user = template.queryForObject(sql, new BeanPropertyRowMapper(User.class), username, password);return user;} catch (Exception e) {e.printStackTrace();return null;}}

4、实现添加功能

在这里插入图片描述

add.jsp编写

源码在顶部链接
注意事项:提交路径
在这里插入图片描述

AddUserServlet编写

@WebServlet(value = "/addUserServlet")
public class AddUserServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1.设置编码request.setCharacterEncoding("utf-8");//2.获取参数Map map = request.getParameterMap();//3.封装对象User user = new User();try {BeanUtils.populate(user, map);} catch (IllegalAccessException e) {e.printStackTrace();} catch (InvocationTargetException e) {e.printStackTrace();}//4.调用Service保存UserService service = new UserServiceImpl();service.addUser(user);//5.跳转到userListServletresponse.sendRedirect(request.getContextPath()+"/userListServlet");}
}

userDaoImpl语句

/*** 添加user* @param user*/@Overridepublic void add(User user) {String sql = "insert into day17_user values(null,?,?,?,?,?,?,null,null)";
//        template.update(sql, user.getName(), user.getGender(), user.getAge(), user.getAddress(), user.getQq(), user.getEmail());template.update(sql, user.getName(), user.getGender(), user.getAge(), user.getAddress(), user.getQq(), user.getEmail());}

5、实现删除功能

在这里插入图片描述

list.jsp修改

在这里插入图片描述

DelUserServlet

@WebServlet("/delUserServlet")
public class DelUserServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1.获取idString id =request.getParameter("id");//2.调用service删除UserService service = new UserServiceImpl();service.deleteUser(id);//3.跳转到查询所有Servletresponse.sendRedirect(request.getContextPath()+"/userListServlet");}
}

userDaoImpl增加语句

/*** 根据id删除* @param id*/@Overridepublic void delete(int id) {String sql = "delete from day17_user where id = ?";template.update(sql,id);}

6、修改功能实现

在这里插入图片描述
注意:隐藏域提交id。下面内容会提到

list.jsp增加修改发送路径

在这里插入图片描述

修改

FindUserServlet编写

@WebServlet(value = "/findUserServlet")
public class FindUserServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1.获取idString id = request.getParameter("id");//2.调用Service查询UserService service = new UserServiceImpl();User user = service.findUserBuId(id);//3.将user存入requestrequest.setAttribute("user",user);//4.转发到update.jsprequest.getRequestDispatcher("/update.jsp").forward(request,response);}
}

在这里插入图片描述

update.jsp编写

id提交隐藏域如下
在这里插入图片描述
以下注意地点举例,具体请查看开篇源码链接。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

UpdateUserServlet编写

@WebServlet(value = "/updateUserServlet")
public class UpdateUserServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1.设置编码request.setCharacterEncoding("utf-8");//2.获取mapMap map = request.getParameterMap();//3.封装对象User user  = new User();try {BeanUtils.populate(user, map);} catch (IllegalAccessException e) {e.printStackTrace();} catch (InvocationTargetException e) {e.printStackTrace();}//4.调用Service修改UserService service = new UserServiceImpl();service.updateUser(user);//5.跳转到查询所有Servletresponse.sendRedirect(request.getContextPath()+"/userListServlet");}
}

UserServiceImpl实现方法

在这里插入图片描述

UserDaoImpl实现方法

在这里插入图片描述

7、删除选中功能

在这里插入图片描述

list.jsp编写

在这里插入图片描述
在这里插入图片描述

DelSelectServlet编写

@WebServlet(value = "/delSelectServlet")
public class DelSelectServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1.获取所有idString[] ids = request.getParameterValues("uid");//UserService service = new UserServiceImpl();service.delSelectUser(ids);//response.sendRedirect(request.getContextPath()+"/userListServlet");}
}

UserServiceImpl编写

 @Overridepublic void delSelectUser(String[] ids) {//判断有东西才删除,否则会空指针异常if (ids != null && ids.length>0){//1.遍历数组for (String id : ids){//2.2.调用dao删除dao.delete(Integer.parseInt(id));}}}

UserDaoImpl编写

还是用之前写的,不过就是上一步的service将选中的id列表挨个遍历传进来,挨个删除,还是用以前的方法

/*** 根据id删除* @param id*/@Overridepublic void delete(int id) {String sql = "delete from day17_user where id = ?";template.update(sql,id);}

8、实现全选,全不选和提示是否删除框

list.jsp编写实现

在这里插入图片描述
有选中条目才提交删除
在这里插入图片描述
同样Service中也要判断一下提交的里边有无内容,不判断的话有时候会空指针异常
在这里插入图片描述

9、分页查询功能(分页展示数据)

在这里插入图片描述
在这里插入图片描述

改index.jsp路径

在这里插入图片描述

10、多条件组合查询

在这里插入图片描述

未完待续…

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...