使用jsp servlet刷新时出现404错误

时间:2013-02-19 13:13:14

标签: html jsp servlets

你好我是jsp / servlets的新手,我有一个关于相对或abselute路径的基本问题: 我有以下层次结构,使用netbeans:

Web Pages
|  |-Status
|     |-clientRequests.jsp
|  |-index.jsp
|  |-WEB-INF
|     |-professional.jsp

index.jsp以及根路径中的Status文件夹和WEB-INF文件夹。 在Status文件夹中,我们有clientRequests.jsp文件。 在WEB-INF文件夹中,我们有professional.jsp文件。

在index.jsp中我已经完成了对professional.jsp的调度, 在专业jsp里面我有<iframe src="Status/clientsRequests.jsp"></iframe>clientsRequests.jsp里面我有

<%
        response.setHeader("Refresh", "5;url=../index.jsp");  
%>

这意味着每5秒将刷新clientsRequests.jsp文件,然后转到index.jsp的“控制器”。 现在我想成为每5分钟,只有iframe刷新而不是孔页。 我的问题:在第二次刷新时,它给了我404。

我试着玩那个,我做了一件丑陋的事情:

String a = (String)session.getAttribute("nav");
if(a == null){
    session.setAttribute("nav", "aaa");  
    response.setHeader("Refresh", "5;url=../index.jsp");  
}else{
    response.setHeader("Refresh", "5;url=index.jsp"); 
}

和它的工作,但我不希望我这样离开... 你有什么建议吗? 谢谢!

2 个答案:

答案 0 :(得分:1)

不知何故,您的回复也是为iframe的父级设置标头。将以下行放在clientsRequests.jsp。

<meta http-equiv="refresh" content="5">

答案 1 :(得分:1)

一个替代方案是move the clientRequests.jsp to the same level as index.jsp。 在您的代码中,您可以随时执行此操作

response.setHeader("Refresh", "5;url=index.jsp"); 

使用此设置的一个优点是,<iframe src="Status/clientsRequests.jsp"></iframe>可以添加到应用程序中的任何JSP页面,并且servlet代码中没有任何更改/影响