一尘不染

我的JSP没有使用servlet中的刷新头从数据库获取更新的值

jsp

在我的Java
Web应用程序中,我使用了servlet(控制器)和JSP(视图)以及POJO类。我每10秒钟运行我的应用程序,并将选定URL的更新值从下拉列表存储到数据库中。在我的servlet中,我正在获取这些值并将其转发到JSP,它将显示该选定URL的更新值。我用了

 response.setHeader("Refresh","10;url="+request.getContextPath+"/SiteAvailabilityServlet");

我的JSP如下所示:在顶部框中,我有一个下拉列表。我选择一个URL,然后单击一次提交按钮。所选选项的结果(URL)显示在底部框架中。并且第二次以后,将使用上述setHeader(--)方法自动刷新页面,更新的值应自动显示在底部框架中。在我的
SiteAvailabilityServlet中, 我将选定的URL作为

  request.getParameter("urlsel");

通过手动选择,第一次为我提供JSP(浏览器)中正​​确的选定URL。

response.setHeader(----);

为了自动刷新,它会将 urlsel 设为null,并且不显示更新的值。如何解决这个问题呢?请帮我。

即使我使用HTML元标记,它也会从下拉列表中获取空值。
请帮我。


阅读 202

收藏
2020-06-08

共1个答案

一尘不染

如果我正确理解了您的问题,那么问题就在于您在第一次加载页面后就失去了请求参数。尝试将参数值包含在刷新URL中,例如:

response.setHeader("Refresh","10;url="+request.getContextPath+"/SiteAvailabilityServlet?urlSel=" + valueProdivedDuringTheFirstCall);

因此,您的底部框架的servlet逻辑将如下所示:

// parameter passed from top frame
final String parameterName = "urlsel";
// read the value
String url = request.getParameter(parameterName);

// business logic, e.g. reading the stats and populating 
// the scope values to be provided to the view

// provide url value as a parameter for refresh request
response.setHeader("Refresh","10;url="+request.getContextPath+"/SiteAvailabilityServlet?urlSel=" + url);
2020-06-08