关于如何获取.jsp文件中已经展示的信息
在进行信息删除操作(假设通过ID进行删除)的时候,如果在真正进行删除之前展示即将被删除的信息进行最终删除确认,那么跳转到相应的.jsp 文件之后就会丢失ID信息(即,系统无法再获取ID)。这种时候我们应该如何继续进行删除操作呢?
首先我们来理一理思路,根据要求,我们可以确定,此处的“删除”由3部分组成——
1.根据ID查询出相应的成员信息
2.展示查询到的相应的成员信息
3.根据ID执行删除操作
前两点此处不提,这一片将目光聚集在3上。
我曾经尝试过在servlet中欧给设置一个全局变量,试图通过赋值使的在查询时保留ID,但是后来我发现这个方案不可执行是因为从.jsp文件再次调用servlet时全局变量会丢失上一次查询时从前端获取的ID值。
同时也无法在查询界面直接返回或者通过String id = {Bean.id};进行数据回传。
所以我采用了第三种方法 ——getSession()
在查询展示.jsp 文件中添加
<%
Bean bean=(Bean)request.getAttribute("Bean");
request.getSession().setAttribute("id",bean.getId());
%>
从而获取ID,然后再在servlet中调用的删除函数中使用
String id=(String)request.getSession().getAttribute("id");
获取ID
这样就实现了展示将要被删除的信息且执行删除操作
相应的.jsp文件和servlet相关代码如下:
foundshow.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import ="Bean.Bean"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>展示</title>
</head>
<body>
<%
Bean bean=(Bean)request.getAttribute("Bean");
request.getSession().setAttribute("id",bean.getId());
%>
<center>
<form action="Beanservlet" method="post">
id:${Bean.id}<br/>
姓名:${Bean.name}<br/>
性别:${Bean.sex}<br/>
竞赛:${Bean.jingsai}<br/>
<br/><br/><br/>
<input type="hidden" name="method" value="delete_change"/>
<input type="submit" name="submit1" value="删除此信息">
<input type="submit" name="submit2" value="修改此信息">
</form>
</center>
</body>
</html>
相应的servlet代码片段
if("delete".equals(method)) {
String id=(String)request.getSession().getAttribute("id");
int flag = Dao.delete(id);
if(flag != 0) {
request.getRequestDispatcher("index.jsp").forward(request,response);
}
特别注意加粗部分的类型转换
(此处Bean为实体类,id为String类)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)