0

I'm getting an error in a forward method dispatcher. This is my sample code, am getting error message. i need display name using s2.java file.

It shows html page and i put name first and last and then submit it show error.

/*this is s1.java(first java file)*/
package rqdis;

import java.io.IOException;
import java.io.PrintWriter;

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

public class S1 extends HttpServlet{
 public void doPost(HttpServletResponse rs,HttpServletRequest rq)
 throws ServletException,IOException{
  try{
   rs.setContentType("text/html");
   PrintWriter p=rs.getWriter();
   String s1=rq.getParameter("n1");
   String s2=rq.getParameter("n2");
   p.print(s1+" "+s2);
  RequestDispatcher rd=rq.getRequestDispatcher("/fff");
  rd.forward(rq, rs);
  p.print("am from server 1.!");
  p.close();
  }catch (Exception e){
   e.printStackTrace();
  }
 }
}
/*this is s2.java(second java file)*/
package rqdis;

import java.io.IOException;
import java.io.PrintWriter;

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

public class s2 extends HttpServlet{
 public void doPost(HttpServletRequest rq,HttpServletResponse rs)
 throws ServletException,IOException{
  try{
  rs.setContentType("text/html");
  PrintWriter p=rs.getWriter();
  String s1=rq.getParameter("n1");
  String s2=rq.getParameter("n2");
  p.print(s1+" "+s2);
  p.print("am from server 2.!");
  p.close();
  }catch (Exception e){
   e.printStackTrace();
  }
 }
}
<?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_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>rqdis</display-name>
  <welcome-file-list>
    <welcome-file>main.html</welcome-file>
    </welcome-file-list>
    <servlet>
    <servlet-name>firstservlet</servlet-name>
    <servlet-class>rqdis.S1</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>firstservlet</servlet-name>
    <url-pattern>/ff</url-pattern>
    </servlet-mapping>
    <servlet>
    <servlet-name>secondservlet</servlet-name>
    <servlet-class>rqdis.s2</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>secondservlet</servlet-name>
    <url-pattern>/fff</url-pattern>
    </servlet-mapping>
</web-app>
<html>

<head>
<meta charset="ISO-8859-1">
<title>disfor</title>
</head>

<body>
<form action="forward metod" method="post">
    First name:
    <input type="text" name="n1"> Last name:
    <input type="text" name="n2">
    <input type="submit" value="Submit">
</form>
</body>

</html>
Ricardo Vila
  • 1,626
  • 1
  • 18
  • 34

2 Answers2

1

You should not write in the servlet when you are forwarding to another servlet because the response would be committed in the other servlet.

Reference: Cause of Servlet's 'Response Already Committed'

Community
  • 1
  • 1
Ramesh PVK
  • 15,200
  • 2
  • 46
  • 50
0

As i can see from the code, The error which you would be getting is 404 (Not found). Because your form action is forward metodWhich has no url mapping in web.xml file. form action is used for specifying the url where request should be made. Try changing action of form to action="/ff".

Md Zahid Raza
  • 941
  • 1
  • 11
  • 28