使用getRequestDispatcher的JSP中的路径问题

时间:2009-12-08 13:35:19

标签: java jsp

在我的应用程序中,我使用jsp:include作为:

<jsp:include page="/jsp/selectRoom/listRoom.jsp" />

这工作正常,但当我在我的servlet中包含相同的JSP时:

RequestDispatcher rd = getServletContext().getRequestDispatcher("//jsp//selectRoom//listRoom.jsp");
rd.include(request, response);

那不行。 我是否犯了一些语法错误?


由于不需要日志详细信息,我将从帖子中删除日志详细信息。

5 个答案:

答案 0 :(得分:2)

缺少一个副词:

RequestDispatcher rd = getServletContext().getRequestDispatcher("//jsp//selectRoom//listRoom.jsp");

而且我不确定你是否真的需要那些双斜线。

祝你好运,
费边

答案 1 :(得分:0)

我同意我的前任们的看法。没有必要使用路径中的另一个/转义/字符。 Java String不以任何特殊方式解释'/'。只有'\'需要使用额外的'\'进行转义。

答案 2 :(得分:0)

(如果您使用tomcat) - 如何转到/tomcat/work/Catalina/localhost/yourwebapp/org/.../jsp/selectedRoom/yourjsp_jsp.java并从那里复制粘贴RequestDispatcher代码(您将需要搜索一下)。它应该工作。

.java文件是tomcat从你的jsp生成的servlet。

有问题的jsp是您成功使用<jsp:include>

的jsp

答案 3 :(得分:0)

你确定它不起作用吗?我使用以下代码做了一个简单的webapp:

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class Test extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        RequestDispatcher rd = getServletContext().getRequestDispatcher("/jsp/selectRoom/listRoom.jsp") ;
        rd.include(request, response) ;
    }
}

并且完美地工作

答案 4 :(得分:0)

RequestDispatcher rd = getServletContext().getRequestDispatcher("/NewPurchase.do");
        rd.forward(request, response) ;