studyplan

spring boot 게시판 만들기 7. @service , HttpServletResponse response 사용 , HttpServletRequest request 사용 , WebUtils.getCookie() 사용법 본문

스프링

spring boot 게시판 만들기 7. @service , HttpServletResponse response 사용 , HttpServletRequest request 사용 , WebUtils.getCookie() 사용법

무한머니 2022. 7. 20. 02:45

 

 

@Service

@Controller 와 @Repository 사이의 중간 관계이다 

저장소에서 컨트롤까지 가는데 중간에 비즈니스 로직이 들어있는 코딩의 집합소 ! 

 

 

Board 타입에 board 라는 값을 saveService 에 주면 

@Repository 에 있는 save메서드에 board 를 넣어준다 

 

 

 

List<Board> boardList = repository.findAll();

 리스트로 받아온 boardList 를 

  processConverting에 넣는다 

그러면   processConverting() 메서드가 도는데 

메서드 안에는 

 

 

2개의 메서드가 돌아간다 !! 

 

     convertDateFormat(b); 와  substringTitle(b); 메서드 인데 

 

 boardList  라는 리스트를 포문을 돌려서 나온 하나 하나의 값에 

  convertDateFormat(b); 와  substringTitle(b); 메서드 를 사용한다 

 

먼저 

 

     convertDateFormat(b); 이 메서드는 

Board 타입에 b 라는 객체인데 

b.getRegDate()으로 날짜 객체인 date 값을 

yy-MM-dd a hh:mm

이런 형식으로 형식을 바꿔준다 !! 

 

b.set 변경된 문자열에 SimpleDateFormat타입인 sdf에 포멧한다 바뀌기 전  date 값을 넣는다 

 

참고 예시  ~ 

 

 

 

두번째 substringTitle는 

글 제목이 너무 길어졌을 경우 짧게 보여주는 것 ! 

Board 타입인 b에서 title 을 가져와서 

길이를 잰 후 

길이가 5 를 넘어가면 

처음부터 5번째까지 자른 문장 + ... 을 합쳐서 반환한다 

 

게시판 상세 조회 요청 중간 처리!! 

내가 어떤 게시글을 눌렀을때 그 게시글 정보를 가지고 오는 메서드이다  // 게시글을 눌렀을때 작동 된다 !! 

 그렇다면 우리는 조회를 한것이기때문에 조회수를 올릴수도있다 

 

그렇게 그 게시글에 들어갔을때 조회수가 올라가는데 , 악질적인 사람들 때문에 

F5 를 계속 눌러서 게시글의 조회수를 올리는 사람들이 있어서 그런걸 막기 위해서 

Cookies 를 만들어서 제한을 걸어준다 

일상속에서 어떤 사이트에 가면 자동 로그인설정이 있는데 

그 사이트에 방문해서 자동로그인 설정을 해놓는 즉시 우리 컴퓨터에 쿠키라는걸 주고 그 쿠키가 살아있는 동안 우리는 그 사이트에서 계속 자동로그인을 사용할수 있다 

Cookie foundCookie = WebUtils.getCookie(request, "b" + boardNo); 

Cookie 타입의  foundCookie 는 

WebUtils.getCookie(들어온 요청 , 쿠키에 붙여준 이름 ) 이다 

이 뜻은 들어온 요청에서 쿠키를 get 하라는 뜻이다 

 

만약 쿠키가 있다면 viewCount 가 올라가지 않을것이고 

 

if( foundCookie 가 없다면 )

viewCount 를 올리고 

 

 cookie.setMaxAge(60);  60초 짜리 쿠키

 cookie.setPath("/board/content"); 여기경로에서만 사용하는 

 

 response.addCookie(cookie); 전달해준다 ~ 

 

 

원본 make

 makeViewCount() 메소드는 

쿠키 없이 , @controller 와 @repository 사이를 이어주는 중간 다리 역할이었다 

 

 다시 쿠키 얘기로 돌아가면 

 

쿠키라는것은 일단 제한을 걸어두거나 , 어떤 상태인지를 나타내는 장치로써 시간과 장소를 제한해서 걸어둘수 있다 

무작정 계속 발급하면 용량도 금방 생겨나니 

if 절로 만들어서 있으면 안주는 형식으로 만드는것이다 . 

 

이때 중요한점은 쿠키에서 필요한 정보는 

정보를 받을 request 객체와 , 정보를 돌려줄 response 객체이다 // 이게 있어야 만들지 말지를 정하는것이다 

 

 

 

Comments