※ ChatGPTを利用し、要約された質問です(原文:submitで日本語をおくりたい)
submitで日本語をおくりたい
自分は現在JSPの勉強をしているのですが、JSPからサーブレットにsubmitをつかって、日本語を送信した場合文字化けして表示されてしまうので困っています。
ソースコードで説明させていただくと
JSP側ソース
<%@ page contentType="text/html;charset=Shift_JIS"
pageEncoding="Shift_JIS" %>
<html>
<head><title>a</title></head>
<body>
<form action="Hello" method="post">
<textarea rows="10" cols="40" name="comment">
ここにコメントを書いて送信を押すとコメントがつきます
</textarea><br>
<input type="submit" value="送信">
</form>
</body>
</html>
サーブレット側
import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class hello extends HttpServlet {
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
response.setContentType("text/html");
response.setCharacterEncoding("Shift_JIS");
PrintWriter out = response.getWriter();
String msg = request.getParameter("comment");
out.println("<html>");
out.println("<head>");
out.println("<title>Hello World!</title>");
out.println("</head>");
out.println("<body>");
out.println(msg);//ここで表示
out.println("</body>");
out.println("</html>");
}
}
この様なソースを書いたのですが、サーブレット側で日本語を表示させようとすると、文字化けしてしまいます(英語は普通に表示されます)。
どのようにすれば、サーブレット側で日本語を表示できるのでしょうか?
お返事おまちしております。
お礼
お返事ありがとうございます。 なるほど、リクエストのエンコードがぬけていたのですね。おっしゃられた通りにやると、正常に表示することができました。 requestとresponseについていろいろ調べてみようと思います。ありがとうございました。