ブラウザからこんにちは
- 2010-11-25 Thu 11:20:08
- サーブレット事始め
ブラウザから「HelloWorld」と出力するサーブレットを作りましたが、今回は、「こんにちは」と出力します。
「HelloWorld」を「こんにちは」に変更するだけでいけそうな気がしますが、実はそうではありません。
ためしに、前に作ったHelloWorld.javaのファイルの「HelloWorld」の部分を「こんにちは」と変更して出力してみてください。
「こんにちは」ではなく、
?????
と出力されたと思います。
今回の課題は、このようなエラーが出ないようにして日本語出力を行うことです。
サーブレットで日本語を出力できるようにするには、そのための指定を行わなければなりません。そのためには、setContentType()というメソッドを使ってコンテンツタイプを指定します。
setContentType()メソッドには、2つの引数を指定できます。1つ目がMIMEタイプ、2つ目が文字エンコーディングです。
MIMEタイプとは、インターネット上でやり取りされるデータの種類のことです。テキストファイルとかHTMLファイルなどです。今回はテキストを指定します。
MIMEタイプでテキスト形式を指定するときは、
text/plain
と表記します。
次に文字エンコーディングですが、出力する文字の種類のことです。Tomcatではデフォルトの文字エンコーディングが欧米で使われている文字コードのISO-8859-1に設定されており、このままでは日本語表記ができないのです。
文字エンコーディングはいくつかありますが、ここでは一般的と思われる「Windows-31J」を指定します。
MIMEタイプと文字エンコーディングが理解できたところで、ブラウザからの応答を表すdoGet()メソッドの引数 responseにsetContentType()メソッドで以下のように指定します。
response.setContentType("text/plain; charset=Windows-31J");
この一行を入れることで、やっと日本語出力が可能になります。
javaファイルを作るだけでなく、web.xmlのファイルに以下のソースを追加しておきましょう。
出来上がったら、
http://localhost:8080/siroto/Konnichiwa
にアクセスして確認してください。
setContentType()メソッドには、2つの引数を指定できます。1つ目がMIMEタイプ、2つ目が文字エンコーディングです。
MIMEタイプとは、インターネット上でやり取りされるデータの種類のことです。テキストファイルとかHTMLファイルなどです。今回はテキストを指定します。
MIMEタイプでテキスト形式を指定するときは、
text/plain
と表記します。
次に文字エンコーディングですが、出力する文字の種類のことです。Tomcatではデフォルトの文字エンコーディングが欧米で使われている文字コードのISO-8859-1に設定されており、このままでは日本語表記ができないのです。
文字エンコーディングはいくつかありますが、ここでは一般的と思われる「Windows-31J」を指定します。
MIMEタイプと文字エンコーディングが理解できたところで、ブラウザからの応答を表すdoGet()メソッドの引数 responseにsetContentType()メソッドで以下のように指定します。
response.setContentType("text/plain; charset=Windows-31J");
この一行を入れることで、やっと日本語出力が可能になります。
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Konnichiwa extends HttpServlet{
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/plain; charset=Windows-31J");
PrintWriter out=response.getWriter();
out.println("こんにちは");
}
}
javaファイルを作るだけでなく、web.xmlのファイルに以下のソースを追加しておきましょう。
<servlet>
<servlet-name>Konnichiwa</servlet-name>
<servlet-class>basic.Konnichiwa</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Konnichiwa</servlet-name>
<url-pattern>/Konnichiwa</url-pattern>
</servlet-mapping>
出来上がったら、
http://localhost:8080/siroto/Konnichiwa
にアクセスして確認してください。
スポンサーサイト
タグ :
Comments: