본문 바로가기
JSP

Servlet 과 JSP를 이용한(모델2 형식) 블로그 만들기(15) - 조회수를 증가시키는 부가옵션 만들기

by 김마리님 2020. 6. 11.

지난 게시글은 여기  >>

Servlet 과 JSP를 이용한(모델2 형식) 블로그 만들기(14) - 해시 함수를 이용해서 비밀번호 해싱하기

 

Servlet 과 JSP를 이용한(모델2 형식) 블로그 만들기(14) - 해시 함수를 이용해서 비밀번호 해싱하기

지난 게시글은 여기 >> Servlet 과 JSP를 이용한(모델2 형식) 블로그 만들기(13) - iframe과 파싱을 이용해 유튜브 파싱하기 > Servlet 과 JSP를 이용한(모델2 형식) 블로그 만들기(12) - 회원정보 수정하기 > S

itstudy-mary.tistory.com

 

우리가 블로그 같은거 하면 보는것! 조회수!

그런데 우리 블로그에는 readCount만 만들어놓고 정작 이걸 증가시킬 수 있는 옵션을 만들지 않았다.

이제 클릭될 때마다 올라갈 수 있는 옵션을 만들자.

 

근데 이거 진짜 간단하다. 상세보기로 액션이 생길때마다 그 게시글 아이디를 파라메터로 가지고 와서 그 게시글의 readCount를 1씩 올리면 된다.. 사실 처음해보면 로직을 생각하기 어려워서 그렇지 어마어마하게 간단하다..

 

상세보기를 누르면 액션을 통해 데이터베이스에 접근 할 것이다. 이 때를 노려(?) 함수를 작동시켜 값을 1 올리자.

그럼 상세보기를 누를 때 액션을 수정하면 되겠다.

 

- BoardDetailAction.java의 데이터베이스 접근 부분

		BoardRepository boardRepository=BoardRepository.getInstance();
		boardRepository.update(id);
		DetailResponseDto dto = boardRepository.findById(id);

 

-BoardRepository.java의 update(id) 함수 부분.

	public int update(int id) {
		final String SQL="Update board set readCount=readCount+1 where id = ? ";
		try {
			conn=DBConn.getConnection();
			pstmt = conn.prepareStatement(SQL);
			//물음표 완성하기

			pstmt.setInt(1, id);

			pstmt.executeUpdate();

			return 1;
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println(TAG+"update : "+e.getMessage());
		}finally {
			DBConn.close(conn, pstmt);
		}

		return -1;
	}

 

이 값을 받았으니까.. 이 값을 response의 속성에 넣고.. (어차피 dto 내부에 예쁘게 들어가 있을것이다. dto에 값을 넣기 전에 먼저 누구보다 빠르게 조회수를 수정 했으니까) 이걸 그냥 화면에 출력하면 된다.

 

- detail.jsp의 작성자, 조회수 출력 부분

<br/><br/>	
	<h6>작성자 : <i>${dto.username },</i> 조회수 :${dto.board.readCount }</h6>
	<br/>	
	<h3><b>${dto.board.title }</b></h3>

 

 

이 결과는 다음과 같다

 

반응형