我有一个JSP页面和一个处理复选框表单的servlet。我希望表单即使在新会话中也能保留最后一个值。如果页面重新加载或打开了一个新窗口,我希望存储数据。
JSP:
<html><body>
<p>
<form name="checkboxes" action="${pageContext.request.contextPath}/Servlet" method="post">
<% if(getServletContext().getAttribute("test").equals("on")) { %>
<input type=checkbox name="test" checked>Test
<% } else { %>
<input type=checkbox name="test" >Test
<% } %>
<input type="submit" value="submit"">
<%= getServletContext().getAttribute("test") %>
</form>
</p>
的Servlet
import java.io.*;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
@WebServlet("/Servlet")
public class Servlet extends HttpServlet
{
private String c4;
public void init()
{
c4 = "";
}
public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
{
response.setContentType("text/html");
String c1 = request.getParameter("test");
ServletContext context = request.getServletContext();
if(c1!=null) {
System.out.println("c1 " + c1);
context.setAttribute("test", "on");
}
else {
context.setAttribute("test", "off");
}
request.getRequestDispatcher("/index.jsp").forward(request, response);
}
public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
{
doPost(request,response);
}
}
答案 0 :(得分:0)
我希望表单即使在新会话中也能保留最后一个值。如果 页面重新加载或打开一个新窗口,我希望存储数据。
您可以选择两个选项:
(1)将最后一个值保存在内存缓存存储中,并在请求到来时再次检索它。
(2)将最后一个值保存在持久存储(最好是数据库)中,并在请求到来时再次检索它。