5. 연결 - 1

2021. 7. 19. 18:49· 스터디📖/Spring
목차
  1. 21강 리다이렉트, 인터셉트
  2. 21-1 리다이렉트(redirect)
  3. 21-2 인터셉터(Interceptor)

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC_renew/dashboard

 

자바 스프링 프레임워크(renew ver.) - 신입 프로그래머를 위한 강좌 - 인프런 | 강의

스프링 프레임워크 기본부터 실전 사용법까지! 충실하고 폭넓은 설명과 예제를 통해 현장에 바로 투입되어 활약하는 개발자로 거듭나세요., 자바 스프링 프레임워크로 내 개발자 커리어에 봄이

www.inflearn.com

섹션 5. 연결

21강 리다이렉트, 인터셉트

21-1 리다이렉트(redirect)

지금의 페이지에서 특정 페이지로 전환하는 기능

@RequestMapping(value = "/modifyForm")
public String modifyForm(Model model, HttpServletRequest request) {
		
	HttpSession session = request.getSession();
	Member member = (Member) session.getAttribute("member");
		
	if(null == member) {
		return "redirect:/"; //main 페이지로 리다이렉트
        
	} else {
		model.addAttribute("member", service.memberSearch(member));
	}
		
	return "/member/modifyForm";
}

ModelAndView를 이용하는 경우

@RequestMapping("/removeForm")
public ModelAndView removeForm(HttpServletRequest request) {
		
	ModelAndView mav = new ModelAndView();
		
	HttpSession session =  request.getSession();
	Member member = (Member) session.getAttribute("member");
		
	if(null == member) {
		mav.setViewName("redirect:/"); //main 페이지로 리다이렉트
	} else {
		mav.addObject("member", member);
		mav.setViewName("/member/removeForm");
	}
			
	return mav;
}

21-2 인터셉터(Interceptor)

리다이렉트를 사용해야 하는 경우가 많은 경우 HandlerInterceptor(인터페이스)를 이용할 수 있다.
👉 HandlerInterceptor를 구현한 HandlerInterceptorAdapter 를 상속받아서 사용한다.

public class MemberLoginInterceptor extends HandlerInterceptorAdapter {

	@Override
	public boolean preHandle(HttpServletRequest request,
			HttpServletResponse response, Object handler) throws Exception {
		
		HttpSession session = request.getSession(false);
		if(session != null) {
			Object obj = session.getAttribute("member");
			if(obj != null) 
				return true;
		}
		
		response.sendRedirect(request.getContextPath() + "/");
		return false;
	}
	
	@Override
	public void postHandle(HttpServletRequest request,
			HttpServletResponse response, Object handler,
			ModelAndView modelAndView) throws Exception {
		
		super.postHandle(request, response, handler, modelAndView);
	}
	
	@Override
	public void afterCompletion(HttpServletRequest request,
			HttpServletResponse response, Object handler, Exception ex)
			throws Exception {
		
		super.afterCompletion(request, response, handler, ex);
	}
}

스프링 설정 파일

<interceptors>
	<interceptor>
		<mapping path="/member/modifyForm"/> <!--interceptor가 작동하는 경우 설정-->
		<mapping path="/member/removeForm"/>
		<!-- 
		<mapping path="/member/**"/> /member/아래에 들어오는 모든 경우에 작동
		<exclude-mapping path="/member/joinForm"/> exclude를 제외한..
		<exclude-mapping path="/member/join"/>
		<exclude-mapping path="/member/loginForm"/>
		<exclude-mapping path="/member/login"/>
		<exclude-mapping path="/member/logout"/>
		<exclude-mapping path="/member/modify"/>
		<exclude-mapping path="/member/remove"/>
		-->
		<beans:bean class="com.bs.lec21.member.MemberLoginInterceptor"/>
	</interceptor>
</interceptors>
저작자표시 (새창열림)

'스터디📖 > Spring' 카테고리의 다른 글

5. 연결 - 3  (0) 2021.07.22
5. 연결 - 2  (0) 2021.07.21
5. 연결  (0) 2021.07.16
4. 설정 및 구현 - 7  (0) 2021.07.15
4. 설정 및 구현 - 6  (0) 2021.07.14
  1. 21강 리다이렉트, 인터셉트
  2. 21-1 리다이렉트(redirect)
  3. 21-2 인터셉터(Interceptor)
'스터디📖/Spring' 카테고리의 다른 글
  • 5. 연결 - 3
  • 5. 연결 - 2
  • 5. 연결
  • 4. 설정 및 구현 - 7
호프
호프
호프
Untitled
호프
전체
오늘
어제
  • 분류 전체보기 (341)
    • 오류😬 (4)
    • 스터디📖 (96)
      • 웹 개발 기초 (8)
      • Spring (20)
      • ML, DL (30)
      • Node.js (22)
      • React (0)
      • 블록체인 (12)
      • Go (3)
      • Javascript (1)
    • 알고리즘💻 (153)
      • 그리디 (23)
      • Bruteforce&Backtracking (16)
      • DP (17)
      • 이분탐색&정렬&분할정복 (17)
      • 누적합&투포인터 (6)
      • 스택&큐&덱 (19)
      • 그래프(DFS&BFS) (19)
      • 트리 (7)
      • 우선순위큐&다익스트라 (11)
      • 벨만포드&플로이드와샬 (8)
      • map&set&number theory (5)
      • 기타 (5)
    • 프로젝트 (3)
      • 캡스톤 디자인 프로젝트 (3)
    • 블록체인🔗 (3)
      • Solana (2)
      • 개발 (0)
      • Harmony (1)
    • ASC (6)
    • CS (73)
      • 데이터베이스 (12)
      • 클라우드컴퓨팅 (21)
      • 운영체제 (11)
      • 컴퓨터네트워크 (14)
      • 블록체인응용 (15)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 복습

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
호프
5. 연결 - 1
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.