我正在使用jsps和servlet制作Web应用程序,而我在以下代码中遇到了问题
<!DOCTYPE html>
<html>
<head>
<%@ page import="JavaBeans.ProductBean" %>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Giabby's Store - Product</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="./files_css/resizing.css">
<link rel="stylesheet" type="text/css" href="./files_css/general-style.css">
<link rel="stylesheet" type="text/css" href="./files_css/product-style.css">
</head>
<body>
<%
ProductBean bean=(ProductBean)request.getAttribute("product");
String description=bean.getDescription(),typology=bean.getTipology(),imgPath=bean.getImgPath(),title=bean.getTitle();
double price=bean.getPrice();
int availability=bean.getAvailability(),shipment=bean.getShipment();
%>
<!--NAV WITH BUTTON TO RETURN TO INDEX-->
<nav class="navbar navbar-inverse navbar-fixed-top" >
<div class="container-fluid">
<div class="navbar-header">
<a style = "padding-left:10px;" class="navbar-brand" href="./index.jsp">Return to index</a>
</div>
</div>
</nav>
问题是,在登录servlet中,我有一个setAttribute,其中将用户bean相对于会话放置了。
因此,我进行登录,然后以用户身份成功输入,然后单击购物车按钮,该按钮将我发送到包含上面代码的页面。
从会话中成功检索到用户bean,一切按预期进行。
当我关闭服务器并再次打开它时,会发生问题,我再次转到站点索引,我仍以以前的用户身份登录(在tomcat服务器关闭之间未删除会话),但是这次我转到session页面上的购物车页面(上面的代码)session.getAttribute()返回导致异常的空引用。
为什么从会话中删除了用户bean?
为什么我在会话中拥有的所有其他信息除了bean之外都保留??
如果删除用户bean,其他所有字符串也应该删除。
我检查了几次,但从未在其他代码中删除该属性。告诉我您是否需要其他信息