404报错

来源:2-1 第一个Servlet

China2477569

2021-04-03 22:07:42

http://img.mukewang.com/climg/606875ff09806bca19201036.jpg

运行出错!

相关代码:

package com.imooc.servlet;


import java.io.IOException;

import java.io.PrintWriter;


import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;


public class FirstServlet extends HttpServlet{


@Override

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//接受请求发来的参数

String name=request.getParameter("name");

String html="<h1 style='color:red'>"+name+"</h1><hr/>";

System.out.println("返回给浏览器的相应数据为:"+html);

PrintWriter out=response.getWriter();

out.println("html");//将html发送会浏览器

}

}



<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">

  <display-name>FirstServlet</display-name>

  <welcome-file-list>

    <welcome-file>index.html</welcome-file>

    <welcome-file>index.htm</welcome-file>

    <welcome-file>index.jsp</welcome-file>

    <welcome-file>default.html</welcome-file>

    <welcome-file>default.htm</welcome-file>

    <welcome-file>default.jsp</welcome-file>

  </welcome-file-list>

  <!-- 声明servlet -->

  <servlet>

  <servlet-name>first</servlet-name>

  <servlet-class>com.imooc.FirstServlet</servlet-class>

  </servlet>

  <servlet-mapping>

  <servlet-name>first</servlet-name>

  <url-pattern>/hi</url-pattern>

  </servlet-mapping>

</web-app>

控制台输出的信息是这样的:

四月 03, 2021 9:54:58 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: Server.服务器版本: Apache Tomcat/8.5.64

四月 03, 2021 9:54:58 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: 服务器构建:        Mar 4 2021 23:14:16 UTC

四月 03, 2021 9:54:58 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: 服务器版本号:      8.5.64.0

四月 03, 2021 9:54:58 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: 操作系统名称:      Windows 10

四月 03, 2021 9:54:58 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: OS.版本:           10.0

四月 03, 2021 9:54:58 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: 架构:              amd64

四月 03, 2021 9:54:58 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: Java 环境变量:     C:\Program Files\Java\jre1.8.0_271

四月 03, 2021 9:54:58 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: Java虚拟机版本:    1.8.0_271-b09

四月 03, 2021 9:54:58 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: JVM.供应商:        Oracle Corporation

四月 03, 2021 9:54:58 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: CATALINA_BASE:     D:\apache-tomcat-8.5.64

四月 03, 2021 9:54:58 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: CATALINA_HOME:     D:\apache-tomcat-8.5.64

四月 03, 2021 9:54:58 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: 命令行参数:       -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:59453

四月 03, 2021 9:54:58 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: 命令行参数:       -javaagent:D:\eclipse\configuration\org.eclipse.osgi\411\0\.cp\lib\javaagent-shaded.jar

四月 03, 2021 9:54:58 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: 命令行参数:       -Dcatalina.base=D:\apache-tomcat-8.5.64

四月 03, 2021 9:54:58 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: 命令行参数:       -Dcatalina.home=D:\apache-tomcat-8.5.64

四月 03, 2021 9:54:58 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: 命令行参数:       -Dwtp.deploy=D:\apache-tomcat-8.5.64\webapps

四月 03, 2021 9:54:58 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: 命令行参数:       -Djava.endorsed.dirs=D:\apache-tomcat-8.5.64\endorsed

四月 03, 2021 9:54:58 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: 命令行参数:       -Dfile.encoding=GBK

四月 03, 2021 9:54:58 下午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent

信息: 在java.library.path:[C:\Program Files\Java\jre1.8.0_271\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Program Files/Java/jre1.8.0_271/bin/server;C:/Program Files/Java/jre1.8.0_271/bin;C:/Program Files/Java/jre1.8.0_271/lib/amd64;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Users\86159\AppData\Local\Microsoft\WindowsApps;C:\Program Files\Java\jdk1.8.0_162\bin;D:\eclipse;;.]上找不到基于APR的Apache Tomcat本机库,该库允许在生产环境中获得最佳性能

四月 03, 2021 9:54:58 下午 org.apache.coyote.AbstractProtocol init

信息: 初始化协议处理器 ["http-nio-8080"]

四月 03, 2021 9:54:59 下午 org.apache.tomcat.util.net.NioSelectorPool getSharedSelector

信息: Using a shared selector for servlet write/read

四月 03, 2021 9:54:59 下午 org.apache.catalina.startup.Catalina load

信息: Initialization processed in 886 ms

四月 03, 2021 9:54:59 下午 org.apache.catalina.core.StandardService startInternal

信息: 正在启动服务[Catalina]

四月 03, 2021 9:54:59 下午 org.apache.catalina.core.StandardEngine startInternal

信息: Starting Servlet Engine: Apache Tomcat/8.5.64

四月 03, 2021 9:54:59 下午 org.apache.jasper.servlet.TldScanner scanJars

信息: 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。

