Java 在tomcat中转发到jsp时出错?

Java 在tomcat中转发到jsp时出错?,java,web-applications,tomcat,Java,Web Applications,Tomcat,在tomcat上的hello world程序中,我无法将请求从servlet转发到jsp页面。以下是我的位置:- servlet位置为webapps\hello\WEB-INF\classes\test jsp页面(RequestObjectInJSP)的位置是webapps\hello 我转发请求的代码是 req.getRequestDispatcher("RequestObjectInJSP").forward(req, res); 但是它给出了错误请求的资源(/hello/Request

在tomcat上的hello world程序中,我无法将请求从servlet转发到jsp页面。以下是我的位置:-

servlet位置为webapps\hello\WEB-INF\classes\test

jsp页面(RequestObjectInJSP)的位置是webapps\hello

我转发请求的代码是

req.getRequestDispatcher("RequestObjectInJSP").forward(req, res);
但是它给出了错误请求的资源(/hello/RequestObjectInJSP)不可用。

不确定我在这里遗漏了什么?

问题2:类似地,如果我尝试将请求从一个servlet转发到另一个servlet(都位于同一文件夹下),也不起作用

req.getRequestDispatcher(“servlet2”).转发(req,res)

如果我在web.xml中给出servlet2的映射,那么它就开始工作了
如果我们将请求从一个servlet转发到另一个servlet,并且两个servlet都位于webinf/classes文件夹下,那么它应该可以工作,而不需要在web.xml中给出sevlet2映射对吗?

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

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

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

谢谢Balu。关于第二个问题,你的意思是,即使我们必须转发/重定向请求,我们也需要为web.xml中的每个servlet提供映射。正确吗?是的。
forward()
需要一个URL。因此,您必须将servlet映射到该URL上。您也可以选择查看MVC前端控制器模式,这样您就只需要一个servlet。当然,也可以使用真正的MVC框架,如JSF、SpringMVC等,这样您最终只需要一个JSP(或Facelets)文件和每个视图一个简单的JavaBean类。另见