Java 如何在请求后保存请求数据

Java 如何在请求后保存请求数据,java,jquery,html,jsp,Java,Jquery,Html,Jsp,我正在使用JSP。我有这个用例: 主页包含一个搜索框、一个提交按钮和一个下拉列表。当用户从下拉列表中选择某个内容,在搜索框中输入查询并点击提交按钮后,它将转到同一页面,并根据查询结果显示一些结果 主页包括其他页面(比如results.jsp、searchtables.jsp),这些页面只有在搜索返回某些结果后才可见。在显示这些结果后,我想保留在主页(下拉框和searhcbox)中输入的值 因此,如果主页是/home,则在单击按钮后,它仍然位于附加了/search的同一页面中,并显示检索到的结果

我正在使用JSP。我有这个用例:

主页包含一个搜索框、一个提交按钮和一个下拉列表。当用户从下拉列表中选择某个内容,在搜索框中输入查询并点击提交按钮后,它将转到同一页面,并根据查询结果显示一些结果

主页包括其他页面(比如results.jsp、searchtables.jsp),这些页面只有在搜索返回某些结果后才可见。在显示这些结果后,我想保留在主页(下拉框和searhcbox)中输入的值

因此,如果主页是/home,则在单击按钮后,它仍然位于附加了/search的同一页面中,并显示检索到的结果

有什么办法可以做到这一点吗


谢谢

如果您使用的是forward not redirect,则可以在控制器中使用request属性:

request.setAttribute("searchVal", searchVal); 
request.setAttribute("dropdownVal", dropdownVal);
然后在jsp页面上,您可以访问如下值:

<input type="text" name="search" value="${searchVal}"/> //will be empty if searchVal is never set


<select>
    <option value="val1" ${dropdownVal == 'val1' ? 'selected="selected"' : ''}>val1</option>
</select>
如果从未设置searchVal,
//将为空
瓦尔1
如果您正在执行重定向,您可以将这些值附加为url查询,然后使用jsp页面上的
${params.search}
${params.dropdown}
访问它们


最后一个选项是使用localStorage,它将东西存储在客户端而不是服务器端,但是您需要编写一些javascript代码来处理这个问题。

由于表单是提交给自己的,因此您可以检查post参数,如果它们存在,请将它们添加到表单中

<input type="text" name="txtbox" value="<%= request.getParameter("txtbox") %>">

然后,如果是通过POST传递的项目,则可以使用下拉列表值对选项添加“selected”

<select name="mySelect">
    <option value="1" <% if(request.getParameter("mySelect") == "1"){ out.print("selected") } %>>Option 1</option>
    <option value="2" <% if(request.getParameter("mySelect") == "2"){ out.print("selected") } %>>Option 2</option>
</select>

选择1
选择2

在jsp中使用java代码不是个坏主意吗?此外,我还不知道如何在帖子中添加“selected option”?我对我的示例进行了一些更改,这将简化textbox示例,并为下拉列表添加了一个示例。