html
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 ArrayList<String> post = addrdb.getpost(); 41 request.setAttribute("result", result); 42 request.setAttribute("post", post); 43 RequestDispatcher dispatcher = request.getRequestDispatcher("/address_view.jsp"); 44 dispatcher.forward(request, response); 45 } 46 47 /** 48 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 49 */ 50 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 51 // TODO Auto-generated method stub 52 doGet(request, response); 53 } 54 55} 56
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 public ArrayList<String> getpost(){ 16 ArrayList<String> post = new ArrayList<String>(); 17 18 19try { 20 21 connect(); 22 23 String sql ="SELECT address_code FROM addresses"; 24 25 26 PreparedStatement pstmt = conn.prepareStatement(sql); 27 ResultSet rs = pstmt.executeQuery(); 28 29 while(rs.next()) { 30 ; 31 post.add(rs.getString("address_code")); 32 33 } 34 35 }catch(SQLException e){ 36 37 e.printStackTrace(); 38 39 }finally { 40 41 this.close(); 42 } 43 44 45 return post; 46 } 47 48 49 50 //住所一覧取得する 51 public ArrayList<String> getaddrss() { 52 ArrayList<String> result = new ArrayList<String>(); 53 54 try { 55 56 connect(); 57 58 String sql ="SELECT CONCAT(address_prefecture, address_city, address_street) AS address FROM addresses"; 59 60 61 PreparedStatement pstmt = conn.prepareStatement(sql); 62 ResultSet rs = pstmt.executeQuery(); 63 64 while(rs.next()) { 65 ; 66 result.add(rs.getString("address")); 67 68 } 69 70 }catch(SQLException e){ 71 72 e.printStackTrace(); 73 74 }finally { 75 76 this.close(); 77 } 78 return result; 79 } 80} 81
java
1 2package dao; 3 4import java.sql.Connection; 5import java.sql.DriverManager; 6import java.sql.PreparedStatement; 7import java.sql.ResultSet; 8import java.sql.SQLException; 9import java.util.ArrayList; 10 11public class DBIO { 12 13 protected static final String DBNAME = "jdbc:mysql://localhost:3306/webkensyu?useUnicode =true&characterEncoding=utf8"; 14 protected static final String DBUSER = "user"; 15 protected static final String DBPASS = "pass"; 16 protected Connection conn; 17 18 19 public DBIO(){ 20 this.connect(); 21} 22 23 public void connect() { 24 try { 25 26 Class.forName("com.mysql.jdbc.Driver"); 27 28 conn = DriverManager.getConnection(DBNAME,DBUSER,DBPASS); 29 30 31 } catch(SQLException e) { 32 33 e.printStackTrace(); 34 35 }catch(ClassNotFoundException e) { 36 37 e.printStackTrace(); 38 39 } 40 } 41 42 43 44 public void close() { 45 46 if(conn != null) { 47 try { 48 conn.close(); 49 }catch(SQLException e) { 50 e.printStackTrace(); 51 } 52 } 53 } 54} 55 56
html
1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <%@ page import="java.util.ArrayList"%> 4<!DOCTYPE html> 5<html> 6<head> 7<meta charset="UTF-8"> 8<title>住所一覧</title> 9</head> 10<body> 11<table border="1"style="border: 1px solid black; border-collapse: collapse;"> 12<%ArrayList<String> address = (ArrayList<String>) request.getAttribute("result");%> 13<%ArrayList<String> post = (ArrayList<String>) request.getAttribute("post");%> 14<%for(String addr : address){ %> 15<tr> 16<td> 17<%int i=0;%> 18<%=post[i]%> 19<%=addr%> 20<%i++;%> 21</td> 22</tr> 23<%}%> 24</table> 25</body> 26</html>
jspから住所取得ボタンが押されると Address サーブレットで 郵便番号と住所を取得してそれをjspで表示したいと考えております。
しかし、なかなか上手く表示するができません。
上記のjspコードだと
<%=post[i]%>
この行で見つかった複数の注釈:
- 式の型は配列型で ArrayList<String> に解決済みのものである必要が
あります
で上記のエラーがでます。
画像のような感じで表示したいと考えております。(汚くてすみません)
初めは、郵便番号と住所を一緒にsqlで取得していたのですが、郵便番号
回答1件
あなたの回答
tips
プレビュー