【问题标题】:My JSP is not taking the updated values from database using refresh header in servlets我的 JSP 没有使用 servlet 中的刷新标头从数据库中获取更新的值
【发布时间】:2013-06-20 13:35:29
【问题描述】:

在我的 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 元标记,它也会从下拉列表中获取空值。
请帮帮我。

【问题讨论】:

    标签: java html jsp servlets


    【解决方案1】:

    尝试使用 SiteAvailabilityServlet 传递 ursel 参数

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

    【讨论】:

    • 您已经在 SiteAvailabilityServlet 中使用了,对吧?你检查过我在答案中包含的代码吗?我将 ursel 作为参数传递。
    【解决方案2】:

    如果我正确理解了您的问题,那么问题是您在第一次加载页面后丢失了请求参数。尝试在刷新 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); 
    

    【讨论】:

    • 这里 urlSel 是参数名称,valueProvidedDuringTheFirstCall 是参数值对吗?我可以将任何字符串名称作为 urlSel(即参数名称)
    • 是的,就是参数的名字和它的值。从顶部框架传递值时,您应该使用相同的名称。
    • response.setHeader() 之后在我的代码中在哪里使用 urlSel..对不起,我无法得到你。请帮助我..
    • :请帮帮我..我得到空值
    • 您使用该值的唯一地方 - 是您的业务逻辑。将它传递给刷新 url 只是为下一个请求保存参数值(刷新发生时)。如果您需要更多详细信息,请发布更多详细信息。
    猜你喜欢
    • 2013-11-22
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-09
    相关资源
    最近更新 更多