LoginInterceptor
로그인하지 않은 사용자가 글쓰기 못하도록 돌려보내주는 역할
spring\common\interceptor에 LoginInterceptor 클래스 생성
> extends HandlerInterceptorAdapter 한 후 안에 내용 채워넣기
> Interceptor등록은 servlet-context.xml에 등록
> loginInterceptor등록해주기
로그인 성공시 인덱스 페이지가 아닌 맨처음 요청이 들어간 페이지로 redirect하도록 하기위하여
interceptor에서 session에 담아두고 로그인이 성공했을때, session에 key값에 해당되는 주소값이 있는지 확인하고
그 페이지로 redirect하도록 location값을 넘겨줌!
로그인 성공 후, redirect할 주소 session에 저장하기(next)
LoginInterceptor >
String uri = request.getRequestURI(); // /spring/board/boardForm.do => 지금 현재 주소 가져오기
주소값을 담아줄때는 request.getContextPath() -> /spring을 ""으로 대체해라(지워라) => 왜냐면 viewName에 redirect할때는 contextPath를 빼고 적기때문
uri = uri.replace(request.getContextPath(), "");
session.setAttribute("next", uri); //session에 next라는 key값으로 주소 저장
> MemberController의 memberLogin메소드
> 로그인 성공시 세션에서 next값 가져오기
String next = (String)session.getAttribute("next");
location = next != null ? next : location;
session.removeAttribute("next"); //한 번 사용된거 지워주기
return "redirect:" + location; //return부분 변수 처리
@RequestMapping(value="/boardEnroll.do", method=RequestMethod.POST)
위에꺼 간결하게 아래처럼 사용가능
@PostMapping("/boardEnroll.do")
파일 여러개 저장하기
controller의 boardEnroll 메소드 파라미터
@RequestParam(value="upFile",required=false) MultipartFile upFile => MultipartFile[] upFiles 는 파일 여러개
> pom.xml에 file upload 처리 의존 라이브러리 등록 > commons-io와 commons-fileupload (이 둘은 한 쌍임)
> servlet-context.xml > file upload를 처리할 빈 등록 : id - multipartResolver
org.springframework.web.multipart.commons.CommonsMultipartResolver에 가보면
setMaxUploadSize... 이런 설정들이 가능(사이즈 정할 수 있음) -> outline에서 확인가능
'프로그래밍 > Spring' 카테고리의 다른 글
10.29(transaction처리, Exception 생성, typeHandler ) (0) | 2020.10.29 |
---|---|
10.28(MultipartFile) (0) | 2020.10.28 |
10.26(RequestParam, Pointcut, rowbounds, formatDate) (0) | 2020.10.26 |
10.23(AOP, Weaving) (0) | 2020.10.23 |
10.22(AOP의 이해, @Slf4j) (0) | 2020.10.22 |