『スッキリわかるサーブレット&JSP入門 第2版』でJavaの学習を進めているものです。
サーブレットをサーバ上で起動させてブラウザ上で画面を表示させようとしたのですが、日本語の部分が文字化けを起こしてしまいました。
にhン語を文字化けさせない方法として様々なサイトでsetContentTyoeを用いてUTF-8を設定することが提案されており、この本でもそのように書かれています。しかし、そのように記述したうえでも文字化けが起きてしまいます。
フィルターのクラスを作ることを提案しているサイトもあり、その方向も検討していますが、できればこのサーブレットの記述や設定を修正して文字化けを解決したいと思っています。
どのような修正をした方が良いでしょうか?ご教授お願いいたします。
SampleServlet(実行したサーブレット) package servlet; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/SampleServlet") public class SampleServlet extends HttpServlet{ static final long serialUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ String[] luckArray = {"大吉", "末吉", "凶"}; int index =(int)(Math.random() * 3); String luck = luckArray[index]; Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("MM月dd日"); String today = sdf.format(date); response.setContentType("text/html, charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>talot</title>"); out.println("</head>"); out.println("<body>"); out.println("<p>" + today + "の運勢は「" + luck + "」です</p>"); out.println("</body>"); out.println("</html>"); } }
実行環境
開発環境:Eclipse IDE(version:2021-06 (4.20.0))
サーバ:Tomcat9_Java16
回答1件
あなたの回答
tips
プレビュー