日本語を出力するサーブレット 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