第一天总结 之 用户管理界面的实现 之 修改操作 的实现

news/2023/6/9 20:30:21

修改操作

 首先  明确  修改操作的前提是 先在页面显示修改前的数据  然后对其进行修改  之后点击提交

在页面显示修改前的数据

方法一: 带着数据直接跳转 到添加页面 即在跳转的url后 直接通过?携带数据跳转

缺点: !!! 携带的数据会直接在页面的url上显示 会造成信息泄露等(影响不大 毕竟为修改时数据 本身就需要显示)

具体的实现:
1、在uesr.jsp页面的修改操作处 跳转路径后 追加需要在修改页面显示的数据
在这里插入图片描述
2、在修改页面admin_updateuser.jsp 通过el表达式 在其中书写 java代码 获取url中的数据 获取url中的数据 并展示在指定位置
在这里插入图片描述

3、因为修改操作的sql语句为update t_user set username=? , phone=?,sex=? , mail=? where id=? 目前 我表单中的 input输入框中 有username,phone等 还需要id
两种方法 将id传递到 修改操作的servlet
第一种 : 直接在跳转路径后 追加id属性
在这里插入图片描述

第二种 : 设置一个隐藏的input的输入框 然后将id存放其中 在servlet中获取
在这里插入图片描述

方法二: 带着id数据直接跳转 到ShowUpdateUserServlet中 然后在其中 通过id查询出其对应的对象数据 然后将其放到request域中 然后在页面 通过 ${} 获取request 域中的值

   1、设置user.jsp的跳转路径![在这里插入图片描述](https://img-blog.csdnimg.cn/bc5e5ccf78f44bac8e474113595c2ac8.png)2、创建并书写ShowUpdateUserServlet  

代码如下:

package com.qfedu.controller;import com.qfedu.entity.User;
import com.qfedu.service.UserService;
import com.qfedu.service.impl.UserServiceImpl;import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;@WebServlet(name = "ShowUpdateUserServlet", value = "/ShowUpdateUserServlet")
public class ShowUpdateUserServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//先设置请求的字符集  防止中文乱码request.setCharacterEncoding("utf-8");String pageNo = request.getParameter("pageNo");if(pageNo==null){pageNo="1";}Integer pNo=Integer.valueOf(pageNo);//获取前端传过来的 用户idString id1 = request.getParameter("id");Integer id= Integer.valueOf(id1);UserService userService=new UserServiceImpl();User user = userService.showUpdateUser(id);//将user存到request域中request.setAttribute("user",user);//转发到修改界面request.getRequestDispatcher("/after/admin_updateuser.jsp?pageNo="+pNo).forward(request,response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}
}

3、在admin_updateuesr.jsp 页面显示数据
在这里插入图片描述
4、id的传递设置与方法一中的一致 只是值需要通过查询域中数据 即通过 ${user.id} 获取

修改完数据后跳转到 UserUpdateServlet 将修改后的数据传递到后端 对数据库中的数据进行修改

UserUpdateServlet 代码如下:

package com.qfedu.controller;import com.qfedu.service.UserService;
import com.qfedu.service.impl.UserServiceImpl;import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;@WebServlet(name = "UserUpdateServlet", value = "/UserUpdateServlet")
public class UserUpdateServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//设置请求的字符集  防止中文乱码request.setCharacterEncoding("utf-8");String pageNo = request.getParameter("pageNo");if(pageNo==null){pageNo="1";}Integer pNo=Integer.valueOf(pageNo);//获取浏览器中 修改后的数据 以及传递过来的用户的idString id1 = request.getParameter("id");Integer id= Integer.valueOf(id1);String username = request.getParameter("username");String phone = request.getParameter("phone");String sex = request.getParameter("sex");String mail = request.getParameter("mail");//将这些属性存放到object集合中Object[] objs={username,phone,sex,mail,id};//调用service层方法UserService userService=new UserServiceImpl();boolean b = userService.userUpdate(objs);//获取session对象HttpSession session = request.getSession(false);//设置  session中的一个属性为 userUpdate为ture   代表删除操作成功session.setAttribute("userUpdate",true);if(b){response.sendRedirect("UserFuzzySelectServlet?pageNo="+pNo);}else{//将session 中的urp 改为false  代表删除失败session.setAttribute("userUpdate",false);response.sendRedirect("UserFuzzySelectServlet?pageNo="+pNo);}}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}
}

service层 与dao层代码 略

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-4557844.html

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

剑指offer算法题028:数组中出现次数超过一半的数字

小编在求职找找工作期间剑指offer上的算法题刷了很多遍,并且每道题小编当时都总结了一种最适合面试时手撕算法的最优解法。考虑到剑指offer算法题在面试中的高频出现,小编每天和大家分享一道剑指offer上的算法题,以及小编总结的答案。下面是第…

数组中出现次数超过一半的数字

数组中出现次数超过一半的数字 时间限制:1秒空间限制:32768K本题知识点: 数组 题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。 由于数字2在数组中…

为什么文本框里的字只显示一半_word字体显示不全及显示一半怎么回事?

经常使用word办公软件来编写文档的网友反馈到关于在打开word文档出现系统字体不能正常显示,w出现word字体显示不全及显示一半的情况。那这种故障是什么原因造成的?学无忧就来和大家分析导致word字体显示不全及显示一半的故障及该如何解决?故障…

java 转换pdf页面尺寸_Java PDF页面设置——页面大小、页边距、纸张方向、页面旋转...

下面的示例将介绍通过Java编程来对PDF页面进行个性化设置的方法,包括设置页面大小、页边距、纸张方向、页面旋转等。这里有如下多种页面大小尺寸可供选择:同时,设置文档内容旋转时,可支持如下角度进行内容旋转。使用工具&#xff…

TCP协议的长连接和短连接详解

一 前言TCP在真正开始进行数据传输之前,Server 和 Client 之间必须建立一个连接。当数据传输完成后,双方不再需要这个连接时,就可以释放这个连接。TCP连接的建立是通过三次握手,而连接的释放是通过四次挥手。所以说,每…

Log4j自定义Appender介绍

Apache Log4j 架构Apache Log4j是当前在J2EE和J2SE开发中用得最多的日志框架(几乎所有项目都用它),因为它具有出色的性能、灵活的配置以及丰富的功能,并且在业务有特殊的要求时,可以使用自定义组件来代替框架中已有的组…

寻址空间与寻址范围

首先来看2440 S5PV210的: 定义的理解 1寻址空间(容量) 寻址空间一般指的是CPU对于内存寻址的能力。通俗地说,就是能最多用到多少内存的一个问题,即能够寻址的最大容量。一般用MB和G来表示。 数据在存储器(RAM)中存放…

华为机试题:HJ16 购物单(python)

文章目录知识点详解1、input():获取控制台(任意形式)的输入。输出均为字符串类型。2、print() :打印输出。3、strip():删除字符串(开头 / 结尾)指定字符(默认空格)或字符…