스프링 10

[스프링] 로그인 후 원래 요청한 페이지로 이동하기-2

[이전 게시글] Interceptor로 로그인 체크하기 로그인 체크 후 요청 페이지로 이동하기 [배경] 인터셉터로 로그인 체크하여 고정된 페이지가 아닌, user가 요청한 페이지로 이동하는 것까지는 좋았으나, 파라미터가 유실되는 문제가 확인되었다. [의도] 파라미터까지 가지고와서 정확한 요청 페이지를 보여주자. [원리] request.getRequestURL()을 통해 URL을 가지고 온 것처럼, 파라미터도 가지고 와야 한다. 이때 사용하는 request 객체는 아래와 같다. request.getQueryString() ✓ 예제 실습 After 로그인 Controller @Override public boolean preHandle(HttpServletRequest request, HttpServletR..

[스프링] 로그인 후 원래 요청한 페이지로 이동하기-1

[배경] 세션에 저장된 id값이 없을 경우, Interceptor를 통해 로그인 폼으로 이동하는 것까지는 좋았으나, 로그인 후 redirect로 설정한 main페이지로 고정된 이동이 마음에 들지 않았다. [의도] 인터셉터를 통해 로그인하고 나면 유저가 원래 요청한 페이지로 이동하게 한다. [원리] FROM과 TO를 이해해야 한다. 어디서 요청을 하고, 어디로 요청을 했는지. 요청한 URL 값을 계속 가지고 다녀야 결국엔 요청 URL을 보여줄 수 있는 것 FROM은 아래의 메서드를 통해 알 수 있다. request.getRequestURL() request.getRequestURI() ✓ 예제 실습 Before 인터셉터 response.sendRedirect로 로그인 폼만 매칭할 경우, 로그인 폼으로 이동..

[스프링] 프로젝트 - 게시판 페이징 처리

import lombok.Getter; import lombok.Setter; @Getter @Setter public class Paging { private int currentPage = 1; private int rowPage = 10; private int pageBlock = 10; private int start; private int end; private int startPage; private int endPage; private int total; private int totalPage; //생성자 public Paging(int total, String currentPage1) { this.total = total; if(currentPage1 != null) { this.curre..

[스프링] 게시판 좋아요(추천) 구현(ID당 한 번만 좋아요하기)

좋아요(추천) 구현 모습 [원리의 이해] 게시물 상세페이지 진입 시 유저의 '좋아요' 여부가 확인되어야 함 화면에서 '좋아요' 부분만 업데이트 되어야 함으로 비동기식 ajax 사용 [View][HTML] - 로그인 유저의 '좋아요' 여부에 따라 '빈 하트(heart.svg)' 또는 '검은 하트(heart-fill.svg)'가 출력되어야 하지만, 기본적으로는 '빈 하트'가 출력되도록 설정 - 게시글의 총 '좋아요' 개수 확인하여 출력 ${totalGood} [View][Ajax] [1] 좋아요(추천) 전체 개수 출력 함수 //좋아요 전체 개수 출력 function totalChange(){ $.ajax({ url :'${pageContext.request.contextPath}/totalGood', typ..

[스프링] 프로젝트 - 게시판 댓글 구현(댓글 리스트 출력 편)

해당 게시글의 프로젝트 환경은 링크와 같습니다. [관련 게시글] 댓글 수정하기 댓글 삭제하기 댓글 페이징처리 [Model(DTO)] import java.sql.Timestamp; import lombok.Getter; import lombok.Setter; import lombok.ToString; @Getter @Setter @ToString public class CommentModel { private int r_no; //게시글 번호 private int cno; //댓글 번호 private String id; //User Id private String c_content;//댓글 내용 private Timestamp c_date;//댓글 등록일자 } *Paging 처리 관련 설명 클릭 [Con..

[스프링] 인터셉터(Interceptor)로 로그인 여부 확인해보자.

[Interceptor] • class configuration implements WebMvcConfigurer → interceptor를 실행할 환경 설정 • class interceptor implements HandlerInterceptor → preHandle/postHandle/afterCompletion 메서드 존재 → configuration에 설정되어 실행될 interceptor 객체 [동작순서] configuration에서 지정한 url pattern 확인 시 실행될 interceptor 객체 설정 preHandle (interceptor 객체) controller postHandle (interceptor 객체) view afterCompletion (interceptor 객체) ▶︎..