jsp
1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3<!DOCTYPE html> 4<html> 5<head> 6<meta charset="UTF-8"> 7<title>ホーム</title> 8</head> 9<body> 10<form action="/webkensyu/Address" method="get"> 11<button type="submit" name="button1">住所一覧</button> 12</form> 13</body> 14</html>
java
1package servlet; 2 3import java.io.IOException; 4import java.util.ArrayList; 5 6import javax.servlet.RequestDispatcher; 7import javax.servlet.ServletException; 8import javax.servlet.annotation.WebServlet; 9import javax.servlet.http.HttpServlet; 10import javax.servlet.http.HttpServletRequest; 11import javax.servlet.http.HttpServletResponse; 12 13import dao.ADDR_DB; 14 15/** 16 * Servlet implementation class Address 17 */ 18@WebServlet("/Address") 19public class Address extends HttpServlet { 20 private static final long serialVersionUID = 1L; 21 22 /** 23 * @see HttpServlet#HttpServlet() 24 */ 25 public Address() { 26 super(); 27 // TODO Auto-generated constructor stub 28 } 29 30 /** 31 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 32 */ 33 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 34 // TODO Auto-generated method stub 35 //response.getWriter().append("Served at: ").append(request.getContextPath()); 36 37 request.setCharacterEncoding("UTF-8"); 38 ADDR_DB addrdb = new ADDR_DB(); 39 ArrayList<String> result = addrdb.getaddrss(); 40 request.setAttribute("result", result); 41 RequestDispatcher dispatcher = request.getRequestDispatcher("/address_view.jsp"); 42 dispatcher.forward(request, response); 43 } 44 45 /** 46 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 47 */ 48 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 49 // TODO Auto-generated method stub 50 doGet(request, response); 51 } 52 53}
java
1package dao; 2 3import java.sql.PreparedStatement; 4import java.sql.ResultSet; 5import java.sql.SQLException; 6import java.util.ArrayList; 7 8public class ADDR_DB extends DBIO{ 9 10 public ADDR_DB(){ 11 connect(); 12 } 13 14 15 16 //住所一覧取得する 17 public ArrayList<String> getaddrss() { 18 ArrayList<String> result = new ArrayList<String>(); 19 try { 20 21 connect(); 22 23 String sql ="SELECT addrss_code FROM addresses"; 24 25 PreparedStatement pstmt = conn.prepareStatement(sql); 26 ResultSet rs = pstmt.executeQuery(); 27 28 while(rs.next()) { 29 30 result.add(rs.getString("address_code")); 31 //result.add(rs.getString("address")); 32 } 33 34 }catch(SQLException e){ 35 36 e.printStackTrace(); 37 38 }finally { 39 40 this.close(); 41 } 42 return result; 43 } 44} 45
java
1package dao; 2 3import java.sql.Connection; 4import java.sql.DriverManager; 5import java.sql.PreparedStatement; 6import java.sql.ResultSet; 7import java.sql.SQLException; 8import java.util.ArrayList; 9 10public class DBIO { 11 12 protected static final String DBNAME = "jdbc:mysql://localhost:3306/webkensyu?useUnicode =true&characterEncoding=utf8"; 13 protected static final String DBUSER = "user"; 14 protected static final String DBPASS = "pass"; 15 protected Connection conn; 16 17 18 public DBIO(){ 19 this.connect(); 20} 21 22 public void connect() { 23 try { 24 25 Class.forName("com.mysql.jdbc.Driver"); 26 27 conn = DriverManager.getConnection(DBNAME,DBUSER,DBPASS); 28 29 30 } catch(SQLException e) { 31 32 e.printStackTrace(); 33 34 }catch(ClassNotFoundException e) { 35 36 e.printStackTrace(); 37 38 } 39 } 40 41 42 43 public void close() { 44 45 if(conn != null) { 46 try { 47 conn.close(); 48 }catch(SQLException e) { 49 e.printStackTrace(); 50 } 51 } 52 } 53}
//住所一覧取得する public ArrayList<String> getaddrss() {
ResultSet rs = pstmt.executeQuery();
上記のコードでエラーが出てしまいます
ArrayList<String> result = addrdb.getaddrss();
メソッドの呼び出し側でもエラーが出てしまいます。
jspの住所取得ボタンを押したら Address サーブレットでADDR_DBを呼び出しデータベースから住所を取得し結果を address_view.jspに渡したいと考えております。
解決出来なかったのでアドバイスお願いします。
--追記部分--
at dao.ADDR_DB.getaddrss(ADDR_DB.java:26)
at servlet.Address.doGet(Address.java:39)
この辺でエラーが出ていると思い
executeQuery();や その周辺のメソッドの使い方や戻り値などについて調べてみましたが、解決できませんでした。
エラーメッセージは1000文字を超えるため 質問の追記のところに貼り付けます。
回答1件