웹개발 교육/jsp

[60일] jsp (36) - myweb 프로젝트(첨부 게시판-목록, 상세보기)

2022. 10. 21. 20:43
목차
  1. 게시글 목록
  2. 상세보기

게시글 목록

PdsDAO.java

public ArrayList<PdsDTO> list() {
    ArrayList<PdsDTO> list = null;
    try {
        con = dbopen.getConection();

        sql = new StringBuilder();
        sql.append(" SELECT pdsno, wname, subject, filename, readcnt, regdate");
        sql.append(" FROM tb_pds ");
        sql.append(" ORDER BY regdate DESC ");

        pstmt = con.prepareStatement(sql.toString());
        rs = pstmt.executeQuery();
        if(rs.next()) {
            list = new ArrayList<>();
            do {
                PdsDTO dto = new PdsDTO();
                dto.setPdsno(rs.getInt("pdsno"));
                dto.setWname(rs.getString("wname"));
                dto.setSubject(rs.getString("subject"));
                dto.setFilename(rs.getString("filename"));
                dto.setReadcnt(rs.getInt("readcnt"));
                dto.setRegdate(rs.getString("regdate"));
                list.add(dto); //list 저장
            } while (rs.next());
        }//if end
    } catch (Exception e) {
        System.out.println("목록실패" + e);
    } finally {
        DBClose.close(con, pstmt, rs);
    }//end
    return list;
}//list() end

 

pdsList.jsp

<%@page import="net.pds.PdsDTO"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ include file="ssi.jsp"%>
<%@ include file="../header.jsp"%>
<!-- 본문 시작 pdsList.jsp-->
<h3>* 포토갤러리 *</h3>
<p><a href="pdsForm.jsp">[사진올리기]</a></p>
<%
	ArrayList<PdsDTO> list = dao.list();
	if(list==null) {
		out.println("관련 자료 없음!");
	} else {
		out.println("전체 글 갯수 : " + list.size());
	}
%>
<!-- 본문 끝 -->
<%@ include file="../footer.jsp"%>

<%@page import="net.pds.PdsDTO"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ include file="ssi.jsp"%>
<%@ include file="../header.jsp"%>
<!-- 본문 시작 pdsList.jsp-->
<h3>* 포토갤러리 *</h3>
<p><a href="pdsForm.jsp">[사진올리기]</a></p>
<%
	ArrayList<PdsDTO> list = dao.list();
	if(list==null) {
		out.println("관련 자료 없음!");
	} else {
		out.println("전체 글 갯수 : " + list.size());
	
%>
		<table class="table table-hover">
		<thead>
			<tr class="danger">
				<th>제목</th>
				<th>사진</th>
				<th>조회수</th>
				<th>작성자</th>
				<th>작성일</th>
			</tr>
		</thead>
		<tbody>
<%
			for(int i=0; i<list.size(); i++) {
				dto = list.get(i);
%>		
			<tr>
				<td><%=dto.getSubject()%></td>
				<td><img src="../storage/<%=dto.getFilename() %>" width="50"></td>
				<td><%=dto.getReadcnt() %></td>
				<td><%=dto.getWname() %></td>
				<td><%=dto.getRegdate() %></td>
			</tr>
<%
			}//for end
%>			
		</tbody>
		</table>
<%
	}//if end
%>		
<!-- 본문 끝 -->
<%@ include file="../footer.jsp"%>

 

상세보기

pdsList.jsp

제목을 클릭하면 상세보기 페이지로 가도록 링크를 걸었다. 이때 pdsno를 가져가도록 하였다.

 

pdsRead.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ include file="ssi.jsp"%>
<%@ include file="../header.jsp"%>
<!-- 본문 시작 pdsRead.jsp-->
<h3>* 포토갤러리 상세보기 *</h3>
<p><a href="pdsForm.jsp">[사진올리기]</a></p>
<%
	int pdsno = Integer.parseInt(request.getParameter("pdsno"));
	dto = dao.read(pdsno);
	if(dto==null) {
		out.println("해당 글 없음!");
	} else {
		dao.incrementCnt(pdsno); //조회수 증가
	}
%>
<!-- 본문 끝 -->
<%@ include file="../footer.jsp"%>

read()와 incrementCnt()를 만들자

 

PdsDAO.java

public PdsDTO read(int pdsno) {
    PdsDTO dto = null;
    try {
        con = dbopen.getConection();

        sql = new StringBuilder();
        sql.append(" SELECT pdsno, wname, subject, regdate, passwd, readcnt, filename, filesize ");
        sql.append(" FROM tb_pds ");
        sql.append(" WHERE pdsno=? ");

        pstmt = con.prepareStatement(sql.toString());
        pstmt.setInt(1, pdsno);

        rs = pstmt.executeQuery(); //select문 실행 (행단위 커서)
        if(rs.next()) {
            dto = new PdsDTO();
            dto.setPdsno(rs.getInt("pdsno"));
            dto.setWname(rs.getString("wname"));
            dto.setSubject(rs.getString("subject"));
            dto.setRegdate(rs.getString("regdate"));
            dto.setPasswd(rs.getString("passwd"));
            dto.setReadcnt(rs.getInt("readcnt"));
            dto.setFilename(rs.getString("filename"));
            dto.setFilesize(rs.getLong("filesize"));
        }//if end

    } catch (Exception e) {
        System.out.println("상세보기 실패 : " + e );
    } finally {
        DBClose.close(con, pstmt, rs);
    }//end
    return dto;
}//read() end

