Я создал сервлет Cook ie App, который будет хранить для меня Cook ie. Его функция - предоставить страницу, на которой я могу ввести имя пользователя, и предоставит страницу с приветствием пользователя, но я получение исключения из класса не найден Я новичок в сервлете, поэтому не понимаю, почему это происходит. Я предоставляю структуру своего проекта ниже

Мой сервлет Entry код
package ducat;
import javax.servlet.http.*;
import javax.servlet.*;
import java.io.*;
public class EntryServlet extends HttpServlet {
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
//Request data is read
String name=request.getParameter("name");
//A cookie is created for the name
Cookie ck=new Cookie("user",name);
//Making the cookie persistent for a day
ck.setMaxAge(60*60*24);
//cookie is added to the response
response.addCookie(ck);
//content type of response is set
response.setContentType("text/html");
//output stream is obtained
PrintWriter out=response.getWriter();
//response is generated
out.println("<h3>Welcome, "+name+"</h3>");
out.println("<a href=exitServlet>exit</a>");
//output stream is closed
out.close();
}
}
мой код сервлета выхода
package ducat;
import javax.servlet.http.*;
import javax.servlet.*;
import java.io.*;
public class ExitServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
//Var to store userName
String name="Guest";
//Cookies are obtained from the request object
Cookie ck[]=request.getCookies();
//if a cookie is received, its value is read
if(ck != null)
name=ck[0].getValue(); //We have sent only cookie in
//the previous servlet hence this array would have at
//most one memeber
//content type of response is set
response.setContentType("text/html");
//output stream is obtained
PrintWriter out=response.getWriter();
//response is generated
out.println("<h3>"+name+", you have successfully exited.</h3>");
out.println("<a href=index.html>try again</a>");
//output stream is closed
out.close();
}
}
My Web. xml код
<?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" version="3.1">
<servlet>
<servlet-name>s1</servlet-name>
<servlet-class>ducat.EntryServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>s1</servlet-name>
<url-pattern>/entryServlet</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>s2</servlet-name>
<servlet-class>ducat.ExitServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>s2</servlet-name>
<url-pattern>/exitServlet</url-pattern>
</servlet-mapping>
</web-app>
Я также предоставляю трассировку стека
Mar 10, 2020 8:16:04 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version name: Apache Tomcat/8.5.51
Mar 10, 2020 8:16:04 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built: Feb 5 2020 22:26:25 UTC
Mar 10, 2020 8:16:04 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version number: 8.5.51.0
Mar 10, 2020 8:16:04 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name: Windows 10
Mar 10, 2020 8:16:04 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version: 10.0
Mar 10, 2020 8:16:04 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture: amd64
Mar 10, 2020 8:16:04 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home: C:\Program Files\Java\jre1.8.0_221
Mar 10, 2020 8:16:04 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version: 1.8.0_221-b11
Mar 10, 2020 8:16:04 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor: Oracle Corporation
Mar 10, 2020 8:16:04 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE: C:\Users\Anirban Mitra\Documents\udemy\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
Mar 10, 2020 8:16:04 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME: C:\Users\Anirban Mitra\Downloads\apache-tomcat-8.5.51-windows-x64\apache-tomcat-8.5.51
Mar 10, 2020 8:16:04 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=C:\Users\Anirban Mitra\Documents\udemy\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
Mar 10, 2020 8:16:04 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=C:\Users\Anirban Mitra\Downloads\apache-tomcat-8.5.51-windows-x64\apache-tomcat-8.5.51
Mar 10, 2020 8:16:04 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dwtp.deploy=C:\Users\Anirban Mitra\Documents\udemy\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
Mar 10, 2020 8:16:04 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.endorsed.dirs=C:\Users\Anirban Mitra\Downloads\apache-tomcat-8.5.51-windows-x64\apache-tomcat-8.5.51\endorsed
Mar 10, 2020 8:16:04 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dfile.encoding=Cp1252
Mar 10, 2020 8:16:04 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [C:\Program Files\Java\jre1.8.0_221\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Program Files/Java/jre1.8.0_221/bin/server;C:/Program Files/Java/jre1.8.0_221/bin;C:/Program Files/Java/jre1.8.0_221/lib/amd64;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;"E:\app\Oracle\product\12.1.0\dbhome_1\bin;C:\Users\Anirban Mitra\AppData\Local\Programs\Python\Python37";c:\Program Files (x86)\Intel\iCLS Client\;c:\Program Files\Intel\iCLS Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Windows Kits\8.0\Windows Performance Toolkit\;C:\WINDOWS\System32\OpenSSH\;C:\Gradle\gradle-3.4.1\bin;C:\Program Files\TortoiseSVN\bin;C:\Users\Anirban Mitra\Downloads\derby\db-derby-10.8.1.2-bin;C:\Program Files\MySQL\MySQL Shell 8.0\bin\;C:\Program Files\Java\jdk1.8.0_221\bin;C:\Users\Anirban Mitra\AppData\Local\Microsoft\WindowsApps;C:\Users\Anirban Mitra\AppData\Local\atom\bin;C:\Users\Anirban Mitra\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\Anirban Mitra\Downloads\tools\apache-maven-3.2.5\bin;;C:\Program Files\JetBrains\IntelliJ IDEA 2019.2.3\bin;;C:\Windows\sts-bundle\sts-3.9.5.RELEASE;;.]
Mar 10, 2020 8:16:05 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
Mar 10, 2020 8:16:05 AM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Mar 10, 2020 8:16:05 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 2713 ms
Mar 10, 2020 8:16:05 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service [Catalina]
Mar 10, 2020 8:16:05 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/8.5.51
Mar 10, 2020 8:16:27 AM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Mar 10, 2020 8:16:46 AM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Mar 10, 2020 8:17:04 AM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Mar 10, 2020 8:17:22 AM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Mar 10, 2020 8:17:35 AM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Mar 10, 2020 8:17:51 AM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Mar 10, 2020 8:18:04 AM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Mar 10, 2020 8:18:04 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]
Mar 10, 2020 8:18:04 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 118753 ms
Mar 10, 2020 8:19:25 AM org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet [s1] as unavailable
Mar 10, 2020 8:19:25 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Allocate exception for servlet [s1]
java.lang.ClassNotFoundException: ducat.EntryServlet
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1358)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1180)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:546)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:527)
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:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:688)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:609)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:818)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1623)
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)