-1

ルート /Reverse ディレクトリにこの reverse.html があります

<!DOCTYPE html>
<html>
  <body>
    <h1>Assignment Servlets-2 - Reverse</h1>

    <form method='post' action='ReverseServlet'>
      Text: <input type='text' name='text' size='50'><br><br>
      <input type='submit' value='submit'>
    </form>
  </body>
</html>

これは、/WEB-INF ディレクトリの web.xml です。

<web-app 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_2_5.xsd"
version="2.5">
  <servlet> <servlet-name>ReverseServlet</servlet-name> 
  <servlet-class>ReverseServlet</servlet-class> </servlet> 

  <servlet-mapping> <servlet-name>ReverseServlet</servlet-name> 
    <url-pattern>/reverse</url-pattern> 
  </servlet-mapping>
</web-app>

これは、/classes ディレクトリのクラス ファイルにコンパイルされた ReverseServlet.java ソースです。

import java.io.* ;
import javax.servlet.http.* ;

public class ReverseServlet extends HttpServlet {
    public void doGet( HttpServletRequest request, HttpServletResponse response ) {
        String text = request.getParameter("text");

        response.setContentType("text/html");
        try {
            PrintWriter out = response.getWriter();
            out.println( new StringBuffer( text ).reverse().toString() );
            out.close();
        } catch( Exception e ) {
            System.out.println( "cannot get writer: " + e );
        }
    }
}

それらはすべて適切なディレクトリにあり、reverse.html をロードできますが、アクションは ReverseServlet クラスに関連付けられません。私は Tomcat 7.0 を使用しており、単純なサーブレットが動作するようになったので、正しくインストールされていることがわかります。送信を押してもサーブレットコードに移動しません...

4

2 に答える 2

2

問題は、 postメソッドを使用してリクエストを送信し、 getメソッドを使用してそれをキャッチしようとしていることです。

1つの方法:

postフォームに変更するgetか、フォームからメソッド属性を削除してみてください。
<form method='get' action='/reverse'>

また

2つの方法:postメソッドからのリクエストをキャッチするためにReverseServletにdoPostメソッドを実装します。

public void doPost( HttpServletRequest request, HttpServletResponse response ){...}
于 2013-03-12T03:25:34.437 に答える
1

フォームのアクションは、名前ではなく、サーブレットの URL にする必要があります。

<form method='post' action='/reverse'>
于 2013-03-12T02:40:55.873 に答える