在我的 Java Web 应用程序中,我使用了 servlet( Controller )、JSP( View )和 POJO 类。我每 10 秒运行一次应用程序,并将下拉列表中选定 URL 的更新值存储到数据库中。在我的 servlet 中,我获取这些值并转发到 JSP,该 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 元标记,它也会从下拉列表中获取空值。
请帮助我。
最佳答案
如果我正确理解你的问题,那么问题是你在第一次加载页面后丢失了请求参数。尝试在刷新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);
关于java - 我的 JSP 未使用 servlet 中的刷新 header 从数据库获取更新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17269441/