1. JSTL (JSP Standard Tag Library)
jsp 에서 if문 등을 쓰려면 아래 사진과 같이 코드가 복잡해진다. <% %> 와 같은 자바 태그를 없애기 위해 나온 게 JSTL이다.
파일 상단에 아래와 같이 코드를 입력해줘야 JSTL을 사용할 수 있다.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
2. Filter
필터는 공통적인 요청 전처리와 응답 후처리에 사용한다. ex) 로깅, 인코딩 등
여러 서블릿에 중복되어있는 전처리와 후처리는 필터로 넣고, 서블릿에서는 처리하는 부분만 실행한다.
만약 필터가 여러개일 경우에는 우선 Filter1이 호출되고, 아래 사진에서 1-1.전처리 -> 1-2.필터 호출 -> 2-1.전처리 -> 2-2.서블릿 호출 -> 서블릿 처리 -> 2-3.후처리 -> 1-3.후처리 의 순서와 같다.
아래는 필터 예시 클래스이다. @WebFilter 애노테이션을 사용했으며, urlPatterns="/*", 즉 모든 요청에 적용하도록 했다.
여기서 1.전처리 작업과 3.후처리 작업에 본인이 원하는 코드를 넣으면 서블릿 실행 전/후 마다 실행된다.
// 필터를 적용할 요청의 패턴 지정 - 모든 요청에 필터를 적용.
@WebFilter(urlPatterns="/*")
public class PerformanceFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// 초기화 작업
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
// 1. 전처리 작업
long startTime = System.currentTimeMillis();
// 2. 서블릿 또는 다음 필터를 호출
chain.doFilter(request, response);
// 3. 후처리 작업
System.out.print("["+((HttpServletRequest)request).getRequestURI()+"]");
System.out.println(" 소요시간="+(System.currentTimeMillis()-startTime)+"ms");
}
@Override
public void destroy() {
// 정리 작업
}
}
참조
https://fastcampus.co.kr/dev_academy_nks
스프링의 정석 : 남궁성과 끝까지 간다 | 패스트캠퍼스
국비지원 조기 마감 신화, 베스트셀러 'JAVA의 정석'의 저자 남궁성의 Spring 강의입니다! 오픈톡방과 카페에서 평생 AS를 제공하며 완강과 취업까지 도와드립니다. 지금 할인가로 확인하세요!
fastcampus.co.kr
'3. Back-end > 3-2. Spring MVC - 남궁성' 카테고리의 다른 글
Spring MVC - [@GetMapping, @PostMapping] (0) | 2022.12.14 |
---|---|
Spring MVC - [ @RequestParam / @ModelAttribute ] (0) | 2022.11.13 |
Spring MVC - [ URL패턴 / EL표현식 ] (0) | 2022.11.07 |
Spring MVC - [ 유효 범위(Scope)와 속성(attribute) ] (0) | 2022.11.04 |
Spring MVC - [ 서블릿과 JSP ] (0) | 2022.10.29 |