【问题标题】:Servlet passes value to jsp on reload or new windowServlet 在重新加载或新窗口时将值传递给 jsp
【发布时间】:2017-03-28 20:07:28
【问题描述】:

我有一个 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>

小服务程序:

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);
}
}

【问题讨论】:

    标签: javascript java jsp servlets


    【解决方案1】:

    我希望表单即使在新会话中也能保留最后一个值。如果 页面重新加载或打开一个新窗口,我想要存储数据。

    您可以选择两个选项:

    (1) 将最后一个值保存在 内存缓存 存储中,并在请求到来时再次检索它。

    (2) 将最后一个值保存在持久存储(最好是数据库)中,并在请求到来时再次检索它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-13
      • 1970-01-01
      • 1970-01-01
      • 2013-02-13
      • 1970-01-01
      • 1970-01-01
      • 2013-03-22
      相关资源
      最近更新 更多