2011-10-06 66 views
0

在我的Hello World程序在Tomcat我不能够从servlet的转发我的要求把jsp page.Here是我的位置: -在tomcat中转发到jsp时出错?

的servlet位置的webapps \你好\ WEB-INF \类\测试

位置JSP页面(RequestObjectInJSP)是的webapps \你好

我的代码将请求转发是

req.getRequestDispatcher("RequestObjectInJSP").forward(req, res); 

但它给错误所请求的资源(/你好/询价uestObjectInJSP)不可用。

不知道我在这里失踪了什么?

问题2: - 如果相若方式我试图从一个servlet的请求转发到另一个Servlet(均位于同一文件夹下)不工作。下面是代码片段

req.getRequestDispatcher(“servlet2”) .forward(req,res);

如果我给在web.xml servlet2的映射,然后,如果我们转发来自一个servlet的另一个请求,都趴在WEB-INF开始working.As按我的理解 /classes文件夹它应该工作而不给sevlet 2在web.xml中映射。 对不对?

回答

1

您的JSP文件缺少JSP扩展。添加并相应地修复路径。

req.getRequestDispatcher("RequestObjectInJSP.jsp").forward(req, res); 

至于你的第二个问题,是绝对需要到servlet上的URL模式,以便能够转发到URL映射(!!)给定的servlet。

+0

谢谢巴卢。它的工作。关于第二个问题,哟意味着即使我们必须转发/重定向请求,我们需要为web.xml中的每个servlet提供映射。正确? –

+0

是的。 'forward()'需要一个URL。所以你*真的*必须映射该URL上的servlet。您也可以查看MVC前端控制器模式,以便最终只有一个servlet。或者,当然,使用真正的MVC框架(如JSF,SpringMVC等),以便最终只需要一个JSP(或Facelets)文件和一个简单的JavaBean类。另见http://stackoverflow.com/questions/3541077/design-patterns-web-based-applications/ – BalusC