Debugging-Analyse von 404-Fehlern – Tomcat meldet immer 404-Fehler, wenn dynamische JSP-Webseiten ausgeführt werden (ausführliche Erklärung)

1. Wenn wir bei der Entwicklung dynamischer JSP-Webseiten eine bestimmte Ressource auf dem Server über den Browser anfordern, kann es häufig zu Fehlern kommen, die 404-Fehler melden.

       Problemanalyse: Die Ursache dieses Fehlers kann in der JSP-Webseite oder im Servlet liegen. Wenn die Ressource, auf die zugegriffen werden soll, nicht vorhanden ist, wird ein 404-Fehler generiert.

       (1) Der 404-Fehler kann ein Problem mit der Anwendung selbst sein. Beispielsweise gibt es keine normale Bereitstellung und der Servlet-Name wird bei der Bereitstellung von web.xml falsch geschrieben.

       (2) Es kann sich auch um ein Dateiproblem handeln: Die JSP-Datei existiert nicht, der JSP-Name ist falsch oder das Servlet ist nicht konfiguriert



2. Über verschiedene Darstellungen des Servlet-Konfigurationsparameters URL-Muster (Servlet-Pfad) oder verschiedene Zugriffsmethoden von Servlet wird im Folgenden in Form von Code eine Einführung gegeben:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <display-name></display-name>
  <servlet>
    <servlet-name>TestServlet</servlet-name>
    <servlet-class>com.ccsu.zlWeb.TestServlet</servlet-class>
  </servlet>
  
<!-- 默认方式访问,使用单个斜杠("/")作为url-pattern参数值 -->
  <servlet-mapping>
    <servlet-name>TestServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
  
<!-- url-pattern参数值为[*.扩展名 ](扩展名是任意的)访问
  <servlet-mapping>
    <servlet-name>TestServlet</servlet-name>
    <url-pattern>/zl.ksgfj</url-pattern>
  </servlet-mapping>
-->
  
<!-- 路径映射访问,url-pattern参数值为[/*/*],"*"可取任意值
  <servlet-mapping>
    <servlet-name>TestServlet</servlet-name>
    <url-pattern>/xdy/fhdsdjklf</url-pattern>
  </servlet-mapping>
 -->
  
<!-- 精确匹配路径访问,url-pattern参数值为对应于web应用程序上下根的路径
  <servlet-mapping>
    <servlet-name>TestServlet</servlet-name>
    <url-pattern>/servlet/TestServlet</url-pattern>
  </servlet-mapping>
-->	

<!-- 注意,采用默认方式访问,需把此参数删掉,另外还需把index.jsp也删掉
  <welcome-file-list>
  	<welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
 -->
</web-app>

3. Häufige Fälle von 404-Fehlern:


[1] Der Tag/Parameter des URL-Musters ist falsch. Überprüfen Sie zu diesem Zeitpunkt das Verzeichnis work\Catalina\localhost von Tomcat. Sie können die von der JSP kompilierte Java-Quelldatei und Klassendatei nicht sehen. wie:

         „<url-pattern>/ShowContact</url-pattern>“ wird angezeigt „<servlet-url>/ShowContact</servlet-url>“

(PS: In allgemeinen IDE-Tools wird die Datei web.xml automatisch generiert, wenn das Projekt erstellt wird, und die Servlet-Konfiguration wird auch automatisch generiert, wenn das Servlet erstellt wird. Vielleicht konfigurieren wir sie manchmal selbst oder ändern sie versehentlich. habe etwas bekommen)


[2] Wenn web.xml das Servlet konfiguriert, ist der Name des Servlets falsch und stimmt nicht mit dem Namen der Servlet-Datei überein (häufiger).


[3] Wenn web.xml das Servlet konfiguriert, ist der Servlet-Class-Parameter (sollte der vollständige Klassenname des Servlets sein) falsch, dh der vollständige Pfad der Servlet-Klasse ist falsch

        Lassen Sie mich die Verknüpfung mit Ihnen teilen, um den vollständigen Klassennamen des Servlets zu erhalten:

         1. Öffnen Sie die Servlet- Datei, die das Servlet konfigurieren muss, und suchen Sie den Namen der Servlet-Klasse (geändert durch die öffentliche Klasse).

         2. Bewegen Sie den Cursor auf den Namen der Servlet-Klasse und doppelklicken Sie darauf (die Farbe ändert sich zu diesem Zeitpunkt).

         3. Klicken Sie dann mit der rechten Maustaste. Ein Dropdown-Menü wird angezeigt. Klicken Sie auf „Qualifizierten Namen kopieren“ (ähnlich dem Kopiervorgang).

        4. Gehen Sie dann zurück zu der Stelle, an der Sie den Klassenpfad konfigurieren möchten, und fügen Sie ihn einfach ein (tatsächlich wird der vollständige Klassenname der Servlet-Klasse angezeigt, wenn Sie ihn irgendwo einfügen).


(Vorgangsbeispiel: Doppelklicken Sie auf den Klassennamen ShowContact einer Servlet-Datei (ShowContact.java) --- > Rechtsklick darauf ---> Klicken Sie auf „Qualifizierten Namen kopieren“ ---> Einfügen. Als nächstes wird die Servlet-Klasse angezeigt Der vollständige Klassenname „cn.ccsu.web.ShowContact“, nicht der Name des Servlets.


[4] Die Willkommensdateiliste in web.xml ist nicht konfiguriert; oder sie ist konfiguriert, aber der Parameter der Willkommensdatei ist falsch. Das heißt, der Name seines Parameterwerts *.jsp oder *.htm oder *.html ist falsch und stimmt nicht mit dem Namen der Webseitendatei überein


【5】找不到资源,即文件不存在(较为常见),即路径中的资源名字不对,打错了;或者该资源本来就没有。

Supongo que te gusta

Origin blog.csdn.net/u014698745/article/details/45935021
Recomendado
Clasificación