Java include(…)附加servlet的包名

Java include(…)附加servlet的包名,java,jsp,servlets,requestdispatcher,Java,Jsp,Servlets,Requestdispatcher,我有一个index.jsp页面,用于上传图像。提交时,它将转到servlet Upload.java。在servlet中,我正在检查imagejpg、png等的扩展是否会转发到新的jsp页面,否则它会显示错误消息并包含相同的index.jsp页面 我的servlet是一个名为servlet的包 如果我选择了一个图像,那么它工作正常。但是,如果我选择了图像以外的任何文件,那么index.jsp页面将显示预期的错误。到目前为止,它工作正常,但如果我从这里上传任何文件甚至图像,服务器会抱怨 下面是我如

我有一个index.jsp页面,用于上传图像。提交时,它将转到servlet Upload.java。在servlet中,我正在检查imagejpg、png等的扩展是否会转发到新的jsp页面,否则它会显示错误消息并包含相同的index.jsp页面

我的servlet是一个名为servlet的包

如果我选择了一个图像,那么它工作正常。但是,如果我选择了图像以外的任何文件,那么index.jsp页面将显示预期的错误。到目前为止,它工作正常,但如果我从这里上传任何文件甚至图像,服务器会抱怨

下面是我如何在UploadServlet.java servlet中包含index.jsp页面的

out.println("This type of file is not allowed. Please select an image.");
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/index.jsp");
dispatcher.include(request, response);
这是我第二次尝试上传图像时服务器的错误

HTTP Status 404 - /UploadImage/servlets/servlets/UploadServlet
它将servlet的包名附加到url


如何解决此问题?

您的url错误。您可以打开web.xml并在那里找到servlet映射元素,您可以找到映射url


我猜您的url可能是/CropImage/servlet/UploadServlet。您可以尝试删除url中的一个servlet。

您的url错误。您可以打开web.xml并在那里找到servlet映射元素,您可以找到映射url


我猜您的url可能是/CropImage/servlets/UploadServlet。您可以尝试删除url中的一个servlet。

显然,您在应用程序中使用的是相对操作url

打开index.jsp时,请求URL为

提交表单时,操作URL相对于当前文件夹,因此请求URL将为

当您再次提交表单时,该文件夹仍将是相对于当前文件夹的,因此您将以

您需要将其修复为域相对URL,以斜杠开头

这样,URL将相对于域根进行解析。您还可以通过${pageContext.request.contextPath}动态解析上下文路径:


显然,您在您的应用程序中使用了相对操作URL

打开index.jsp时,请求URL为

提交表单时,操作URL相对于当前文件夹,因此请求URL将为

当您再次提交表单时,该文件夹仍将是相对于当前文件夹的,因此您将以

您需要将其修复为域相对URL,以斜杠开头

这样,URL将相对于域根进行解析。您还可以通过${pageContext.request.contextPath}动态解析上下文路径:


它在firefox中运行良好,但问题在于IE。Manohar,这不是真的。它应该有同样的问题。这只是你对问题的误解。我在firefox上查过了,效果很好,我不知道怎么做。但在IE中,这是一个问题。我会试试下面给出的答案,让你们都知道。谢谢你的回复。它在firefox中运行良好,但问题在于IE。Manohar,这不是真的。它应该有同样的问题。这只是你对问题的误解。我在firefox上查过了,效果很好,我不知道怎么做。但在IE中,这是一个问题。我会试试下面给出的答案,让你们都知道。谢谢你的回复。这是我的J2EE组件的描述这是我的J2EE组件UploadServlet servlet的显示名称UploadServlet UploadServlet/Servlet/UploadServlet这是我的J2EE组件的描述这是我的J2EE组件UploadServlet Servlet.UploadServlet UploadServlet的显示名称/servlets/UploadServlet我将尝试它,并告诉您它是否解决了问题。谢谢你的回复。谢谢你的回答解决了我的问题。我用了,问题解决了,不用谢。不过,我建议您利用servlet的doGet方法,以便最终得到更干净的URL。另请参阅我们的servlets wiki页面:我将尝试它,并告诉您它是否解决了问题。谢谢你的回复。谢谢你的回答解决了我的问题。我用了,问题解决了,不用谢。不过,我建议您利用servlet的doGet方法,以便最终得到更干净的URL。另请参见我们的servlets wiki页面:
type Status report

message /UploadImage/servlets/servlets/UploadServlet

description The requested resource (/CropImage/servlets/servlets/UploadServlet) is not available.
Apache Tomcat/6.0.13