기다긴 연휴가 끝나고 다시 시작된 수업.
다른 때보다 굉장히 적응하기 힘들었고
정신 차리자 주문을 외다 끝난 하루 ㅋㅎ 다시 마음을 잡고 달려보자
타임리프를 끝내며..
MVC 패턴 중, 스프링에서 VIEW로 사용되는 기술 : 타임리프, jsp
JSP :
📌 공통으로 적용될 모듈을 만들고, 삽입해서 일괄 적용하여 사용하는 방법
사용 분야 :
- Excution() 적용할 메소드 세부적으로 명시.
* 패키지, 클래스 메소드 순서대로 나옴.ex2) 코드
@Aspect -> 공통 기능 빈인 것들 알려줌
@Component -> 빈으로 등록
joinpoint를 통해서 정보를 더 얻을 수 있음.
@Around -> 어디서 실행될 건지 코드 작성.
result = joinPoint.proceed(); 메서드 실행. (필수)
-> around는 proceed 꼭 작성. ( 실행 전, 후를 뜻함)
@After("execution(* com.example.book.controller.*.*(..))")
이런식으로 조건을 주면서 사용.
📌 모든 컨트롤러에서 발생하는 예외나 공통 처리를 한 곳에서 모아서 처리하는 클래스에 붙이는 어노테이션.
컨트롤러라고 볼 수 있다.
Spring MVC에서 사용하는 전역 예외 처리, 전역 바인딩 설정, 전역 응답 변환 처리 등을 담당한다.
AOP의 한 종류이다.
@ControllerAdvice
public class MyControllerAdvice {
@ExceptionHandler
[@ResponseStatus]
[@ResponseBody]
public String handle(RuntimeException e, WebRequest request) {
return [view];
}
}
cf. xx.class
클래스
📌 Spring에서 필터(Filter)는 웹 요청 처리에서 가장 먼저 동작하는 컴포넌트이다.
요청이 컨트롤러에 도달하기 전에 먼저 필터를 통과하고, 응답도 필터를 거쳐 나간다.
XSS (Cross Site Scripting) 방지
요청, 응답 로깅
인증, 인가 처리
CORS 설정
IP 차단
위와 같은 공통 처리 로직을 전역적으로 적용할 때 사용된다.
@Slf4j
public class IPCheckFilter implements Filter {
@Override
public void doFilter(
ServletRequest request,
ServletResponse response,
FilterChain chain) throws IOException, ServletException {
log.debug("filter begin");
HttpServletRequest req = (HttpServletRequest) request; -> 다운캐스팅
String ip = request.getRemoteAddr();
log.debug("ip : " + ip);
chain.doFilter(req, response); -> 다음 단계로 넘어감
log.debug("filter end");
}
}
일단 필터 클래스는 filter를 구현해야하고, 따라서 doFilter 재정의 필수인 형태이다.
@RequestHeader클라이언트의 헤더 값이 같이 전송
필터는 AOP, Interceptor와 달리 가장 앞단에서 실행되는 특징을 가지고 있다. 각 목적이 조금씩 다르기 때문에 목적에 따라 적절히 사용한다.
URI : 리소스를 식별
URL : 리소스의 위치, 접근 방법
구분