ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 게시물상세(model2.ver)
    JAVA 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번호() %>. &nbsp;&nbsp;
    			<a href="게시물상세.jsp?no=<%=수집된게시물.get번호()%>"><%= 수집된게시물.get제목() %></a> 
    			<%= 수집된게시물.get작성일().toString() %>&nbsp;&nbsp; 
    			<%= 수집된게시물.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>

     

     

    댓글

Designed by Tistory.