2017-02-22 2 views
0
私はあなたが新しいクライアントを追加し、可能なページを表示する単純なJavaのWebアプリケーションに取り組んでいます

を転送しないJavaサーブレットとgetRequestDispatcherが、それは、クライアントが新しく追加されたが、私はこのエラーを得続ける提示し、別のページを示しています。

HTTP Status 404 - /LearningJSP/AddClient 
type Status report 
message /LearningJSP/AddClient 
description The requested resource is not available. 

私はどこに問題があるのか​​分かりません。 私のアプリのファイルは次のとおりです。

新しく追加されたクライアント

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="UTF-8"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Affichage de client</title> 
</head> 
<body> 

<p class="info"> ${message} </p> 

<p>Nom: ${client.Nom}</p> 
<p>Prenom: ${client.Prenom}</p> 
<p>Adresse: ${client.Adresse}</p> 
<p>Numéro de télephone: ${client.Telephone}</p> 
<p>Email: ${client.Email}</p> 

</body> 
</html> 

web.xmlファイル

を表示する

<%@ page pageEncoding="UTF-8" %> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="utf-8" /> 
     <title>Création d'un client</title> 
    </head> 
    <body> 
     <div> 
      <form method="get" action="AddClient"> 
       <fieldset> 
        <legend>Informations client</legend> 

        <label for="nomClient">Nom <span class="requis">*</span></label> 
        <input type="text" id="nomClient" name="nomClient" value="" size="20" maxlength="20" /> 
        <br /> 

        <label for="prenomClient">Prénom </label> 
        <input type="text" id="prenomClient" name="prenomClient" value="" size="20" maxlength="20" /> 
        <br /> 

        <label for="adresseClient">Adresse de livraison <span class="requis">*</span></label> 
        <input type="text" id="adresseClient" name="adresseClient" value="" size="20" maxlength="20" /> 
        <br /> 

        <label for="telephoneClient">Numéro de téléphone <span class="requis">*</span></label> 
        <input type="text" id="telephoneClient" name="telephoneClient" value="" size="20" maxlength="20" /> 
        <br /> 

        <label for="emailClient">Adresse email</label> 
        <input type="email" id="emailClient" name="emailClient" value="" size="20" maxlength="60" /> 
        <br /> 
       </fieldset> 
       <input type="submit" value="Valider" /> 
       <input type="reset" value="Remettre à zéro" /> <br /> 
      </form> 
     </div> 
    </body> 
</html> 

サーブレット

package Controllers; 

import java.io.IOException; 

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

import Model.Client; 

/** 
* Servlet implementation class ClientServ 
*/ 

public class ClientServ extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

public static final String Add = "/affichierClient.jsp"; 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     // TODO Auto-generated method stub 


     String Nom = request.getParameter("nomClient"); 
     String Prenom = request.getParameter("prenomClient"); 
     String Adresse = request.getParameter("adresseClient"); 
     String Telephone = request.getParameter("telephoneClient"); 
     String Email = request.getParameter("emailClient"); 

     String message; 

     if(Nom.trim().isEmpty() || Adresse.trim().isEmpty() || 
       Telephone.trim().isEmpty()) { 

      message="Vous n'avez pas rempli tous les champs"; 
      } 

     else { 
      message="Client crée avec succès"; 
      } 

     Client client = new Client(); 
     client.setNom(Nom); 
     client.setPrenom(Prenom); 
     client.setAdresse(Adresse); 
     client.setEmail(Email); 
     client.setTelephone(Telephone); 

     request.setAttribute("client", client); 
     request.setAttribute("message", message); 

    this.getServletContext().getRequestDispatcher(Add).forward(request, response);  
    } 


} 

JSPページの.jsp "を追加し、新たなクライアント"

<?xml version="1.0" encoding="UTF-8"?> 
<web-app id="WebApp_ID" version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 
    <display-name>WebApp</display-name> 
    <servlet> 
     <servlet-name>AddClient</servlet-name> 
     <servlet-class>Controllers.ClientServ</servlet-class> 
    </servlet> 



    <servlet-mapping> 
     <servlet-name>AddClient</servlet-name> 
     <url-pattern>/AddClient</url-pattern> 
    </servlet-mapping> 


</web-app> 
+0

はタイプミスで、本当に "affichierClient.jsp" という名前のJSPですか?サーブレットが呼び出されていますか?サイドノート:GETを使用して新しいクライアントを作成するべきではありません。それがPOSTのためのものです。そして、Java命名規則を学び、尊重してください。 –

+0

あなたはブレークポイントにヒットするサーブレットをデバッグすることができます?。あなたができるのであれば、後のリクエストで404がスローされます。 – efekctive

+0

@JBNizet JSPファイルの名前は正しく、GETメソッドについては、私はOpenclassroomsのチュートリアルに従っていました。代わりにdoPostを使用しますか?すみませんが、私はまだ初心者だ –

答えて

0

を発行してきたことは、問題はその行から来ている可能性がある:

<form method="get" action="AddClient"> 

あなたが相対を与えると代わりに絶対1のURLは、現在の1から始まる完全なURL を構築するために使用されます。

したがって、前のURLが/LearningJSPだった場合、通常の404エラーで終了する/AddClientを使用する必要がある場合、次の要求が/LearningJSP/AddClientに送信されます。

修正:ちょうど絶対URLを使用します。

<form method="get" action="/AddClient"> 
0

日食にブレークポイントを作成する方法についての記事を読みます。

置き、ここにブレークポイント日食でデバッグセッションを開始する方法について

String Nom = request.getParameter("nomClient"); 

読みます。

スタート1。実行がブレークポイントで停止しない場合は、構成が間違っていることを意味します。停止した場合は、後続の要求で404がスローされることを意味します。

あなただけのdoGet(...)の要求の処理を持っているなら、あなたはおそらく、URLパスが