Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 트러블슈팅
- 데이터구조
- 후기
- Spring
- redis
- backend
- error
- 자바
- 자바백엔드
- AWS
- EC2
- 플러터
- 부트캠프
- nGrinder
- 로드밸런서
- 에프랩
- github
- 성능테스트
- FLAB
- java
- 알고리즘
- 멘토링
- MySQL
- Flutter
- 레디스
- 백엔드
- 코딩테스트
- grafana
- F-Lab
- 도커
Archives
- Today
- Total
민스씨의 일취일장
LogT | Java Spring의 서블릿과 JSP에 대해 알게된 모든 내용과 고민들 본문
Programming Language & Framework/JAVA & Spring
LogT | Java Spring의 서블릿과 JSP에 대해 알게된 모든 내용과 고민들
읻민스 2023. 1. 10. 22:56반응형
Java Spring의 JSP와 Servlet에 대해 공부한 내용을 시간순으로 기록하고 있다.
2022년 1월 10일
Servlet
- JSP와 Servlet은 거의 같은 존재이다. 이 Servlet을 발전시킨 것이 Spring이다.
- @WebServlet = @Controller + @RequestMapping
JSP (Java Server Pages)
- HTML에 작성한 Java 코드를 작성한 것이다.
- <% %>를 사용해 HTML 코드와 구별된다.
- <%= %>를 사용해 로컬변수(local variable)을 호출할 수 있다.
- JSP는 요청 시 WebServlet 객체로 변환된다. 이렇게 요청 시에 변환 및 초기화 되는 것을 lazy-init이라고 부른다. (cf. 스프링은 객체를 생성 초기화 해놓고 요청을 기다리는데 이를 early-init이라 부른다.) [@@@JSP 호출과정을 참고!]
- JSP로 작성된 HTML코드들은 Servlet 객체에서 println 또는 write 함수로 표현된다.
out.println("<html>");
out.write("</html>");
JSP의 기본객체
JSP가 Servlet 객체로 변환되면서 자동으로 주입되는 객체(service 메서드의 지역변수)들이 있다. 그런 객체들은 JSP에 실제 코드상에 존재하진 않지만 마치 import된 것처럼 사용할 수 있다. 이런 객체를 JSP의 기본객체라고 부른다.
HttpServletRequest | request |
HttpServletResponse | response |
HttpSession | session |
ServletContext | application |
ServletConfig | config |
Object | page |
PageContext | pageContext |
JspWriter | out |
Throwable | exception |
URL Mapping & Servlet
URL Pattern
요청된 URL은 우선순위에 따라서 매핑이 이루어진다.
우선수위. 종류 | URL Pattern |
1. exact mapping | 정확히 일치하는 URL |
2. path mapping | 일치하는 path (ex. /java/*) |
3. extension mapping | 일치하는 어미 (확장자) (ex. *.do) |
4. default mapping | / |
Servlet의 children과 servletMapping
ServeltContext내에는 servlet들을 참조하는 children이라는 Map과 url pattern과 servlet을 매핑하는 servletMapping이라는 Map객체가 있다. 요청시 servletMapping에서 URL Pattern에 맞는 Servlet(Key값)을 찾으면 children의 참조값을 따라가 Servlet이 실행된다. 맞는 URL 패턴이 없다면 default mapping으로 DefaultServlet이 실행된다.
Spring의 DispatcherServlet
Servlet을 발전시켜 만들어진 Spring도 위와같은 매핑을 따른다. 하지만 가장 큰 차이는 Servlet에서 매핑하는 URL패턴은 항상 default mapping이다. 이 때 실행되는 DefaultServlet을 스프링에서는 DispatcherServlet이라고 한다. 이 DispatcherServlet내에 WebServlet에 존재했던 URL Mapping Map이 존재한다.
728x90
반응형
'Programming Language & Framework > JAVA & Spring' 카테고리의 다른 글
LogT | Java Spring의 쿠키와 세션에 대해 알게 된 모든 내용과 고민들 (0) | 2023.01.11 |
---|---|
LogT | Java Spring의 Application내의 데이터 저장소인 내장객체의 유효범위와 속성에 대해 알게된 모든 내용과 고민들 (0) | 2023.01.10 |
LogT | Java Spring의 MVC 패턴에 대해 알게된 모든 내용과 고민들 (0) | 2023.01.09 |
LogT | Java Spring의 Application Context에 대해 알게된 모든 내용과 고민들 (0) | 2023.01.06 |
LogT | Java Spring의 Bean에 대해 알게된 모든 내용과 고민들 (0) | 2023.01.05 |