2016-11-09 3 views
0

私はロットシミュレータの形式でWebページから数字のグループを取得しようとしています。私はサーバーを起動し、ブラウザのローカルホストを介してページを開き、番号を入力して送信しますが、次のページに何も表示されず、404エラーも表示されません。マッピングの問題かもしれませんが、私は迷っています。何か案は?ページがロードされず、Apache Tomcatサーバーのエラー

Lotto.class

import java.io.*; 
import java.util.Arrays; 
import java.util.Comparator; 

import javax.servlet.*; 
import javax.servlet.http.*; 

public class Lotto extends HttpServlet { 

public void doGet(HttpServletRequest servletRequest, HttpServletResponse 
servletResponse) 
          throws ServletException, IOException { 

    servletResponse.setContentType("text/html"); 
    PrintWriter out = servletResponse.getWriter(); 

    String userInput1 = servletRequest.getParameter("number1"); 
    int userNum = Integer.parseInt(userInput1); 

    String userInput2 = servletRequest.getParameter("number2"); 
    int userNum2 = Integer.parseInt(userInput2); 

    String userInput3 = servletRequest.getParameter("number3"); 
    int userNum3 = Integer.parseInt(userInput3); 

    String userInput4 = servletRequest.getParameter("number4"); 
    int userNum4 = Integer.parseInt(userInput4); 

    String userInput5 = servletRequest.getParameter("number5"); 
    int userNum5 = Integer.parseInt(userInput5); 

    String userInput6 = servletRequest.getParameter("number6"); 
    int userNum6 = Integer.parseInt(userInput6); 


    if(
    userNum != userNum2 || userNum != userNum3 || userNum != userNum4 || 
    userNum != userNum5 || userNum != userNum6 && 
    userNum2 != userNum || userNum2 != userNum3 || userNum2 != userNum4 || 
    userNum2 != userNum5 || userNum2 != userNum6 && 
    userNum3 != userNum || userNum3 != userNum2 || userNum3 != userNum4 || 
    userNum3 != userNum5 || userNum != userNum6 && 
    userNum4 != userNum || userNum4 != userNum2 || userNum4 != userNum3 || 
    userNum4 != userNum5 || userNum5 != userNum6 && 
    userNum5 != userNum || userNum5 != userNum2 || userNum5 != userNum3 || 
    userNum5 != userNum4 || userNum5 != userNum6 && 
    userNum6 != userNum || userNum6 != userNum2 || userNum6 != userNum3 || 
    userNum6 != userNum4 || userNum6 != userNum5){ 

    int[] numberArray = {userNum, userNum2,  
    userNum3,userNum4,userNum5,userNum6,}; 

    out.println("<html><body>Your numbers selection in order, " +  
    Arrays.toString(numberArray) + " valid </body></html>"); 
    } 
    else{ 
    out.println("<html><body> Error! </body></html>"); 
    } 

    } 
    } 

index.htmlを

<!DOCTYPE html> 
<html> 
<body> 

<h1 > Lotto Servlet Game </h1 > 
<h2 > Please choose your numbers below </h2 > 

<form action="Lotto"> 
<fieldset> 
Please enter your name: <br><input type="text" name="username"><br> 
#1:<br> 
<input type="text" name="number1" min="1" max="42"> 
<br> 
#2:<br> 
<input type="text" name="number1" min="1" max="42"> 
<br> 
#3:<br> 
<input type="text" name="number1" min="1" max="42"> 
<br> 
#4:<br> 
<input type="text" name="number1" min="1" max="42"> 
<br> 
#5:<br> 
<input type="text" name="number1" min="1" max="42"> 
<br> 
#6:<br> 
<input type="text" name="number1" min="1" max="42"> 
<br><br> 
<input type="submit" min="Submit"> 
</fieldset> 
</form> 



</body> 
</html> 

web.xmlの

<?xml version="1.0" encoding="ISO-8859-1"?> 
<web-app version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
             http://java.sun.com/xml/ns/j2ee/web- 
app_2_4.xsd" xmlns:xsi=" 
             http://www.w3.org/2001/XMLSchema- 
instance" xmlns=" 
             http://java.sun.com/xml/ns/j2ee"> 


<display-name>Sample Application</display-name> 
<description> Sample Application. </description> 


<servlet> 
    <servlet-name>LottoServlet</servlet-name> 
    <servlet-class>Lotto</servlet-class> 
</servlet> 

<servlet-mapping> 
     <servlet- name>LottoServlet</servlet-name> 
     <url-pattern>/Lotto</url-pattern> 
</servlet-mapping> 
</web-app> 

3つのファイルは目を持っていますE次のディレクトリ:

Lotto.class Z:\ apacheの-tomcatに-8.5.5 \ webappsに\サンプル\のWEB-INF \クラスは\ Lotto.class

index.htmlを Z: \ apacheの-tomcatに-8.5.5 \ webappsに\サンプル\ index.htmlを

web.xmlの Z:\ apacheの-tomcatに-8.5.5 \ webappsに\サンプル\ WEB-INF \ web.xmlを

+0

あなたのwarファイルの名前は何ですか? web.xmlのdisplay-nameと同じにする必要があります – jay

+0

サーブレットの最後に 'out.flush()'を追加しようとしましたか? –

+0

私はこれらのアイデアを試してみましたが、どちらもうまくいきませんでした。 –

答えて

0

index.htmlでは、すべてのフィールド名はnumber1です。

これらのパラメータをサーブレットに渡すとき。 Integer.parseInt(userInput2)を呼び出すとExceptionがスローされます。

+0

申し訳ありません私は投稿する前にそれを変更しておくべきです。私はすでにそれを知っていた、私は正しく前にそれを持っていたと私は同じ問題を抱えていたので、それは問題だとは思わない –

0

疑わしいときは、コードを削除してください。たとえば、サーブレットを次のように変更すると、

public class Lotto extends HttpServlet { 
    public void doGet(HttpServletRequest servletRequest, 
         HttpServletResponse servletResponse) 
      throws ServletException, IOException { 

     servletResponse.setContentType("text/html"); 
     PrintWriter out = servletResponse.getWriter(); 

     out.println("<html><body>You are in the servlet</body></html>"); 
    } 
} 

が表示されます。遠くにいる場合は、さらにデバッグすることができます。その時点で、比較ロジックがちょっと混乱していることがわかります。しかしまず、物事を動かす。 @adamMが言及しているように、ブラウザで最初にhttp://localhost:8080/sample/Lottoなどのヒットしてみることもできます。

0

.warファイルの構造が正しいかどうかを確認しましたか? IntelliJの、すなわちあなたが「フレームワークのサポートを追加 - > Webは」場合、それはweb.xmlファイルを作成しますが、あなたはアーティファクトを見れば構造が正しくありません...

は、次のような構造を持つアーティファクトをビルドします。

name.war 
    -> META-INF 
     ->MANIFEST.MF 
    ->WEB-INF 
     ->lib 
      ->required .jars if needed 
    ->compile-output (thats the name in IntelliJ) 

デプロイメント用に.warファイルが選択されている場合は、実行コンフィギュレーションを確認してください。 これは、コンソールが.warファイルが正しくないという情報を与えなかったため、Tomcatでのデプロイメントに多くの問題があったのかもしれません。

関連する問題