【JSP】用户信息界面操作 ---- 删除用户
原创
©著作权归作者所有:来自51CTO博客作者阿呆小记的原创作品,请联系作者获取转载授权,否则将追究法律责任
文章目录
用户信息界面操作 ---- 删除用户
Ⅰ.修改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,即通过键找到值。 例如你的名字和你的人的关系,只要一叫你的名字,你就会喊到,通过你的名字来找你的人,简单说这就是键值对的概念。
- 这里我们该如何获取当前登录的用户名称信息呢?可以在登录的时候,将当前登录的用户名称信息存储,在删除的时候进行判断。
- 注意:上图中的操作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();
}
}
返回顶部
Ⅳ.效果展示
① 删除当前登录用户
② 删除非当前登录用户
返回顶部