2016-08-29 7 views
-1

私は最近Javaでプログラミングを始め、いくつかのJSP開発を試しています。 POSTメソッドを使用してサーブレットにデータを転送するログインページを作成しようとしています。ここに私のコードです:JSPサーブレットがdoPostメソッドを実行していません

<form method="POST" name ="loginForm" action="userAuth"> 
      <input type="hidden" name="userAction" value="login"> 
      Username: <input type="text" name="txtUsername"> <br> 
      Password : <input type="password" name="txtPassword"> 
      <br><input type="submit" value="Login"> 

</form> 

上記のコードは最初のログインページからのものです。

以下のコードはuserAuth.javaファイルのコードです。

protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    processRequest(request, response); 
    String userAction = request.getParameter("userAction"); 
    if (userAction.equals("Login")) { 
    String userName = request.getParameter("txtUsername"); 
    String passWord = request.getParameter("txtPassword"); 

    if (userName.equals("hello") && passWord.equals("hello")) { 
    response.sendRedirect("Homepage.jsp"); 
    } 
    } 
} 

私が持っている問題は、私の入力が正しいユーザ名とパスワードは、doPostメソッドが実行されていない場合、そのリダイレクトのいずれも行わないということです。むしろ最初のテンプレートをWebブラウザに表示するだけのProcessRequestメソッドが実行されます。

ありがとうございます。

P.S私はのprocessRequest()メソッドが何をするApache Tomcatの8.0.27.0

+0

あなたは、どのようにJSP(Weblogicの、Tomcatを....)展開しているように、などのより多くの情報を追加することができます。このよう

?最初にdoGetを試して、環境が正常であることを確認してください。 – pianista

+0

@pianista私は運がないdoGetを試しました。 – User59

+0

上記の '@ Override'を入れて、あなたが正しい方法ですべて組み込んでいることを確認してください。その後、web.xmlまたは別の注釈をチェックしてURL "userAuth"を正しいサーブレットにマップします。 –

答えて

2

...

ました大文字のLを持っています。

ちょうどこれを変更しました。

0

を使用していますか?あなたが言うように実行すると、サーバーはクライアントに応答を返し、残りのコードブロックは実行されません。あなたはこの機能なしで走ろうとしましたか?

if (userAction.equals("**Login**")) {} 

ログイン値のdidnt:問題は、第二のブロックに次の行

<input type="hidden" name="userAction" value="**login**"> 

、後続の処理で、私は問題を解決した

+0

はい、私は関数なしで実行しようとしましたが、私はuserAuth.javaサーブレットにリダイレクトされてそこに残されています。 doPostは実行されません。また、processRequest()は何もしませんが、テキストをブラウザに出力します。 – User59

+0

サーバをデバッグモードでチェックして、doPost()が実行されているかどうか確認しましたか?もしそうであれば、サーブレットのマッピングに何らかの間違いがあるとは限りません。 web.xmlや注釈を使用していますか? processRequest()は実行されますか?私には分かりません。 –

+0

試行 RequestDispatcher rd = request.getRequestDispatcher( "Homepage.jsp"); rd.forward(request、response); または response.sendRedirect(request.getContextPath()+ "Homepage.jsp"); –

0

プロセス要求メソッドを非表示にします。

protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    //processRequest(request, response); 
    String userAction = request.getParameter("userAction"); 
    if (userAction.equals("Login")) { 
     String userName = request.getParameter("txtUsername"); 
     String passWord = request.getParameter("txtPassword"); 
    } 
} 
関連する問題