I am new to Web Technologies. I am trying to do a simple program which ask the user to input a name, if valid the page redirects to another jsp file "RedirectIfSuccessful.jsp"
, if invalid the page redirects to "RedirectIfFailed.jsp"
. I am using the response.sendRedirect()
method to do this.
The redirect is working fine. However, I wish to access the name the user inputs in the form from RedirectIfSuccessful
and RedirectIfFailed
files so that when a valid name is entered the user is presented with a : Welcome, nameEntered and when failed the message would be nameEntered was not valid. Please go back and try again.
I tried using request.getParameter("name")
from both files but it's returning a null
value.. What can I do to access it?
This is the code I have: This is the RedirectingPage.jsp
<%@ page
language="java"
import="java.util.regex.*"
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">
<%
String name = request.getParameter("name");
final String NAME_PATTERN = "^[a-zA-Z]{3,15}$";
Pattern pattern = Pattern.compile(NAME_PATTERN);
Matcher matcher = pattern.matcher(name);
if (matcher.matches() == true){
response.sendRedirect("RedirectIfSuccessful.jsp");
} else {
response.sendRedirect("RedirectIfFailed.jsp");
}
%>
This is the HTML file where I have the form: FormSubmit.html
<html>
<head>
<title> Welcome </title>
</head>
<body BGCOLOR="#FDF5E6">
<p> <i> This program redirects to a page if the name entered is valid and to another one if name
entered is invalid... This uses response.sendRedirect() </i> </p>
<form action="RedirectingPage.jsp" method="post">
<font size=6 face="Georgia"> <strong> Enter your name: </strong> </font> <input type="text" name="name"> <br> <br>
<input type="submit" name="btn" value="Submit" >
</form>
</body>
</html>
And this is the Successful page:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title> Successful Submit </title>
</head>
<body>
<font face="Georgia" size="6"> Hello, <% request.getParameter("name"); %> </font>
</body>
</html>
I hope you can help and I was clear in my question. Thanks :)
sendRedirect() accepts the respective URL to which the request is to be redirected. Can redirect the request to another resource like Servlet, HTML page, or JSP page that are inside or outside the server. It works on the HTTP response object and always sends a new request for the object.
Difference between forward() and sendRedirect() methodThe forward() method works at server side. The sendRedirect() method works at client side. It sends the same request and response objects to another servlet. It always sends a new request.
A redirect consists in sending a response to the browser saying "Please go to the following URL : RedirectIfSuccessful.jsp".
When it receives this response, the browser sends a new request to RedirectIfSuccessful.jsp
, without any parameter. So getting the parameter name
from RedirectIfSuccessful.jsp
will return null.
If you want to have access to the name after the redirection, you need to send a redirect to RedirectIfSuccessful.jsp?name=<the name the user entered>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With