본문 바로가기
공부기록

5월 24일 Spring - 게시판 다운로드, 댓글 처리

by project100 2023. 5. 24.

WEB

request 객체 - response 객체

request 객체 - 글쓰기 정보(제목, 내용, 파일 등) 서버에서 전달 받아서 모이는 장소

-> 서버 DB -> 저장이 잘 되었는지 응답객체 response(msg, view-jsp)

 

데이터만 넘기는 방식 : 비동기 방식

return값은 data

 

modelandview는 사용자에게까지 데이터가 전달되는 것이 아니라, view의 jsp까지만 전달되고, html파일로 변환되어 사용자에게 전달(spring 프레임워크 내부에서만 사용)

 

사용자에게 직접 전달되기 위해서는 respons 객체를 이용해야 한다.

 


1. boardcontents.jsp

2. boardcontroller

자원 - 파일

3.boardservice

HTTP 상태 및 해당 코드

1) 정상(ok) : 200

2) 파라미터 부족(Bed Request) : 400 (사용자가 보낸 데이터와 안 맞을 때)

3) 페이지 없음(Page Not Found) : 404 (링크 오류)

4) 내부 서류 오류(Server Error) : 500 (프로그램 오류)

 

HTTP 구조

컴퓨터 네크워크 상의 데이터는 hearder와 body로 구성

hearder에는 전송되는 데이터를 처리할 때 활용되는 정보가 포함되며, body에는 데이터가 포함된다.

header에 포함되는 정보 : 상태정보, content type(text, medila, app 등), 데이터의 크기, 파일 이름 등

 

Analog : 이전과 이후가 연속된 흐름으로 생성된 값, ex> 필름사진 다양한 크기(깨지지 않음)

digital : 파형 데이터의 흐름의 끊김, 단절이 되어 상태값이 달라짐, 0과 1 수치로 나타낼 수 있음 code, 전기신호로 표현

인코딩 : Encoding 아닐로그를 디지털로 바꾸는 변환작업, 컴퓨터가 볼 수 있도록 변환

디코딩 : 디지털로 아날로그로 바꾸는 변환작업, 사람이 볼 수 있도록 변환

인코딩 방식은 여러가지 : utf-8

 

라우터 : 네트워크 환경 길을 형성, 막히면 우회하기도 함, 데이터 전송 통로, 패킷단위

원래 보낸 데이터의 패킷을 모았을 때 데이터의 크기가 정해져 있어야 확인할 수 있음.

 

return ResponseEntity.ok() - 내부적으로 처리가 되었다는 의미
.contentType(MediaType -보내는 미디어의 형태
.APPLICATION_OCTET_STREAM) - 데이터를 8개 묶어서 보냄
.cacheControl(CacheControl.noCache()) - 캐쉬를 저장하지 않는다. 임시저장 X
.header(HttpHeaders.CONTENT_DISPOSITION, - 헤더에 관련된 내용 저장
"attachment; filename=" + fileName).body(fResource); - 파일 이름

 4. baordcontroller 연결

 

-> 실행 시 브라우저 설정이 되어 있으면 바로 다운로드 처리된다. 파일의 이름이 제대로 되어 있는지 확인하면 된다.

 

 

댓글

1. boardcontents.jsp - html 태그, javascript

2. boardcontroller

3. boarddao - boardddao.xml 댓글 저장 메소드 선언

4. boardservice

5. boarddao - boardddao.xml 추가한 댓글 가져오는 메소드 선언

5. boardcontroller 연결