404报错
来源:2-1 第一个Servlet
China2477569
2021-04-03 22:07:42
运行出错!
相关代码:
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 类
上述贴出的代码显示该类是在com.imooc.servlet包下的,所以这里应将如下位置代码更改为:
2、问一下同学地址栏访问路径上,FirstServlet 是类名还是工程名,如果是类名,需将其更改为工程名
祝学习愉快~
相似问题