テキストボックスに入力した値を使用し、SQL文を作成してDBから値を取得するプログラムを作成しています。
流れとしては、以下になります。
1.JSPで作成したテキストボックスに値を入力し、ボタンを押す
2.req.GetParameterでjava(servlet)に渡し、変数に入れる
3.入力値に合った値をDBから取得するため、SELECT文と変数を組み合わせる
4.DBに接続し、値をjspに表示させる
jspからjavaに入力値を渡すことはできたのですが、
テキストボックスに入れた値が文字化けしていまいます。
アルファベットはできますが、漢字、ひらがな、カタカナが文字化けして値が取れません。
DBの文字コードの設定はUTF-8です。
jsp、servletのコードも同様です。ソースを一部掲載します。
servlet
public class Test2 extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException { res.setContentType("text/html; charset=UTF-8"); req.setCharacterEncoding("UTF-8"); HttpSession session = req.getSession(); String text = req.getParameter("textbox"); ……
jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%@page import="java.util.ArrayList"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>C20_SELECT</title> </head> <body> ……
設定を間違えたのか、それとも別の理由があるのかがわかりません。
もしご存じの方がいましたら、教えていただけると幸いです。
よろしくお願い致します。
ちなみに、使用しているmysqlは5.5.52です。
回答1件
あなたの回答
tips
プレビュー