日本語を表示するサーブレット
コンテンツタイプを指定してHTMLを出力するサーブレット
日本語を出力するサーブレット HelloHtmlServlet.java を考えてみます。
HelloHtmlServlet.javaは
- setContnetType()メソッドでコンテンツタイプを指定している←そのため日本語が文字化けしない。
- HTMLタグを出力している
という点で、前回に学んだHelloServlet.javaとは異なっています。
コンテンツタイプは「MIMEタイプ;文字エンコーディング」の形式で指定します。
HelloHtmlServlet.javaでは
- 「MIMEタイプ」には「text/html」を
- 「文字エンコーディング」には「utf-8」
を指定したことになります。
文字エンコーディングは以前は"Windows-31J"がよく使われていました。
今後は "utf-8"が主流になると思われるので、この講義ではできるだけ
"utf-8" で統一する予定です。
プログラムの中でdoGet()メソッドの第2引数(HttpServletResponseクラス)から
PrintWriterオブジェクトを得ていますが、
これよりも前に
setContentType()メソッドを呼び出して文字エンコーディングを設定する
必要がある
ことに注意して下さい。
[ファイル配置]
${CATALINA_HOME}/webapps/entry/WEB-INF/src/HelloHtmlServlet.java
${CATALINA_HOME}/webapps/entry/WEB-INF/src/HelloHtmlServlet.java |
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloHtmlServlet extends HttpServlet {
public void doGet(HttpServletRequest req,HttpServletResponse res)
throws IOException, ServletException {
res.setContentType("text/html; charset=utf-8");
PrintWriter out = res.getWriter();
out.println("<html><head><title>");
out.println("HTMLサーブレット");
out.println("</title></head><body>");
out.println("こんにちは");
out.println("</body></html>");
}
}
|
${CATALINA_HOME}/webapps/entry/WEB-INF/web.xmlへの記述の追加 |
*** entry/WEB-INF/web.xml.03 Fri Nov 18 19:13:08 2016
--- entry/WEB-INF/web.xml.04 Fri Nov 18 19:13:21 2016
***************
*** 17,22 ****
--- 17,26 ----
<servlet-name>OracleServlet</servlet-name>
<servlet-class>OracleServlet</servlet-class>
</servlet>
+ <servlet>
+ <servlet-name>HelloHtmlServlet</servlet-name>
+ <servlet-class>HelloHtmlServlet</servlet-class>
+ </servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/HelloServlet</url-pattern>
***************
*** 29,32 ****
--- 33,40 ----
<servlet-name>OracleServlet</servlet-name>
<url-pattern>/OracleServlet</url-pattern>
</servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>HelloHtmlServlet</servlet-name>
+ <url-pattern>/HelloHtmlServlet</url-pattern>
+ </servlet-mapping>
</web-app>
|
HelloHtmlServlet.javaのコンパイル |
$ cd C:\Users\nitta\tomcat8\webapps\entry\WEB-INF
$ javac src/HelloHtmlServlet.java -d classes -sourcepath src
|
[ブラウザでアクセスするURL]
http://localhost:8080/entry/HelloHtmlServlet
このHtmlドキュメントのソース