文章目录


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

Ⅰ.修改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);
  • 3、session.getAttribute(“key”);
  • 4、注意:.getAttribute()的返回值类型是Object,需要向下转型,转成你的userName类型的。简单说就是存什么,取出来还是什么!!!就是需要强制转换的意思,或者是声明为object类。
  • 5、.setAttribute()​.getAttribute()​
    都是基于HashMap的put方法和get方法实现的,一般叫键值对或者key-value,即通过键找到值。 例如你的名字和你的人的关系,只要一叫你的名字,你就会喊到,通过你的名字来找你的人,简单说这就是键值对的概念。
  • 这里我们该如何获取当前登录的用户名称信息呢?可以在登录的时候,将当前登录的用户名称信息存储,在删除的时候进行判断。
  • 【JSP】用户信息界面操作 ---- 删除用户_javascript

  • 注意:上图中的操作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();
}
}

返回顶部


Ⅳ.效果展示

① 删除当前登录用户

【JSP】用户信息界面操作 ---- 删除用户_返回顶部_02


【JSP】用户信息界面操作 ---- 删除用户_返回顶部_03

② 删除非当前登录用户

【JSP】用户信息界面操作 ---- 删除用户_返回顶部_04


【JSP】用户信息界面操作 ---- 删除用户_返回顶部_05


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

返回顶部