下記の通りにサーバーで実行したら文字化けが発生してしまいます。どなたか改善策があれば知恵をお貸しいただきたいです。
■Servlet
package seisan;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.annotation.Resource;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
import ryoukin.java.ryoukin_beans;
/**
- Servlet implementation class SeisanServlet
*/
@WebServlet("/Seisan")
public class SeisanServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
// Define datasource/connection pool for Resource Injection @Resource(name="jdbc/WebApp") private DataSource dataSource; /** * @see HttpServlet#HttpServlet() */ public SeisanServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ @SuppressWarnings("unused") protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.getWriter().append("Served at: ").append(request.getContextPath()); //文字化け対策 response.setContentType("text/html; charset=UTF-8"); response.setContentType("text/html; charset=UTF-8"); // 【料金情報を取得する】 ryoukin_beans ryoukin = null; // ■DB接続 Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; // 接続情報 String url="jdbc:mariadb://localhost:3306/webApp"; String user="user02"; String password="user02"; try { // 接続処理 conn = DriverManager.getConnection(url, user, password); // ■検索処理実行 // SQL作成 String sql = "SELECT coursea_value, courseb_value, coursec_value,opcoursea_value FROM seisan"; System.out.println(sql); // SQL準備 ps = conn.prepareStatement(sql); // SQL実行 rs = ps.executeQuery(); // データを読込み、JavaBeansに設定する ryoukin = new ryoukin_beans(0, 0, 0, 0, 0, 0); while(rs.next()) { // データ読込 int coursea = rs.getInt("coursea_value"); int courseb = rs.getInt("courseb_value"); int coursec = rs.getInt("coursec_value"); int opcoursea= rs.getInt("opcoursea_value"); // JavaBeansにデータを設定 ryoukin.set(coursea); ryoukin.set(courseb); ryoukin.set(coursec); ryoukin.set(opcoursea); } System.out.println(ryoukin); } catch(SQLException e) { // 接続失敗時の処理 e.printStackTrace(); } finally { try { // ■クローズ処理 // 検索結果 if(rs!=null) { rs.close();} // SQL文 if(ps!=null) { ps.close(); } // DB接続 if(conn!=null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } // 【表示値を設定する】 request.setAttribute("ryoukin", ryoukin); // 【画面に遷移する】 request.getRequestDispatcher("Newryoukin.jsp").forward(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); // 【文字化け対応】 response.setContentType("text/html; charset=UTF-8"); response.setContentType("text/html; charset=UTF-8"); // 【画面入力値を取得し、料金情報に設定する】 // 画面入力値を取得 String course = request.getParameter("coursea_value"); int coursea = Integer.parseInt(course); // 取得できたか確認 System.out.println("coursea="+course);}
}
■JSP
<%@page contentType="text/html; charset=UTF-8" %>
<%@page import="java.sql.*"%>
<%!
%>
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>料金</title> </head> <body> <form action = "http://localhost:8080/WebApp/Seisan" metod="post"> <P>料金一覧</P> <table> <%@page contentType="text/html; charset=UTF-8" %> <table border="1"> <tr></thead> <input type="submit" value="ログアウト"><th><input type="submit" value="コースA"></th> <th><input type="submit" value="コースB"></th> <th><input type="submit" value="コースC"> </th><th><input type="submit" value="OPコースA"></th> <thead> </tr> <tbody> <tr> <td>データ1</td><td>データ2</td><td>データ3</td><td>データ4</td> </tr> </table>
</body> </html></table> </form>
回答2件
あなたの回答
tips
プレビュー