I'm facing a problem right now. I just started learning servlets and when I tried to run the program, it shows an error. I tried looking for ways to solve them like adding javax.servlet.jar but couldn't solve the issue. I'm currently using NetBeans 12.4. This is the code I have.
HTML code:
< html >
< head >
< title >Cookies< /title >
< /head >
< body >
< form action=`FirstServlet' method="post" >
Name:< input type="text" name="userName"/ >< br/ >
< input type="submit" value="go"/ >
< /form >
< /body >
< /html >
FirstServlet code:
package Cookie;
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;
import javax.servlet.http.Cookie;
public class FirstServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
String n=request.getParameter("userName");
out.print("Welcome"+n);
Cookie ck= new Cookie("uname",n);
response.addCookie(ck);
out.print("<form action='servlet2'>");
out.print("<input type='submit' value='Next page'>");
out.print("</form");
out.close();
}catch(Exception e){
System.out.println(e);
}
}
}
Web.xml:
< ?xml version="1.0" encoding="UTF-8"? >
< web-app version="4.0" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" >
< servlet >
< servlet-name >FirstServlet< /servlet-name >
< servlet-class >Cookie.FirstServlet< /servlet-class >
< /servlet >
< servlet >
< servlet-name >servlet2< /servlet-name >
< servlet-class >Cookie.servlet2< /servlet-class >
< /servlet >
< servlet-mapping >
< servlet-name >FirstServlet< /servlet-name >
< url-pattern >/FirstServlet< /url-pattern >
< /servlet-mapping >
< servlet-mapping >
< servlet-name >servlet2< /servlet-name >
< url-pattern >/servlet2< /url-pattern >
< /servlet-mapping >
< session-config >
< session-timeout >
30
< /session-timeout >
< /session-config >
< /web-app >
Servlet2 code:
package Cookie;
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;
import javax.servlet.http.Cookie;
public class servlet2 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
Cookie ck[]=request.getCookies();
out.print("Servlet 2"+ ck[0].getValue());
out.close();
}catch(Exception e){
System.out.println(e);
}
}
}
And this is the error I have:
HTTP Status 500 - Internal Server Error type Exception report
message: Internal Server Error
description: The server encountered an internal error that prevented it from fulfilling this request.
exception
jakarta.servlet.ServletException: Class Cookie.FirstServlet is not a Servlet root cause
java.lang.ClassCastException: Cookie.FirstServlet cannot be cast to jakarta.servlet.Servlet note The full stack traces of the exception and its root causes are available in the Eclipse GlassFish 6.0.0 logs.
Eclipse GlassFish 6.0.0