【问题标题】:Calling servlet results in HTTP Status 404 "The requested resource is not available" [duplicate]调用 servlet 导致 HTTP 状态 404“请求的资源不可用”[重复]
【发布时间】:2011-06-26 02:51:21
【问题描述】:

我在课堂p1 中有一个servlet register。我有一个 JSP jsp1.jsp。我运行 JSP 文件并看到它,但是当我尝试应用到 servlet 时,Tomcat 显示错误:

HTTP 状态 404

请求的资源 (/omgtuk/Register) 不可用。

小服务程序:

@WebServlet("/register")

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>omgtuk</display-name>
  
  
 <servlet>
    <description></description>
    <display-name>register</display-name>
    <servlet-name>register</servlet-name>
    <servlet-class>p1.register</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>register</servlet-name>
    <url-pattern>/register</url-pattern>
  </servlet-mapping>
  
  <welcome-file-list>
    <welcome-file>jsp1.jsp</welcome-file>
  </welcome-file-list>
</web-app>

我正在使用 Eclipse。

【问题讨论】:

  • “不可用”错误通常是由于应用程序未能正确初始化而发生的。在启动期间查看您的日志,看看是否有错误。

标签: servlets http-status-code-404


【解决方案1】:

请求的资源 (/omgtuk/Register) 不可用。

这仅仅意味着 servlet 没有侦听/Register 的 URL 模式。换句话说,你没有@WebServlet("/Register")

在您的特定情况下,您在 URL 中犯了大小写错误。 URL 区分大小写。您正在调用/Register,但您的servlet 正在侦听/register。相应地修复您的表单操作。

所以,它应该看起来像这样:

<form action="Register">

但它应该是这样的:

<form action="register">

或者这个,如果你在无聊的时候碰巧在 JSP 周围走动,它会更加健壮:

<form action="${pageContext.request.contextPath}/register">

与具体问题无关,请注意您通过类上的@WebServlet 注释和web.xml 中的&lt;servlet&gt; 条目注册了servlet。这个不对。您应该使用其中一个。 @WebServlet 是自 Servlet 3.0 (Java EE 6) 以来注册 servlet 的新方法,&lt;servlet&gt; 是注册 servlet 的旧方法。

只需去掉web.xml 中的整个&lt;servlet&gt;&lt;servlet-mapping&gt;。您无需同时指定两者。确保您正在阅读最新的书籍/教程。 Servlet 3.0 自 2009 年 12 月以来已经存在。

另一个细节是p1 不是一个类,它是一个包。我强烈建议在深入学习 Java EE 之前花更多时间学习基本的 Java。

另见:

【讨论】:

    猜你喜欢
    • 2013-06-02
    • 2020-04-29
    • 2016-09-18
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    相关资源
    最近更新 更多