-
게시물목록(jsp버전)JAVA 2021. 7. 25. 00:03
게시물목록
1. 업무규칙
-> 서버에서 처리되야하니 자바코드로
2. 데이터수집
-> Java
3. 목록출력
-> HTML에 출력
>>게시물목록.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.*" %> <% // 1. 업무규칙검사 // 했다치고 // 2. 데이터수집 try { Class.forName("com.mysql.cj.jdbc.Driver"); Connection DB연결관리자 = DriverManager.getConnection("jdbc:mysql://localhost:3306/board1_1?useUnicode=true", "root", "1234"); Statement 명령전달자 = DB연결관리자.createStatement(); System.out.println("연결 성공"); String 수집SQL = "select * from 게시물;"; ResultSet 수집된표관리자 = 명령전달자.executeQuery(수집SQL); %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <center> <!-- 3. 목록출력 --> <h1>게시물목록</h1> <ul> <% int i = 1; while(수집된표관리자.next()) { %> <!-- 3-1. 게시물 1개출력 --> <li> <%= i++ %> <%= 수집된표관리자.getString("제목") %> <%= 수집된표관리자.getDate("작성일").toString() %> <%= 수집된표관리자.getInt("조회수") %> </li> <% } 수집된표관리자.close(); DB연결관리자.close(); } catch (Exception e) { e.printStackTrace(); } %> </ul> </center> </body> </html>
ResultSet의 표를 객체로 출력
위의 ResultSet 이 가져온 Query결과(Select-from)의 표는 자바객체 즉, 완제품으로 가져온 것이 아니라
부품들을 하나씩 가져온것 뿐이다.
(클라이언트에게서 정보를 받아 DB에 저장했을 때와 같은 논리 =
하나씩 String으로 받기 보단 java파일로 클래스를 하나 만들어 DB와 멤버가 동일한 객체를 생성해 객체로 set하고 get으로 얻었다.)
그러면 페이지소스를 확인했을 때 HTML의 글로 보이기 때문에 이 글들의 출처가 어디일 지 알 수가 없다.
그래서 이번엔 ResultSet이 가져온 표를 객체로 바꿔보자.
Collection을 사용해야한다.
[] = 원시배열(java 이론에 원래 있던 배열)
Collection의 클래스들 = library에 있는 따로 만들어낸 배열
둘의 차이점: 원시배열 삽입/삭제 불가(고정길이) , Collection클래스는 삽입/삭제(가변길이)/원하는 값 가져오기 등 여러가지 가능
그 중 List의 클래스인 ArrayList를 사용할 것이다.
>> 게시물목록2.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.*"%> <%@page import="java.util.*"%> <%@ page import="boardmanage.게시물"%> <% // 1. 업무규칙검사 // 했다치고 ArrayList<게시물> array게시물 = new ArrayList<게시물>(); // 2. 데이터수집 try { Class.forName("com.mysql.cj.jdbc.Driver"); Connection DB연결관리자 = DriverManager.getConnection("jdbc:mysql://localhost:3306/board1_1?useUnicode=true", "root", "1234"); Statement 명령전달자 = DB연결관리자.createStatement(); System.out.println("연결 성공"); String 수집SQL = "select * from 게시물"; ResultSet 수집된표관리자 = 명령전달자.executeQuery(수집SQL); int 일련번호 = 1; while (수집된표관리자.next()) { int 게시물번호 = 수집된표관리자.getInt("번호"); String 제목 = 수집된표관리자.getString("제목"); java.sql.Date 작성일 = 수집된표관리자.getDate("작성일"); int 조회수 = 수집된표관리자.getInt("조회수"); 게시물 게시물1 = new 게시물(); 게시물1.set번호(게시물번호); 게시물1.set제목(제목); 게시물1.set작성일(작성일); 게시물1.set조회수(조회수); array게시물.add(게시물1); } 수집된표관리자.close(); DB연결관리자.close(); } catch (Exception e) { e.printStackTrace(); } %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <center> <!-- 3. 목록출력 --> <h1>게시물목록</h1> <ul> <% for(int i = 0; i<array게시물.size(); i++) { 게시물 수집된게시물 = array게시물.get(i); %> <!-- 3-1. 게시물 1개출력 --> <li> <%= 수집된게시물.get제목() %> <%= 수집된게시물.get작성일().toString() %> <%= 수집된게시물.get조회수() %> </li> <% } %> <a href="게시물등록준비.jsp">글쓰기</a> </ul> </center> </body> </html>
>> 게시물등록준비.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <center> <h1>게시물등록 제목</h1> <form action="게시물등록.jsp" method="post"> 제목<input type="text" name="title" maxlength="50"> <br> 내용<textarea col1=10 rows=10 name="contents"></textarea> <input type="submit" value="등록"> </form> <a href="게시물목록2.jsp">목록으로</a> </center> </body> </html>
'JAVA' 카테고리의 다른 글
게시물Paging+페이지블럭(jsp버전),DAO (0) 2021.07.25 게시물목록,상세보기,Paging(jsp버전) (0) 2021.07.25 JSP-MySQL,게시물등록(jsp버전) (0) 2021.07.24 JDBC (0) 2021.07.24 JAVA와 DBMS연결하기-JDBC (0) 2021.07.24