2019. 5. 16. 22:52ㆍSpring
리다이렉트
- 회원 정보 수정 요청
- 지금 로그인이 되어 있나?
- 로그인 되어 있을 경우 회원 수정 페이지로 이동
- 로그인 되어 있지 않을 경우 메인 페이지로 이동 → redirect
// 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() → 컨트롤러가 작동하기 전
- postHandle() → 컨트롤러가 작동한 후
- afterCompletion() → 컨트롤러 뷰가 다 작동한 후
- preHandle(), postHandle(), afterCompletion()
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.handler.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); } } |
- servlet-context.xml
<interceptors> <interceptor> //member/modifyForm, member/removeForm은 MemberLoginInterceptor 처리를 해라 <mapping path="/member/modifyForm"/> <mapping path="/member/removeForm"/> <!-- //member로 들어오는곳은 전부 MemberLoginInterceptor 처리를 해라! <mapping path="/member/**"/> //member/joinForm은 제외 해라! <exclude-mapping path="/member/joinForm"/> --> <beans:bean class="com.bs.lec21.member.MemberLoginInterceptor"/> </interceptor> </interceptors> |
'Spring' 카테고리의 다른 글
[Spring] MVC model 1, 2 - 개념 및 설계구조 (0) | 2019.05.17 |
---|---|
세션, 쿠키 (0) | 2019.05.16 |
DI(Dependency injection) (0) | 2019.05.16 |