gpt4 book ai didi

java - 如何在jsp中将请求对象存储在 session 范围内

转载 作者:行者123 更新时间:2023-12-02 05:31:51 27 4
gpt4 key购买 nike

我只是在我的 jsp 页面中进行随机技巧和测试。我想使用 Attributesrequest 范围对象存储在 session 范围对象中。存储后,当尝试从请求属性中提取值(存储在 session 属性中)时,我得到了 null。为什么会这样呢?以下是我的 jsp 文件:

index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%request.setAttribute("request1", "requestValue"); %>
<%session.setAttribute("req1", request); %>
<br>
<a href="jsp2.jsp">link</a>
</body>
</html>

jsp2.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<br>
<%HttpServletRequest rrrr=(HttpServletRequest)session.getAttribute("req1"); %><br>
<%=rrrr.getAttribute("request1")%><br>
</body>
</html>

浏览器输出

null

预期输出

requestValue

...................................................... …………

我需要你的指导来解决这个问题。

最佳答案

您可以使用以下代码来完成此操作:

HttpSession session = request.getSession();
session.setAttribute("req1", request);

当您检索请求值时,您必须执行以下操作:

<%= ((HttpServletRequest) rrrr.getAttribute("req1")).getAttribute("request1") %>

毕竟:如果您想在 session 中存储对象,更好的方法是将其直接存储到 session 中,而不是将请求作为属性存储在 session 中。参见下面的代码:

存储属性:

HttpSession session = request.getSession();
session.setAttribute("obj1", Object); // Object is any object that you want to store

并将其检索为:

HttpSession session = request.getSession(false);
Object o = session.getAttribute("obj1");

关于java - 如何在jsp中将请求对象存储在 session 范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25459515/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com