Javaプログラミング/サーバサイド&ケータイJava

JSPとサーブレットのキャッチボール(2ページ目)

JSPとサーブレット。両者の間で必要な情報をやり取りするための基本を覚えましょう。

執筆者:掌田 津耶乃

サーブレット側の処理


では、これをNewServletで受け取ってみましょう。NewServletは、前回作成したNewServletクラスをそのまま利用しましょう。

package jp.tuyano;

import java.io.*;
import java.net.*;

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

public class NewServlet extends HttpServlet {
  
  protected void processRequest(HttpServletRequest request,
      HttpServletResponse response)
      throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");
    response.setContentType("text/html;charset=UTF-8");
    String msg = (String)request.getParameter("msg");
    PrintWriter out = response.getWriter();
    out.println("");
    out.println("※あなたは、「" + msg + "」と送信しました。");
    out.println("");
    out.close();
  }
  
  protected void doGet(HttpServletRequest request,
      HttpServletResponse response)
      throws ServletException, IOException {
    processRequest(request, response);
  }

  protected void doPost(HttpServletRequest request,
      HttpServletResponse response)
      throws ServletException, IOException {
    processRequest(request, response);
  }
}


JSPから送信した情報をサーブレットで受け取り表示する。

不要なコメントや使わないメソッドは省きました。web.xmlは既に用意されているものとします。では、出来上がったらサーブレット・コンテナを起動してフォームのページを開き、適当にテキストを記述して送信してみましょう。ちゃんと送られた情報をサーブレットで受け取り、表示されましたか?

ここでは、requestのsetCharacterEncodingというものを使って、リクエスト側の文字コードを設定し、それからgetParameterをしています。特に日本語を扱う場合、このように「値を取り出す前に、まず文字コードを設定しておく」というのは重要になりますので忘れないようにしましょう。


  • 前のページへ
  • 1
  • 2
  • 3
  • 5
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます