I am trying to learn the requestDispatcher.forward
function. So I wrote an Html code and then as we click the submit button on the HTML page it goes to a webservlet1. There I use forward function to go to webservlet2.
Please see the code below
web.html
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Login Page</title>
<style type="text/css">
div{
top:10px;
left:100px;
width:250px;
height:120px;
border: 2px solid green;
border-color:green;
background-color:yellow;
}
</style>
<script type="text/javascript">
function loginValidation(){
var FirstName=document.LoginForm.fname.value;
var LastName=document.LoginForm.lname.value;
if(FirstName=="" || LastName=""){
alert("Field cannot be empty");
return false;
}
}
</script>
</head>
<body>
<div>
<form name="LoginForm" action="welcomeservlet1" onsubmit="return loginValidation()" method="post">
<table>
<tr><td>First Name</td><td><input type="text" name="fname"/></td></tr>
<tr><td>Last Name</td><td><input type="text" name="lname"/></td></tr>
<tr><td colspan="2" align="center"><input type="submit" value="login"/></td></tr>
</table>
</form>
</div>
</body>
</html>
Code for welcomeservlet1
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
PrintWriter out=response.getWriter();
String fname=request.getParameter("fname");
String lname=request.getParameter("lname");
String FullName=fname+" "+lname;
FullName=FullName.toUpperCase();
out.println("<h1><font color=green> Welcome "+FullName+"</font></h1>\n");
request.setAttribute("Fullname",FullName);
RequestDispatcher requestdispatcher=request.getRequestDispatcher("welcomeservlet2");
requestdispatcher.forward(request, response);
out.println("<br>Thank you");
}
}
Code for WelcomeServlet2
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String Name=request.getAttribute("Fullname").toString();
PrintWriter out=response.getWriter();
out.println("Your full name is "+Name+"\n");
out.println("<br>The name length is "+Name.length());
}
The output of the code is
Your full name is Muskan AGARWAL The name length is 12
Why is the code not printing what I am putting in the welcomeservlet1
code? It is not printing "Welcome Muskan Agarwal". Why is it not printing?