gpt4 book ai didi

java - jspInit 将所有浏览器请求的对象保留在内存中

转载 作者:行者123 更新时间:2023-12-01 11:41:33 26 4
gpt4 key购买 nike

我的jsp Web应用程序从html输入中获取输入,并通过按下按钮将其保存在内存中,所以实际上我将值推送到内存中并保留它直到按下重置为止。当我转到另一台机器并运行该应用程序时,问题就出现了,我得到了与前一个用户输入的相同的值。

例如:

main.jsp 有一些输入字段,当我单击“添加”时,html 输入中的这些值将存储在内存对象中,并显示在 html 输入中,直到内存未被清除。

现在,我从另一台机器访问此应用程序并转到 jsp 文件,在那里我得到了具有相同值的预填充 html 输入框。

我知道这是由我在 jspInit() 函数内初始化类对象引起的。

我制作了示例项目来向您展示问题。

Test.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="test.TestClass" %>
<!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>

<%!
TestClass objTest;
public void jspInit()
{
objTest = new TestClass();
}
%>
<form action="Test.jsp">
value1: <input type="text" name="txtValue1" value=" <%out.print(objTest.value1);%>"/>
value2: <input type="text" name="txtValue2" value=" <%out.print(objTest.value2);%>"/>
<input type="submit" name="btnSubmit"/>
</form>

<%
if(request.getParameter("btnSubmit")!=null)
{
String str1 = request.getParameter("txtValue1");
String str2 = request.getParameter("txtValue2");
objTest.add(str1, str2);
}
%>
</body>
</html>

TestClass.java

package test;

public class TestClass {

public String value1 ="no value";
public String value2 ="no value";
public void add(String str1, String str2)
{
value1 = str1;
value2 = str2;
}
}

为什么我每次从不同的机器进入时都没有得到一个新页面。jspInit()函数使对象静态并保留其所有值。

我需要这个 jspInit() 函数,因为我想保留该特定用户的值,这样当他刷新页面时,表单值就不会消失。

我怎样才能使 jspInit() 只保留特定浏览器的值要求。还有我可以使用的其他方法。

此外,实际应用程序非常大,因此如果可能,请为此方法提出一些解决方法。

P.S:jsp新手。

P.S:我知道使用 scriptlet 不是一个好方法。

提前致谢。

最佳答案

jspInit 方法对于 Servlet 类的所有线程都是通用的。它的用途基本上是获取公共(public)资源的数据库连接和读写器对象。您的要求是针对服务器的每个单独的客户端(即不同的机器),为此您必须使用 session 对象来存储参数或使用 Java Bean 对象。

您可以引用this为了良好的知识。

关于java - jspInit 将所有浏览器请求的对象保留在内存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29484744/

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