반응형
리다이렉트 re + direct 다시 지시하다.
로그인 정보가 없는데 회원정보를 수정하거나, 회원 사이트에 비회원이 들어올때 사용할수 있다.
다음과같이 사용할수 있다.
// Modify
@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:/";
} else {
model.addAttribute("member", service.memberSearch(member));
}
return "/member/modifyForm";
}
리다이렉트를 자주 사용하지 않는다면 컨트롤러에서 리다이렉트를 해주면 좋으나 공통된 구분이 많을땐 인터셉터를 사용한다고 한다.
preHandle은 컨트롤러를 타기전에 실행되는 매서드이다.
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;
}
<interceptors>
<interceptor>
<!-- 특정 리퀘스트만 지정할수 있다. -->
<mapping path="/member/modifyForm"/>
<mapping path="/member/removeForm"/>
<!-- 공통된 모든 리퀘스트를 지정할수 있다.
<mapping path="/member/**"/>
<exclude-mapping path="/member/joinForm"/>
<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>
위는 servlet-context.xml에 작성된 인터셉터다. bean class를 참조한다.
preHandle()은 컨트롤러를 타기전에
postHandle()은 컨트롤러를 타고 난후
afterCompletion()은 컨트롤러, 뷰페이지가 끝나고 난후 실행된다.
반응형
'프레임워크 > 스프링' 카테고리의 다른 글
[에러]Unable to create a Configuration, because no Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath. (4) | 2023.12.22 |
---|---|
[spring] IntelliJ 스프링 #3 Mapper, mybatis 설정. (15) | 2023.10.13 |
[spring] IntelliJ 스프링 #2 DB.연결(mariaDB) (6) | 2023.10.12 |
[spring] IntelliJ 스프링(maven) #1 개발환경 만들기 (6) | 2023.10.11 |
Static Resources 매핑 안 (0) | 2023.06.13 |
댓글