2012-03-31 5 views
-1
public class CornelltaxiServlet extends HttpServlet { 
public void doGet(HttpServletRequest req, HttpServletResponse resp) 
     throws IOException { 
    resp.setContentType("text/plain"); 
    resp.getWriter().println("Hello, world"); 
} 

public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { 
    //resp.setContentType("text/plain"); 
    //resp.getWriter().println("Hello, world"); 
} 

}サーブレット:私は「こんにちは、世界」のメッセージを置く場所のdoPostとdoGetメソッドの簡単な問い合わせ

doGetメソッドとdoPostメソッドの私の理解から、それは問題ではないはずです。ただし、doPostメソッドを使用して印刷しようとすると、動作しません。誰も私のためにこれを説明することができますか?

void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    // Preprocess request: we actually don't need to do any business stuff, so just display JSP. 
    request.getRequestDispatcher("/WEB-INF/hello.jsp").forward(request, response); 
} 

request.getRequestDispatcher("/WEB-INF/hello.jsp").forward(request, response); 

からも

が、これは何をするのでしょうか?

+0

どのようにデータを送信していますか? doPostがヒットするためには、フォームを提出する必要があります –

答えて

2

doGet()メソッドは、HTTP GETが要求されたとき(ブラウザにサーブレットのURLを入力するときなど)に呼び出されます。その後、Hello, worldがブラウザに表示されます。これに対してHTTP POSTでは

doPost()が使用されます。あなたは、たとえば必要があります:あなたは、このようなフォームを送信すると

<form method="POST" action="/your/servlet" 

、あなたは(つまり - あなたはそれのコメントを外した場合)「こんにちは」を参照してくださいする必要があり、同様のブラウザで。あなたの2番目の質問については

request.getRequestDispatcher("/WEB-INF/hello.jsp").forward(request, response); 

これはhello.jspに要求処理を転送します。基本的には、そのファイルの内容はHello, worldの代わりにレンダリングされます。 resp.getWriter()を使用して両方のコンテンツを送信して転送するのは間違いです。一つを選ぶ。

関連する問題