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

时间:2013-06-24 06:44:21

标签: java html jsp servlets

在我的Java Web应用程序中,我使用了servlet(控制器)和JSP(视图)以及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(浏览器)中为我提供正确的选定网址..但是当它在上面调用时

response.setHeader(----); 

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

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

2 个答案:

答案 0 :(得分:1)

尝试使用SiteAvailabilityServlet传递 ursel 参数

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

答案 1 :(得分: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);