Spring Web Project
-
03. 게시물 적용Spring Web Project/9. 인터셉터 (Interceptor) 2021. 3. 6. 13:55
[로그인한 사용자] - 게시물의 등록 - 게시물의 수정/삭제 - 댓글 추가/수정/삭제 [일반 사용자] - 게시물의 목록 - 게시물의 조회 - 댓글 목록 1. AuthInterceptor.java > LoginInterceptor : 로그인한 사용자에 대해 postHandle()을 이용한 HttpSession 보관 처리 > AuthInterceptor : 특정 경로 접근 시 현재 사용자가 로그인한 상태의 사용자인지 체크 역할 2. AuthInterceptor 설정 3. LoginInterceptor.java > 로그인 성공 후 response.sendRedirect() 시 'dest' 정보 사용 4. 등록 페이지 Note) JSP에서 사용하는 EL의 경우 자동으로 HttpSession에 있는 'login'..
-
02. 로그인 처리Spring Web Project/9. 인터셉터 (Interceptor) 2021. 2. 15. 11:05
Note) HttpSession 객체 > 세션 쿠키(session cookie)를 통해 동작함, 서버는 필요한 경우 접속한 브라우저에게 고유한 세션 쿠키를 전달 > 세션 쿠키가 열쇠(key)라면 HttpSession은 열쇠가 필요한 잠금장치가 되어있는 상자와 유사, 이 상자들이 모여있는 공간을 '세션 저장소(Session Repository)'라고 하는데, 너무 많은 세션이 존재하면 서버의 성능에 영향을 미치기 때문에 서버에는 일정 시간 이상 사용되지 않는 상자들을 정리하는 기능 有 (web.xml을 이용하여 HttpSession의 timeout 지정) > 세션을 이용하는 방식의 핵심은 HttpSession을 이용해서 원하는 객체를 보관할 수 있다는 점 > 세션이 보관된 객체는 JSP에서 EL을 이용해 ..
-
01. Spring MVC의 인터셉터(Interceptor)Spring Web Project/9. 인터셉터 (Interceptor) 2021. 2. 15. 10:39
스프링 MVC에서 인터셉터는 웹 애플리케이션 내에서 특정한 URI 호출을 '가로채는' 역할 1. Filter와 Interceptor의 차이 (공통점) Servlet 기술의 Filter와 Spring MVC의 HandlerInterceptor는 특정 URI에 접근할 때 제어하는 용도로 사용 (차이점) 실행 시점에 속하는 영역(Context)의 차이, Filter는 동일한 웹 애플리케이션의 영역 내에서 필요한 자원들을 활용하나 Interceptor의 경우 스프링 내 모든 객체(빈)에 접근이 가능 > 예컨대, HandlerInterceptor의 경우 스프링의 빈으로 등록된 컨트롤러나 서비스 객체들을 주입받아 사용할 수 있기에 기존의 구조를 그대로 활용하면서 추가적인 작업이 가능 2. Spring AOP와 Ha..
-
03. 게시물 등록의 파일 업로드Spring Web Project/8. 첨부파일 2021. 2. 4. 16:17
1. 테이블 생성 create table tbl_attach ( fullName varchar(150) not null, bno int not null, regdate timestamp default now(), primary key(fullName) ); alter table tbl_attach add constraint fk_board_attach foreign key (bno) references tbl_board(bno); 2. Domain 3. DAO > public void addAttach(String fullName) throws Exception; (BoardDAO.java) > insert into tbl_attach(fullname, bno) values (#{fullName}, LA..
-
02. 파일 업로드, 출력/다운로드, 삭제Spring Web Project/8. 첨부파일 2021. 2. 4. 12:29
1. UploadFileUtils 클래스 > uploadFile : 파일 업로드 (이미지 파일의 경우 makeThumbnail 호출, 이미지 파일이 아닌 경우 makeIcon 호출) > calcPath : 파일 저장경로 '년/월/일' 정보 생성 > makeDir : 폴더 생성 > makeThumbnail : 썸네일 이미지 생성 및 업로드 된 파일명 반환 > makeIcon : 업로드 된 파일명 반환 2. MediaUtils 클래스 > 확장자를 가지고 이미지 타입인지를 판단하는 클래스 3. 첨부파일 업로드 및 출력/다운로드 > @RequestMapping의 produces 속성 : 한국어를 정상적으로 전송하기 위한 간단한 설정 > HttpStatus.CREATED : 원하는 리소스가 정상적으로 생성되었다는..
-
01. 설정Spring Web Project/8. 첨부파일 2021. 2. 4. 11:10
1. 라이브러리 추가 > imgScalr 라이브러리 : 이미지를 깨끗하게 축소할 수 있는 라이브러리 (큰 이미지 파일을 고정된 크기로 변환) 2. 설정 Note) 파일 업로드에 사용되는 'multipart/form-data'는 데이터를 여러 조각으로 나누어서 전송, 각 부분(part)마다 경계가 되는 값을 이용해서 많은 양의 데이터를 POST 방식으로 전송할 때 사용 (브라우저에서 서버 전송 시 '---'로 시작하는 부분이 데이터의 경계선) > multipartResolver : 파일 업로드로 들어오는 데이터를 처리하는 객체 > MultipartFile은 POST 방식으로 들어온 파일 데이터를 의미 3. 서버의 파일 저장 경로 설정