JAVA
게시물상세(model2.ver)
docc
2021. 7. 25. 12:48
수단 & 목표 분석
이 분석을 잘해야 구조를 잘세워 코드를 제대로 짤 수 있다.
- 프로젝트 일정표 | ||
- 분석 ( 목적을 설정하기 위한 작업 ) - 사용자 요구 분석 : 그들의 요구가 무엇인가. - 목표설정 : 분석한 요구를 보고 목표를 설정 |
||
- 문제정의서 | ||
- use case D | ||
- 스토리보드-화면설계 https://ovenapp.io/ 사이트 통해서 io 화면 설계해보자 | ||
- class D ( 아래에서 배울 내용 - UML ) | ||
- ERD ( 아래에서 배울 내용 ) |
게시물상세
게시물 상세 요청 | ||
1) 요청 업무처리 | ||
- 게시물상세.jsp (게시물 찾아 넘기기) | ||
2) 요청 결과통보 ( html view 보냄) | ||
- .jsp |
>> 게시물목록창.jsp (상세로 넘어가도록 제목에 a태그)
<%
ArrayList<게시물> 게시물들 = (ArrayList<게시물>)request.getAttribute("게시물들");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<center>
<!-- 3. 목록출력 -->
<h1>게시물목록</h1>
<ul style="list-style: none">
<%
for(int i = 0; i<게시물들.size(); i++)
{
게시물 수집된게시물 = 게시물들.get(i);
%>
<%-- 3-1. 게시물 1개출력 --%>
<li>
<%= 수집된게시물.get번호() %>.
<a href="게시물상세.jsp?no=<%=수집된게시물.get번호()%>"><%= 수집된게시물.get제목() %></a>
<%= 수집된게시물.get작성일().toString() %>
<%= 수집된게시물.get조회수() %>
</li>
<%
}
%>
<br><a href="게시물등록준비.jsp">글쓰기</a><br>
</ul>
</center>
</body>
</html>
>> 게시물DAO.java
public 게시물 찾다by번호(int 번호,boolean 조회수증가) {
게시물 찾은게시물 = null;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection DB연결관리자 = DriverManager.getConnection(String.format("jdbc:mysql://%s:%s/%s?useUnicode=true", ConnectionInfo.DBIP,
ConnectionInfo.DBPORT, ConnectionInfo.DBName),
ConnectionInfo.UID, ConnectionInfo.PASSWORD);
Statement 명령전달자 = DB연결관리자.createStatement();
// 조회수증가
if(조회수증가) {
명령전달자.executeUpdate(String.format("update 게시물 set 조회수 = 조회수 + 1 where 번호 = %d", 번호));
}
// 선택한 게시물 가져오기
String 수집SQL = String.format("select * from 게시물 where 번호 = %d",번호);
ResultSet 수집된표관리자 = 명령전달자.executeQuery(수집SQL);
if(수집된표관리자.next()) {
int 게시물번호 = 수집된표관리자.getInt("번호");
String 제목 = 수집된표관리자.getString("제목");
String 내용 = 수집된표관리자.getString("내용");
java.sql.Date 작성일 = 수집된표관리자.getDate("작성일");
int 조회수 = 수집된표관리자.getInt("조회수");
찾은게시물 = new 게시물();
찾은게시물.set번호(게시물번호);
찾은게시물.set제목(제목);
찾은게시물.set내용(내용);
찾은게시물.set작성일(작성일);
찾은게시물.set조회수(조회수);
}
수집된표관리자.close();
DB연결관리자.close();
} catch (Exception e) {
e.printStackTrace();
}
return 찾은게시물;
}
>> 게시물상세.jsp
<%
String str번호 = request.getParameter("no");
int 번호 = Integer.valueOf(str번호);
게시물DAO dao = new 게시물DAO();
게시물 찾은게시물 = dao.찾다by번호(번호);
request.setAttribute("찾은게시물", 찾은게시물);
RequestDispatcher rd = request.getRequestDispatcher("게시물상세창.jsp");
rd.forward(request, response);
%>
>> 게시물상세창.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="com.stone.board3_maven.boardmanage.게시물"%>
<%
게시물 찾은게시물 = (게시물)request.getAttribute("찾은게시물");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>게시물 상세보기</h1><br>
제목 <%=찾은게시물.get제목() %> <br>
내용 <textarea rows="10" cols="20" readonly="readonly"><%=찾은게시물.get내용() %></textarea> <br>
작성일 <%=찾은게시물.get작성일().toString() %>
조회수 <%=찾은게시물.get조회수() %>
</body>
</html>