0

I have made a login validation project using model, view, controller but its not showing the intended result.There might be some error in controller part i guess.please have a look and see if there are any errors in it.

CONTROLLER- LoginController.java(servlet)

package mvcdemo.controllers;

import java.io.IOException;

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

import mcvdemo.model.Authenticator;
import mcvdemo.model.User;



public class LoginController extends HttpServlet {
 private static final long serialVersionUID = 1L;

 public LoginController() {
    super();
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
{
    String username = request.getParameter("username");
    String password = request.getParameter("password");


    RequestDispatcher rd = null;


  Authenticator authenticator = new Authenticator();
    String result = authenticator.authenticate(username,password);
    if(result.equals("success")){
        rd= request.getRequestDispatcher("/success.jsp");
        User user = new User(username,password);
        request.setAttribute("user", user);

    }
    else{
        rd= request.getRequestDispatcher("/error.jsp");
    }

rd.forward(request, response);  
}
            }

VIEW- 1)Login.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"           "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action = "LoginController" method = "post">
Enter user : <input type="text" name="username" id="username"/>
<br>
Enter password : <input type="text" name="password" id="password"/>
<input type="submit" />
</form>
</body>
</html>

2) Success.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"     "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
welcome!!!
</body>
</html>

3)error.jsp

   <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
   pageEncoding="ISO-8859-1"%>
   <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"   "http://www.w3.org/TR/html4/loose.dtd">
  <html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>Insert title here</title>
  </head>
  <body>
  Login failed!!!
  </body>
  </html>

MODEL-

1)Authenticator.java

package mcvdemo.model;

public class Authenticator {
public String authenticate(String username, String password){
if("gaurav".equalsIgnoreCase(username)&&("password".equals(password)))
{   
return "success";
}
else{
    return "failure";
}
}

}

2)Use.java

package mcvdemo.model;

public class User {

private String username;
private String password;

public User(String username, String password)
{
    this.username = username;
    this.password = password;
}
public String getUsername(){
    return username;
}
public void  setUsername(String username){
    this.username=username;
}

public String getPassword(){
    return password;
}
public void setPassword(String password){
    this.password=password;
}

}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<display-name>MVC-demo</display-name>
<servlet>
<description></description>
<display-name>LoginController</display-name>
<servlet-name>LoginController</servlet-name>
<servlet-class>mvcdemo.controllers.LoginController</servlet-class>

</servlet>

<servlet-mapping>
<servlet-name>LoginController</servlet-name>
<url-pattern>LoginController</url-pattern>
</servlet-mapping>

</web-app>

1 Answers1

1

The only thing I can see wrong in your code is the following line in web.xml:

<url-pattern>LoginController</url-pattern>

It should be

<url-pattern>/LoginController</url-pattern>

i.e. a / needs to be added before LoginController.

Luke Woodward
  • 63,336
  • 16
  • 89
  • 104