public void incrementCnt(int pdsno) {

    try {
        con = dbopen.getConection();

        sql = new StringBuilder();
        sql.append(" UPDATE tb_pds ");
        sql.append(" SET readcnt = readcnt + 1 ");
        sql.append(" WHERE pdsno=? ");

        pstmt = con.prepareStatement(sql.toString());
        pstmt.setInt(1, pdsno);
        pstmt.executeUpdate();  //sql문 실행

    } catch (Exception e) {
        System.out.println("조회수 증가 실패 : " + e);
    } finally {
        DBClose.close(con, pstmt);
    }//end

}//incrementCnt() end

 

pdsRead.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ include file="ssi.jsp"%>
<%@ include file="../header.jsp"%>
<!-- 본문 시작 pdsRead.jsp-->
<h3>* 포토갤러리 상세보기 *</h3>
<p><a href="pdsForm.jsp">[사진올리기]</a></p>
<%
	int pdsno = Integer.parseInt(request.getParameter("pdsno"));
	dto = dao.read(pdsno);
	if(dto==null) {
		out.println("해당 글 없음!");
	} else {
		dao.incrementCnt(pdsno); //조회수 증가
%>
	<table class="table">
	<tr>
		<th>글제목</th>
		<td><%=dto.getSubject() %></td>
	</tr>
	<tr>
		<th>사진</th>
		<td><img src="../storage/<%=dto.getFilename()%>"></td>
	</tr>
	<tr>
		<th>파일크기</th>
		<td><%=dto.getFilesize() %></td>
	</tr>
	<tr>
		<th>작성자</th>
		<td><%=dto.getWname() %></td>
	</tr>
	<tr>
		<th>작성일</th>
		<td><%=dto.getRegdate() %></td>
	</tr>
	</table>
<%
	}//if end
%>

<!-- 본문 끝 -->
<%@ include file="../footer.jsp"%>

 

파일크기를 알아보기 어려우니 파일크기가 KB나 MB로 출력되게 변경하자

pdsRead.jsp

 

'웹개발 교육 > jsp' 카테고리의 다른 글

[61일] jsp (38) - myweb 프로젝트(과제)  (0) 2022.10.24
[61일] jsp (37) - myweb 프로젝트(첨부 게시판-삭제)  (0) 2022.10.24
[60일] jsp (35) - myweb 프로젝트(첨부 게시판)  (0) 2022.10.21
[59일] jsp (34) - myweb 프로젝트(첨부 게시판 기초)  (0) 2022.10.20
[58~9일] jsp (33) - myweb 프로젝트(아이디, 비밀번호 찾기)  (0) 2022.10.19
  1. 게시글 목록
  2. 상세보기
'웹개발 교육/jsp' 카테고리의 다른 글
  • [61일] jsp (38) - myweb 프로젝트(과제)
  • [61일] jsp (37) - myweb 프로젝트(첨부 게시판-삭제)
  • [60일] jsp (35) - myweb 프로젝트(첨부 게시판)
  • [59일] jsp (34) - myweb 프로젝트(첨부 게시판 기초)
ewok
ewok
ewok
기록장
ewok
전체
오늘
어제
  • 분류 전체보기
    • 웹개발 교육
      • HTML
      • CSS
      • JavaScript
      • Database
      • Java
      • jQuery
      • Ajax
      • Bootstrap
      • jsp
      • Spring
      • MyBatis
      • 프로젝트
    • JAVA
    • SpringBoot
      • 기초
      • AWS
      • 개인프로젝트
    • Spring Security
    • JPA
    • 테스트코드
    • Error
    • CS
      • 컴퓨터 구조
      • 이산수학
    • 알고리즘
      • 정리
      • Java
    • SQL
    • 자격증
      • SQLD
      • 정보처리기사
    • Git

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • org.springframework.beans.factory.UnsatisfiedDependencyException
  • 브랜치
  • base
  • SQLD
  • sqld 합격
  • 버전 관리
  • branch
  • merge commit
  • GIT
  • git bash
  • this
  • sqld 자격증
  • 생성자
  • org.hibernate.tool.schema.spi.CommandAcceptanceException
  • 노랭이

최근 댓글

최근 글

hELLO · Designed By 정상우.
ewok
[60일] jsp (36) - myweb 프로젝트(첨부 게시판-목록, 상세보기)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.