Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp servlet 3.x中的注释出错_Jsp_Servlets_Http Status Code 404_Welcome File - Fatal编程技术网

Jsp servlet 3.x中的注释出错

Jsp servlet 3.x中的注释出错,jsp,servlets,http-status-code-404,welcome-file,Jsp,Servlets,Http Status Code 404,Welcome File,这是我的路 <welcome-file>home</welcome-file> 并转发到文件homeview.jsp RequestDispatcher dispatcher = this.getServletContext().getRequestDispatcher("/SimpleWebApp/WebContent/WEB-INF/views/homeview.jsp"); dispatcher.forward(request, response

这是我的路

 <welcome-file>home</welcome-file>
并转发到文件homeview.jsp

        RequestDispatcher dispatcher = this.getServletContext().getRequestDispatcher("/SimpleWebApp/WebContent/WEB-INF/views/homeview.jsp");
dispatcher.forward(request, response);
但是,当我运行我的web应用程序时,它会出现htttp状态为404的错误
不管怎样,帮我修复它?非常感谢你的代码工作正常。但是,

与项目结构中的以下内容类似,您可以通过这种方式访问它

家庭控制器(yourServlet)

结构

WebContent
       |
       |__static
       |
       |__WEB-INF
              |__lib
              |__views/homeview.jsp
              |__web.xml

欢迎文件只能是静态文件,因此,例如jsp或html文件,它不能指定servlet

如果希望servlet充当欢迎页面,则应将其映射设置为/*以使其成为默认servlet。因此,在您的注释中:

@WebServlet(urlPatterns=“/*”)

这样,每当收到不映射到任何其他资源的请求时,就会调用servlet

此外,您还需要修复转发请求,以指定与应用程序的内容根相关的url,如另一个答案所示

以下是根据servlet规范(本文摘自servlet 3.0规范第12.1节)映射的工作原理,仅供参考:

  • 容器将尝试找到请求路径与servlet路径的精确匹配。成功匹配将选择servlet

  • 容器将递归地尝试匹配最长路径前缀。这是通过使用“/”字符作为路径分隔符,一次将路径树从一个目录中删除来完成的。最长匹配确定所选的servlet

  • 如果URL路径中的最后一段包含扩展名(例如.jsp),servlet容器将尝试匹配处理扩展名请求的servlet。扩展名定义为最后一个“.”字符后最后一段的一部分


  • 如果前三个规则都没有导致servlet匹配,那么容器将尝试提供适合所请求资源的内容。如果为应用程序定义了“默认”servlet,则将使用它。许多容器都提供了一个隐式的默认servlet来提供内容。

    整个404错误是什么?请求的资源不可用。您是否能够解决问题?我正在关注Gurkan的帖子,但仍然存在错误您现在遇到了什么错误?您完全正确。我试过了,它在码头上很管用。我会说一点英语。写作更糟:)对不起。我写这篇文章不是为了亲自尝试。谢谢,但我没有使用Jetty,我只是学习了几天servler和jsp,我不知道如何使用Jetty。我想使用anotationIm fixed done.error不在代码和结构项目中。我检查了我的homview.jsp,在这里发现了错误(我包括_fooder和_homeview的头,但它出错了)。谢谢大家!
    request.getRequestDispatcher("/WEB-INF/views/homeview.jsp").forward(request, response);
    
    WebContent
           |
           |__static
           |
           |__WEB-INF
                  |__lib
                  |__views/homeview.jsp
                  |__web.xml