Ali Arda Orhan
Ali Arda Orhan

Reputation: 784

Servlet Mappings

My problem is i mapped my servlets on web.xml. When i submit info to servlet it gives me "resuorces is not found" error. How can i solve this problem. Thanks your answers.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login Page</title>
</head>
<body>
<form action="Login" method="POST">
UserName:<input type="text" name="user_name">
<BR>
Password:<input type="password" name="password">
<BR>
<input type="submit" value="Gonder">
<BR>
<input type="reset" value="Reset">
</form>

</body>
</html>

SERVLET CODES are like this

import java.io.IOException;
import java.sql.SQLException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;


public class Login extends HttpServlet {
    private static final long serialVersionUID = 1L;
    private String usr_name;
    private String pass;
    static Logger log=Logger.getLogger(Login.class);






    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }


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

        response.setContentType("text/html");
        PropertyConfigurator.configure("C:\\Users\\AliArdaOrhan\\workspace2\\QuizProject\\WebContent\\WEB-INF\\log4j.properties");
        usr_name=request.getParameter("user_name");
        pass=request.getParameter("Password");

        try {
            if(Validation.validate(usr_name,pass)){
                RequestDispatcher rs=request.getRequestDispatcher("Welcome");
                rs.forward(request, response);
            }
            else{
                RequestDispatcher rs=request.getRequestDispatcher("login");
                rs.forward(request, response);
            }
        } catch (ClassNotFoundException | SQLException e) {
            log.error("Cannot Validate User Information", e);
        }

    }

}

WEB XML CODES are like this

   <?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_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>QuizProject</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>
    <description>Login Page</description>
    <display-name>Login</display-name>
    <servlet-name>Login</servlet-name>
    <servlet-class>Login</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Login</servlet-name>
    <url-pattern>/Login</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>Welcome</display-name>
    <servlet-name>Welcome</servlet-name>
    <servlet-class>Welcome</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Welcome</servlet-name>
    <url-pattern>/Welcome</url-pattern>
  </servlet-mapping>
</web-app>

Upvotes: 0

Views: 94

Answers (3)

Bhushan
Bhushan

Reputation: 6181

You need to add a servlet mapping for Login action in your web.xml:

<servlet>
    <description></description>
    <display-name>Login</display-name>
    <servlet-name>Login</servlet-name>
    <servlet-class>Login</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Login</servlet-name>
    <url-pattern>/Login</url-pattern>
</servlet-mapping>

And make sure you restart your server after you make those changes in web.xml.

And if you are using Servlet 3.0 then you can use annotations like below in your servlet which are equivalent to above code:

@WebServlet("/Login")
public class Login extends HttpServlet {

Upvotes: 1

sayan
sayan

Reputation: 501

Please change on this line

<form action="Login" method="POST">

replace "Login" with "/GuestBook"

Upvotes: 0

Kojotak
Kojotak

Reputation: 2070

You are sending your form to Login (relative URL), but your servlet awaits at /GuestBook. Change the servlet mapping or form's action attribute.

Upvotes: 0

Related Questions