[JSP] Operación de la interfaz de información del usuario ---- eliminar usuario



Operación de la interfaz de información de usuario-eliminar usuario

Ⅰ. Modificar userinfo.jsp

  • Al diseñar el contenido de la operación en userinfo.jsp antes, no había una implementación específica. Implementemos hoy una operación simple de eliminación de usuarios.
  • href="DeleteServlet?username=<%=resultSet.getString(2)%>"Aquí, se utiliza un hipervínculo para transferir el nombre del usuario que se eliminará de la interfaz actual al Servlet para su procesamiento.
<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>

Volver arriba


Ⅱ. Mejore la clase dbHelper y agregue métodos de eliminación de usuarios

/**
* 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;
   }
}

Volver arriba


Ⅲ. Cree DeleteServlet para realizar la función de eliminación de usuarios

  • Al implementar la función de eliminación de usuarios, tenemos que considerar una pregunta: ¿podemos eliminar el usuario actualmente conectado? La respuesta es definitivamente no, entonces, ¿cómo debemos proceder a la interpretación de la declaración?
  • Aquí usamos la sesión para el procesamiento de la operación:
    • En el desarrollo web, se utiliza la arquitectura B / S. El navegador y el servidor están conectados directamente y se creará automáticamente un objeto de sesión en el lado del servidor.

    • session.setAttribute(“username”,username);Es para guardar el nombre de usuario en la sesión, el valor clave de la sesión es "nombre de usuario", y el valor del valor es el valor real o valor de referencia del nombre de usuario. Luego session.getAttribute(“username”)obtén este objeto mediante el método de.

Por ejemplo:
cuando el usuario ha iniciado sesión en el sistema, la sesión almacenará un objeto de información del usuario. Después de eso, puede recuperar este objeto de la sesión en cualquier momento para realizar algunas operaciones, como realizar la verificación de identidad y obtener la información del usuario. Información de la cuenta.

  • 1.request.getSession()
    Puede ayudarlo a obtener el objeto de tipo HttpSession, generalmente llamado objeto de sesión. El alcance del objeto de sesión es una sesión. Por lo general, el valor guardado no desaparecerá si no se cierra el navegador. Por supuesto, también puede establecer la hora efectiva de la sesión. Configure el tiempo de espera de la sesión en el servidor. Hay un tiempo de espera de la sesión en web.xml. Tomcat tiene un valor predeterminado de 30 minutos.

  • 2. Essession.setAttribute(“user”,userName); el método de configuración del valor de la sesión, el principio es similar al par clave-valor de HashMap en Java, lo que significa que la clave ahora es "usuario", el valor almacenado es nombre de usuario, nombre de usuario debe ser una variable de cadena? Vea su propia definición.

  • 3.session.getAttribute(“key”); Puede usar para obtener el valor, pensando que puede obtener el valor de userName.

  • 4. Nota: .getAttribute()El tipo de valor de retorno es Objeto, que debe reducirse y convertirse a su tipo de nombre de usuario . En pocas palabras, ¡lo que se almacena o lo que se saca! ! ! Significa que debe convertirse o se declara como una clase de objeto.

  • 5, .setAttribute()y.getAttribute()
    se basa en la realización de métodos put y get de HashMap, generalmente llamados pares clave-valor o clave-valor, es decir, para encontrar los valores clave. Por ejemplo, la relación entre tu nombre y tu persona, siempre que digas tu nombre, gritarás, personas que te encuentren por tu nombre, simplemente, este es el concepto de pares clave-valor.

  • Aquí, ¿cómo obtenemos la información del nombre del usuario que ha iniciado sesión actualmente? Puede almacenar la información del nombre del usuario actualmente conectado al iniciar sesión y emitir juicios al eliminar.
    Inserte la descripción de la imagen aquí
    Nota: Las operaciones 3 y 4 en la figura anterior deben estar presentes, y 1, 2 pueden estar ausentes.
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();
    }
}

Volver arriba


Ⅳ. Pantalla de efectos

① Eliminar el usuario actualmente conectado

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

② Eliminar usuarios de inicio de sesión no actuales

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Volver arriba


Artículo anterior: Después de iniciar sesión correctamente, la interfaz de información del usuario mostrará información básica del usuario.                                                        Artículo siguiente: Operación de la interfaz de información del usuario-modificación de la información del usuario

Supongo que te gusta

Origin blog.csdn.net/qq_45797116/article/details/113447760
Recomendado
Clasificación