1. URL 패턴
@WebServlet으로 서블릿을 URL에 매핑할 때 URL패턴을 사용한다. (스프링은 @RequestMapping)
이전에 서블릿은 lazy-init, 즉 늦은 초기화라고 했다. URL을 매핑할 때 loadOnStartup 옵션을 주면 서블릿을 호출하기 전에 미리 초기화를 해놓는다. 여기에 주는 값 (ex. loadOnStartup=1) 이 우선순위이다.
// 한 개일 때
@WebServlet("/hello")
// 여러개일 때
@WebServlet(urlPatterns={"/hello","/hello/*"},loadOnStartup=1)
아래 종류는 우선순위 순으로 나열되어 있다.
종류 | URL Pattern | 매칭 URL |
1.exact mapping - 정확히 일치 |
/login/hello.do | http://localhost/ch2/login/hello.do |
2.path mapping - 경로 매핑 |
/login/* | http://localhost/ch2/login/ http://localhost/ch2/login/hello http://localhost/ch2/login/hello.do http://localhost/ch2/login/test/ |
3.extension mapping - 확장자 매핑 |
*.do | http://localhostch2/hi.do http://localhost/ch2/login/hello.do |
4.default mapping - 디폴트 |
/ | http://localhost/ch2/ http://localhost/ch2/hello.do http://localhost/ch2/login/ http://localhost/ch2/login/hello http://localhost/ch2/login/hello.do |
2. EL(Expression Language)
EL표현식은 ${ } 과 같이 사용하며, 참고로 lv는 그냥 사용할 수 없어서 아래 사진과 같이 영역 객체에 저장 후 사용할수 있다.
<%=person.getCar().getColor()%>
// EL표현식 사용
${person.car.color}
그리고 EL표현식을 사용할 땐 어떤 영역에서 가져오는지 (ex. requestScope, pageScope) 명시해주어야 하지만, 생략했을 경우에는 영역이 넓은 순서대로 pageContext -> request -> session -> application 검토 후 가져와서 사용한다.
EL은 값이 없을 경우 null이 아니라 공백으로 표시하며, 형변환이 자동으로 일어나서 ${"1"+1} 과 같이 썼을 경우 "11"이 아니라 2가 출력된다.
아래의 세 줄 코드는 모두 같은 의미이다. request는 lv이고, EL에서는 lv를 사용할 수 없다고 했으므로 pageContext.request로 불러와야한다.
참조
https://fastcampus.co.kr/dev_academy_nks
'3. Back-end > 3-2. Spring MVC - 남궁성' 카테고리의 다른 글
Spring MVC - [ @RequestParam / @ModelAttribute ] (0) | 2022.11.13 |
---|---|
Spring MVC - [ JSTL / Filter ] (0) | 2022.11.07 |
Spring MVC - [ 유효 범위(Scope)와 속성(attribute) ] (0) | 2022.11.04 |
Spring MVC - [ 서블릿과 JSP ] (0) | 2022.10.29 |
Spring MVC - [ 바이너리 파일 ] (0) | 2022.10.18 |