2016-06-23 25 views
1

エンドユーザーからフォームを通じて入力を取得しようとしています。私はjspを使ってフォームを作った。HTTPステータス405 - HTTPメソッドGETは、jspを使用している場合、このURLではサポートされていません

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <title>Welcome</title> 
</head> 
<body> 
    <form action="welcome" method="post"> 
     <input type="text" value="username" /> 
     <input type="text" value="password" /> 
     <input type="submit" value="login" /> 
    </form> 
</body> 
</html> 

のwelcome.jspユーザが入力することを情報は、それがコンソールに出力されますサーブレットに行きます。

MyApp.java

import java.io.IOException; 

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

@WebServlet("/welcome") 
public class MyApp extends HttpServlet { 

@Override 
protected void doPost(HttpServletRequest req, HttpServletResponse resp) 
    throws ServletException, IOException { 

    req.getRequestDispatcher("/WEB-INF/welcome.jsp").forward(req, resp); 

    String username = req.getParameter("username"); 
    String password = req.getParameter("password"); 

    System.out.println("Name: " + name); 
    System.out.println("Password: " + password); 
} 
} 

web.xmlの

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
id="WebApp_ID" version="3.1" 
> 

<servlet> 
    <servlet-name>MyApp</servlet-name> 
    <servlet-class>main.com.myfirstapp.MyApp</servlet-class> 
</servlet> 
</web-app> 

私は、サーバー上の私のプログラムを実行するとき、私は私の問題が発生しました。いいえがあるので、あなたが@Annotationを使用しているので、これは私がすでに同じ問題に苦しんでいる

HTTP Status 405 - HTTP method GET is not supported by this URL 
type: Status report 
message: HTTP method GET is not supported by this URL 
description: The specified HTTP method is not allowed for the requested resource. 
+0

のようになります。または、私のIDEで* rightclickサーブレットクラスのようなことをやったのですか?サーバー上で実行されるオプションを選択しますか?orso?ブラウザのアドレスバーのURLはどういう意味ですか?これは、HTMLフォームを含むJSPのものか、 'doGet()'メソッドをまったく持たないサーブレットのものですか?あなたは以前の質問の重複してリンクされているインスタンスのhttp://stackoverflow.com/q/2349633を読んでいますか? – BalusC

+0

フォームで、特にアクションでは "/"で始まらないようにしてください。注釈にはすでにスラッシュが付いています。 – PacMan

+0

@BalusCはい私はMyApp.javaで右クリックしました - >サーバー上で実行しました。ブラウザのURLは 'http:// localhost:8080/MyFirstApp/welcome'です。私もその質問を読んで、私の質問を更新しました。私はまだ後にも同じエラーが発生しています。 – TheRealRave

答えて

1

を取得していますエラーで、よく私は、アクションからそのスラッシュを削除し、ちょうど<form action="welcome" method="post">それをできるようにあなたを提案しますあなたはそれを削除することができますweb.xmlの必要性。 別のものは、あなたのサーブレットで待機している結果を得ることはできません。フォームに名前がないため、ここに例があります のフォームに、<input type="text" name="name" />のような値のinstedという名前を設定する必要があります。 「私は、サーバー上の私のプログラムを実行すると、」最終的にあなたのフォームは、これは、ウェブブラウザでJSPページを開くのは本当に不思議な記述である* *

<form action="welcome" method="post"> 
     <input type="text" name="name" /> 
     <input type="text" name="passcode" /> 
     <input type="submit" value="submit" /> 
</form> 
+0

助けてくれてありがとう、これはあらかじめ間違っていたので助けになりました。しかし、私はまだエラーが発生していましたので、github上の他のサーブレットの例を見てみました。そして、 '@WebServlet(name =" welcome "、value ="/") – TheRealRave

関連する問題