如果在第一个 jsp 页面设置了刷新参数,则会刷新所有 jsp 页面
All jsp pages are getting refreshed if refresh parameter is set at the first jsp page
我正在尝试刷新起始页(调用某些函数)说"1.jsp",一旦满足条件,它就会重定向到另一个jsp页面,说"2.jsp",但不确定为什么2.jsp也被刷新。不仅如此,在 1.jsp 中调用的函数也被调用。下面是示例代码,仅用于理解:
1.jsp
<body>
<h1>Hello World!</h1>
<%
// Here i am trying to read some txt file which is contantly being updated. (by refreshing the page)
// when txt file is written completely, some character like "### DONE ###" will be present at its last line.
// once "### DONE ###" is found , it will be redirected to "2.jsp"
System.out.println("1");
// if "###DONE###" found
RequestDispatcher rd=request.getRequestDispatcher("2.jsp");
rd.forward(request, response);
%>
</body>
2.jsp
<body>
<h1>Hello World! PAGE 2</h1>
</body>
网络.xml
<welcome-file-list>
<welcome-file>1.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>SampleFilter</filter-name>
<filter-class>com.SampleFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SampleFilter</filter-name>
<url-pattern>/2.jsp</url-pattern>
</filter-mapping>
** 样本过滤器**
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
chain.doFilter(request, new HttpServletResponseWrapper((HttpServletResponse) response) {
public void setHeader(String name, String value) {
System.out.println(name+"-------------------------------");
if (!name.equalsIgnoreCase("Refresh")) {
System.out.println("inside");
super.setHeader("Refresh", "2");
}
}
});
}
我的猜测是,当您执行rd.forward(request, response)
时,您实际上会转发response.addHeader("Refresh","2")
,从而导致下一页也自动刷新。
我不确定为什么您需要在转发之前刷新,但是如果您必须拥有它 - 检查是否可以删除特定标头("刷新"),也许使用此处提出的解决方案:如何删除HTTP响应标头?
编辑:
此外,您应该考虑通过 HTML 标记来触发刷新,而不是通过服务器端属性(如标头)触发刷新:<meta http-equiv="refresh" content="2" />
相关文章:
- Selectbox选项在页面刷新jsp后保持选中状态
- 如何在刷新jsp页面后保持单选按钮选中点击单选按钮
- 不可刷新的Jsp页面
- 如果在第一个 jsp 页面设置了刷新参数,则会刷新所有 jsp 页面
- 单击弹出窗口警告框时,父 Jsp 页面刷新
- 页面自动刷新 JSP 时自动提交
- 在 jsp 中使用 ajax 刷新按钮时刷新行的列
- 如何在不使用 jquery 刷新页面的情况下保持在同一 jsp 页面实例上
- 如何在不创建单独的jsp的情况下刷新表
- 在不刷新的情况下更新jsp页面的内容
- 刷新JSP/避免缓存中的图像
- 在jsp中页面刷新后检索先前填充的值和选择
- 刷新JSP后保存动态添加的标记
- 如何定期刷新jsp页面的特定部分
- 浏览器显示过时的JSP页面,用户必须手动刷新
- 在不刷新页面的情况下提交JSP后发出javascript警报
- 如何从服务器触发JSP页面刷新
- 如何刷新JSP的内容
- 如何从JSP刷新/访问模型
- 在tile中刷新jsp