日本語を出力するサーブレット HelloHtmlServlet.java を考えてみます。
HelloHtmlServlet.javaは
コンテンツタイプは「MIMEタイプ;文字エンコーディング」の形式で指定します。 HelloHtmlServlet.javaでは
プログラムの中で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 |
[ブラウザでアクセスするURL] http://localhost:8080/entry/HelloHtmlServlet

