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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

修改操作

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

在页面显示修改前的数据

方法一 带着数据直接跳转 到添加页面 即在跳转的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输入框中 有usernamephone等 还需要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 {
    @Override
    protected 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);

        //获取前端传过来的 用户id
        String 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);
    }

    @Override
    protected 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 {
    @Override
    protected 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);

        //获取浏览器中 修改后的数据 以及传递过来的用户的id
        String 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);
        }
    }

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

service层 与dao层代码 略

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6