Spring 3 MVC accessing HttpRequest from controller
To access HttpRequest from controller you just need to define HttpServletRequest and HttpServletResponse as parameters in a function signature of your Controller. by doing this you allowing Spring MVC to pass these objects to you controller method.
Here is the sample code to access HttpRequest from controller:
login.jsp:
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<%@taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Login</title>
</head>
<body>
<div class="wrapper">
<div>
<form name="LoginForm" action="authenticateUser">
<div class="header"></div>
<h2>Flippadoo Login</h2>
<dl>
<dt>userid</dt>
<dd><input type="text"name="userName"></dd>
<dt>password</dt>
<dd><input type="password" name="userPassword"></dd>
</dl>
<div><input type="submit" name="button1" value="login"></div>
</form>
</div>
</div>
</body>
</html
Now define the below function in your controller:
@RequestMapping(value = "/authenticateUser", method = RequestMethod.GET)
public String authenticateUser(HttpServletRequest request,
HttpServletResponse response, @RequestParam("userName") String userName,
@RequestParam(value = "userPassword", required = false) String userPassword)
{
if(userName != null && !userName.trim().equals(""))
{
//here you can use your method to check user credentials
LoginResponse loginResponse = userService.getUserCredentials(userName, userPassword);
if (loginResponse != null && loginResponse.getStatus() == ServiceAPIStatus.OK.getStatus())
{
logger.debug("User Passed ::");
//Here I'm using request object to set user object into the seesion for further use
request.getSession().setAttribute("user", loginResponse.getUser());
return "redirect:home";
}
}
//You can use response object like:
//response.getOutputStream().write("write anything");
logger.debug("User Failed ::");
return "redirect:loginPage?error=true";
}
Hope this will help you :)
0 Comment(s)