2016-08-26 2 views
0

Ich erhalte einen Fehler in einem Dispatcher der Forward-Methode. Dies ist mein Beispielcode, bekomme eine Fehlermeldung. Ich brauche Anzeigename mit s2.java Datei.Fehler bei der Weiterleitungsmethode des Dispatcher-Servlets erhalten

Es zeigt HTML-Seite und ich put Namen zuerst und zuletzt und dann senden Sie es 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{ 
 
\t public void doPost(HttpServletResponse rs,HttpServletRequest rq) 
 
\t throws ServletException,IOException{ 
 
\t \t try{ 
 
\t \t \t rs.setContentType("text/html"); 
 
\t \t \t PrintWriter p=rs.getWriter(); 
 
\t \t \t String s1=rq.getParameter("n1"); 
 
\t \t \t String s2=rq.getParameter("n2"); 
 
\t \t \t p.print(s1+" "+s2); 
 
\t \t RequestDispatcher rd=rq.getRequestDispatcher("/fff"); 
 
\t \t rd.forward(rq, rs); 
 
\t \t p.print("am from server 1.!"); 
 
\t \t p.close(); 
 
\t \t }catch (Exception e){ 
 
\t \t \t e.printStackTrace(); 
 
\t \t } 
 
\t } 
 
} 
 
/*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{ 
 
\t public void doPost(HttpServletRequest rq,HttpServletResponse rs) 
 
\t throws ServletException,IOException{ 
 
\t \t try{ 
 
\t \t rs.setContentType("text/html"); 
 
\t \t PrintWriter p=rs.getWriter(); 
 
\t \t String s1=rq.getParameter("n1"); 
 
\t \t String s2=rq.getParameter("n2"); 
 
\t \t p.print(s1+" "+s2); 
 
\t \t p.print("am from server 2.!"); 
 
\t \t p.close(); 
 
\t \t }catch (Exception e){ 
 
\t \t \t e.printStackTrace(); 
 
\t \t } 
 
\t } 
 
}
<?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>

+0

Was ist der Fehler, den Sie bekommen? :) – Squazz

Antwort

0

Wie ich aus dem Code sehen können, die Fehler, die Sie ist 404 bekommen würde (nicht gefunden). Weil Ihre Formularaktion forward metod ist, die keine URL-Zuordnung in der web.xml-Datei hat. form action wird verwendet, um die URL anzugeben, an die die Anfrage gestellt werden soll. Versuchen Sie, die Aktion des Formulars auf action="/ff" zu ändern.

Verwandte Themen