1

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

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

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

  request.getParameter("urlsel");                                                                                                                  

通过手动选择第一次在 JSP(浏览器)中给我正确选择的 URL。但是当它在上面调用时

response.setHeader(----); 

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

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

4

2 回答 2

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); 
于 2013-06-24T08:06:08.723 回答
1

尝试使用 SiteAvailabilityServlet 传递ursel参数

response.setHeader("Refresh","10;url="+request.getContextPath+"/SiteAvailabilityServlet?ursel="+urlsel);
于 2013-06-24T07:23:47.250 回答