首页 > 其他分享 >关于如何获取.jsp文件中已经展示的信息

关于如何获取.jsp文件中已经展示的信息

时间:2022-12-08 18:12:09浏览次数:45  
标签:删除 展示 request ID 获取 Bean jsp id

在进行信息删除操作(假设通过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类)

标签:删除,展示,request,ID,获取,Bean,jsp,id
From: https://www.cnblogs.com/yansans/p/16966902.html

相关文章