【JSP】用户信息界面操作 ---- 删除用户



用户信息界面操作 ---- 删除用户

Ⅰ.修改userinfo.jsp

  • 之前在设计userinfo.jsp中的操作内容时,并没有具体的实现。今天来实现一个简单的用户删除操作。
  • href="DeleteServlet?username=<%=resultSet.getString(2)%>" 这里使用超链接的方式将当前界面的要删除的用户的姓名传入Servlet进行处理。
<td>
    <%--问号右边表示要传递的内容--%>
    <a href="DeleteServlet?username=<%=resultSet.getString(2)%>" style="color: red">删除</a>
    |
    <a href="#" style="color:blue">修改</a>
    |
    <a href="#" style="color:blue">修改头像</a>
</td>

返回顶部


Ⅱ.完善dbHelper类,添加用户删除方法

/**
* userinfo.jsp页面操作之删除用户
* @param username
* @return
*/
public int deleteUser(String username){
    
    
   try {
    
    
       String sql = "delete from userinfo_copy1 where username=?";
       preparedStatement = connection.prepareStatement(sql);
       preparedStatement.setString(1,username);
       int num = preparedStatement.executeUpdate();
       if (num>0){
    
    
           return 1;
       }else {
    
    
           return 2;
       }
   } catch (Exception e){
    
    
       e.printStackTrace();
       return 0;
   }
}

返回顶部


Ⅲ.创建 DeleteServlet,实现用户删除功能

  • 在实现用户删除功能时,我们要考虑到一个问题就是:我们能不能删除当前登录了的用户?答案肯定是不能,那么我们又该如何来进行声明判读呢?
  • 这里我们就利用session进行操作处理:
    • 在web开发的时候,使用的都是B/S架构,浏览器与服务器直接连接,在服务端就会自动创建一个session对象

    • session.setAttribute(“username”,username); 是将username保存在session中,session 的key值为“username”,value 值就是username真实的值或者引用值。然后通过session.getAttribute(“username”) 的方法获得这个对象。

举例:
当用户已登录系统后,session就会存储一个用户信息对象,此后你可以随时从session中将这个对象取出来进行一些操作,比如进行身份验证,拿到用户的账户信息等。

  • 1、request.getSession()
    可以帮你得到HttpSession类型的对象,通常称之为session对象。session对象的作用域为一次会话,通常浏览器不关闭,保存的值就不会消失,当然也可以设置session的有效时间。服务器中设置session的超时时间,web.xml中有一个session time out的地方,tomcat默认为30分钟。

  • 2、session.setAttribute(“user”,userName); 是session设置值的方法, 原理类似于java中的HashMap的 键值对,意思也就是key现在为“user”;存放的值为userName,userName应该为一个String类型的变量吧?看你自己的定义。

  • 3、session.getAttribute(“key”); 可以使用来取值,以为着你能得到userName的值。

  • 4、注意:.getAttribute()的返回值类型是Object,需要向下转型,转成你的userName类型的。简单说就是存什么,取出来还是什么!!!就是需要强制转换的意思,或者是声明为object类。

  • 5、.setAttribute().getAttribute()
    都是基于HashMap的put方法和get方法实现的,一般叫键值对或者key-value,即通过键找到值。 例如你的名字和你的人的关系,只要一叫你的名字,你就会喊到,通过你的名字来找你的人,简单说这就是键值对的概念。

  • 这里我们该如何获取当前登录的用户名称信息呢?可以在登录的时候,将当前登录的用户名称信息存储,在删除的时候进行判断。
    在这里插入图片描述
    注意:上图中的操作3、4必须有,1、2可以没有。
package com.zte;

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.io.PrintWriter;

@WebServlet(name = "DeleteServlet",urlPatterns = "/DeleteServlet")
public class DeleteServlet extends HttpServlet {
    
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
        // 对相应结果的编码方式设置
        response.setContentType("text/html;charset=UTF-8");
        response.setCharacterEncoding("UTF-8");
        request.setCharacterEncoding("UTF-8");
        // 内容输出
        PrintWriter out = response.getWriter();

        // 设定选定的参数
        String username = request.getParameter("username");

        // 创建dbHelper对象
        dbHelper db = new dbHelper();
        // 获取Session
        HttpSession session = request.getSession();
        // 首先判断删除的用户是否为当前登录的用户
        if(!username.equals(session.getAttribute("LoginUser"))) {
    
    
            switch (db.deleteUser(username)) {
    
    
                case 0:
                    out.println("<script>");
                    out.println("alert('系统错误');");
                    out.println("window.location='userinfo.jsp';");
                    out.println("</script>");
                    break;
                case 1:
                    out.println("<script>");
                    out.println("alert('删除成功');");
                    out.println("window.location='userinfo.jsp';");
                    out.println("</script>");
                    break;
                case 2:
                    out.println("<script>");
                    out.println("alert('删除失败');");
                    out.println("window.location='userinfo.jsp';");
                    out.println("</script>");
                    break;
            }
        }else{
    
    
            out.println("<script>");
            out.println("alert('当前用户不可删除!');");
            out.println("window.location='userinfo.jsp';");
            out.println("</script>");
        }
        // 刷新、结束
        out.flush();
        out.close();
    }
}

返回顶部


Ⅳ.效果展示

① 删除当前登录用户

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

② 删除非当前登录用户

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

返回顶部


上一篇:登陆成功跳转用户信息界面显示基本用户信息                                                       下一篇:用户信息界面操作 ---- 用户信息修改

猜你喜欢

转载自blog.csdn.net/qq_45797116/article/details/113447760
今日推荐