四月 03, 2021 9:54:59 下午 org.apache.catalina.startup.HostConfig deployDirectory

信息: 把web 应用程序部署到目录 [D:\apache-tomcat-8.5.64\webapps\docs]

四月 03, 2021 9:54:59 下午 org.apache.jasper.servlet.TldScanner scanJars

信息: 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。

四月 03, 2021 9:54:59 下午 org.apache.catalina.startup.HostConfig deployDirectory

信息: Web应用程序目录[D:\apache-tomcat-8.5.64\webapps\docs]的部署已在[61]毫秒内完成

四月 03, 2021 9:54:59 下午 org.apache.catalina.startup.HostConfig deployDirectory

信息: 把web 应用程序部署到目录 [D:\apache-tomcat-8.5.64\webapps\examples]

四月 03, 2021 9:54:59 下午 org.apache.jasper.servlet.TldScanner scanJars

信息: 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。

四月 03, 2021 9:54:59 下午 org.apache.catalina.core.ApplicationContext log

信息: ContextListener: contextInitialized()

四月 03, 2021 9:54:59 下午 org.apache.catalina.core.ApplicationContext log

信息: SessionListener: contextInitialized()

四月 03, 2021 9:54:59 下午 org.apache.catalina.core.ApplicationContext log

信息: ContextListener: attributeAdded('StockTicker', 'async.Stockticker@364b8ef6')

四月 03, 2021 9:54:59 下午 org.apache.catalina.startup.HostConfig deployDirectory

信息: Web应用程序目录[D:\apache-tomcat-8.5.64\webapps\examples]的部署已在[449]毫秒内完成

四月 03, 2021 9:54:59 下午 org.apache.catalina.startup.HostConfig deployDirectory

信息: 把web 应用程序部署到目录 [D:\apache-tomcat-8.5.64\webapps\host-manager]

四月 03, 2021 9:54:59 下午 org.apache.jasper.servlet.TldScanner scanJars

信息: 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。

四月 03, 2021 9:54:59 下午 org.apache.catalina.startup.HostConfig deployDirectory

信息: Web应用程序目录[D:\apache-tomcat-8.5.64\webapps\host-manager]的部署已在[57]毫秒内完成

四月 03, 2021 9:54:59 下午 org.apache.catalina.startup.HostConfig deployDirectory

信息: 把web 应用程序部署到目录 [D:\apache-tomcat-8.5.64\webapps\manager]

四月 03, 2021 9:55:00 下午 org.apache.jasper.servlet.TldScanner scanJars

信息: 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。

四月 03, 2021 9:55:00 下午 org.apache.catalina.startup.HostConfig deployDirectory

信息: Web应用程序目录[D:\apache-tomcat-8.5.64\webapps\manager]的部署已在[60]毫秒内完成

四月 03, 2021 9:55:00 下午 org.apache.catalina.startup.HostConfig deployDirectory

信息: 把web 应用程序部署到目录 [D:\apache-tomcat-8.5.64\webapps\ROOT]

四月 03, 2021 9:55:00 下午 org.apache.jasper.servlet.TldScanner scanJars

信息: 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。

四月 03, 2021 9:55:00 下午 org.apache.catalina.startup.HostConfig deployDirectory

信息: Web应用程序目录[D:\apache-tomcat-8.5.64\webapps\ROOT]的部署已在[41]毫秒内完成

四月 03, 2021 9:55:00 下午 org.apache.coyote.AbstractProtocol start

信息: 开始协议处理句柄["http-nio-8080"]

四月 03, 2021 9:55:00 下午 org.apache.catalina.startup.Catalina start

信息: Server startup in 1061 ms

四月 03, 2021 9:56:27 下午 org.apache.catalina.core.ApplicationContext log

信息: 将servlet[first]标记为不可用

四月 03, 2021 9:56:27 下午 org.apache.catalina.core.StandardWrapperValve invoke

严重: 分配异常的servlet [first]

java.lang.ClassNotFoundException: com.imooc.FirstServlet

at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1372)

at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1195)

at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:545)

at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:526)

at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:150)

at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1044)

at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:763)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:134)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:544)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)

at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:698)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:364)

at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:616)

at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)

at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:831)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1629)

at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Unknown Source)


写回答

1回答

好帮手慕小脸

2021-04-05

同学你好,

1、404是访问路径不正确,根据报错信息来看:找不到FirstServlet 类

http://img.mukewang.com/climg/606a6e97099e101605920139.jpg

上述贴出的代码显示该类是在com.imooc.servlet包下的,所以这里应将如下位置代码更改为:

http://img.mukewang.com/climg/606a6efa091f0a9a05710166.jpg

2、问一下同学地址栏访问路径上,FirstServlet 是类名还是工程名,如果是类名,需将其更改为工程名

http://img.mukewang.com/climg/606a6f690909fc8703800050.jpg

祝学习愉快~

1

0 学习 · 16556 问题

查看课程