0

I am new to servlet.I am trying to call a Servlet to verify the username and password. But when executed,tomcat gives the error "The requested resource is not available"

Following is the code.

RequestServlet.java

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.*;
import javax.servlet.ServletException;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class RequestServlet
 */
@WebServlet("/RequestServlet")
public class RequestServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    PrintWriter out;

    /**
     * @see HttpServlet#HttpServlet()
     */

    public void service(HttpServletRequest req,HttpServletResponse res)throws ServletException,IOException
    {
        ((ServletResponse) res).setContentType("text/html");
        out=((ServletResponse) res).getWriter();
        out.println("<html><body>");
        out.println(req.getMethod());

    String name=req.getParameter("name");
        String pass=req.getParameter("pass");
        if(name.equals("asad")&&pass.equals("123"))
            out.println("user is valid");
        else
            out.println("not valid");
        out.println("</body></html>");  
    }
}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>Learnserv</display-name>
  <servlet>
        <servlet-name>RequestServlet</servlet-name>
        <servlet-class>RequestServlet</servlet-class>
    </servlet> 

   <servlet-mapping>
        <servlet-name>RequestServlet</servlet-name>
        <url-pattern>/RequestServlet</url-pattern>
    </servlet-mapping>
  <welcome-file-list>

    <welcome-file>asd.html</welcome-file>
  </welcome-file-list>
</web-app>

asd.html

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="/RequestServlet"   method="GET">
<input type="text" name="name">
<input type="password" name="pass">
<input type="submit" value="ok">
</form>
</body>

BalusC
  • 1,082,665
  • 372
  • 3,610
  • 3,555
asad_hussain
  • 1,959
  • 1
  • 17
  • 27

1 Answers1

1

Try to change <form action="/RequestServlet" method="GET"> to <form action="RequestServlet" method="post"> I think /RequestServlet is replaced by localhost:port/RequestServlet but need localhost:port/context/RequestServlet (if do not deploy at webapps/ROOT for Tomcat)

Also, if use @WebServlet("/RequestServlet") then to do the same in web.xml is dublicate. Or annotation or web.xml.

And place PrintWriter out inside service to be thread safe.

Eugene Kirin
  • 568
  • 3
  • 16