'개발/스프링 웹 MVC'에 해당되는 글 1건

  1. 2021.06.06 #1 서블릿 리스너와 필터

서블릿 리스너

  •  웹 어플리케이션에서 발생하는 주요 이벤트를 감지하고 각 이벤트에 특별한 작업이 필요한 경우에 사용할수 있다.

      - 서블릿 컨텍스트 수준의 이벤트

         - 컨텍스트 라이프사이클 이벤트

         - 컨텍스트 애트리뷰트 변경 이벤트

      - 세션 수준의 이벤트

         - 세션 라이프사이클 이벤트

         - 세션 애트리뷰트 변경 이벤트

 

서블릿 필터

- 들어온 요청을 서블릿으로 보내고, 또 서블릿이 작성한 응답을 클라이언트로 보내기 전에 특별한 처리가 필요한 경우에 사용할 수 있다.

- 체인 형태의 구조

시나리오.

1. tomcat start

2. localhost:8080

3. localhost:8080/hello

4. localhost:8080/hello -> init 없이 바로 doGet 호출됨

5. tomcat stop

5. Listener init -> Filter init -> Servelet init -> Servelet destory -> Filter destory -> Listener destory 확인

 

1
2
3
4
5
6
7
8
9
10
11
12
13
Connected to server
Context Initialized
Filter init
Servlet init
Filter
doGet
Filter
doGet
Servlet destroy
Filter Destroy
context destroyed
Disconnected from server
 
cs

 

느낀점

대학생때 

https://book.naver.com/bookdb/book_detail.nhn?bid=7082715 

 

쉽게 따라하는 자바웹개발

자바 웹 개발에 처음 뛰어들어 어려움을 느끼는 개발자가 쉽게 학습할 수 있도록 직접 만든 프로젝트로 설명을 한다. 이를 분석하고, 여러 기능을 추가하면서 이클립스, 메이븐, 스프링, 아이바

book.naver.com

이 책을 본적이 있었다.  Servlet이 이때는 무엇인지 모르고 그냥 책에 나온대로 따라했는데, 저런 과정을 쉽게해주는 Spring 프레임워크를 알게되었고, 정확하게 Servlet이 어떤거고, Servlet 컨테이너인 톰캣의 개념을 좀더 명확하게 알게되었다. xml의 설정들을 보고있으니, Spring Boot의 yml이나 properties의 편리함을 느꼈고, @Configure 를 통해서 java에서도 해당 설정들을 할수있는 세상에서 개발을 하는 환경에 감사함을 느꼈다.

 

Servlet쪽을 보니, 그럼 톰캣에서는 어떤 방식으로 해당 작업들을 처리하는지 내부가 궁금해졌고, 

https://book.naver.com/bookdb/book_detail.nhn?bid=1510071 

 

톰캣 최종분석

톰캣의 사용방법만을 간단히 설명한 여느 책들과는 달리, 톰캣의 작동원리를 체계적으로 설명하는 책이다. 서블릿/JSP 규약의 사실상의 표준 참조 구현체이자 오픈소스 제품인 톰캣 자체를 교재

book.naver.com

이 책에 대해서 사놓고 앞에만 조금 봤는데, 학습에 대해서 동기부여가 생겼다.

 

이전에는 그냥 따라하면서 강의를 보았는데, 개발에도 메타인지(안다와 알지 못한다)가 생겨, 하나둘씩 찾아보면서 다시 강의를 보니 기초강의라고 생각했던 강의가 사실 기본강의였다. 기본은 항상 중요하다.

 

위에 배운 filter, listner, servlet을 통해서 뷰로 뿌려줄때 어떤 뷰를 어떻게 찾아가서 보여줄것인가? 서버가 뜰때 db와의 연결을 언제맺고 언제 끊을 것인가?, 세션관리는 어떻게 할것인가? i18n의 원리는 무엇인가? 단순히 controller가 클라이언트의 요청을 받아서 db조회해서 view로 뿌려주는게 아닌 내부의 원리를 공부하니 재미있다.

 

수학을 공부하면서도 많이느꼈지만, 현재에는 상식 혹은 간단하다고 생각하는 사실들이 수많은 위인들이 삽질한 결과이고 우리는 이것을 당연하게 받아서 쓰지만, 십몇년 사이에 발전하는 속도를 보면 그루분들이 대단하다고 느꼈다.

 

https://github.com/JKKorea/jkStudy/tree/master/java-servlet-demo

 

JKKorea/jkStudy

Contribute to JKKorea/jkStudy development by creating an account on GitHub.

github.com

 

참조

백기선님의 inflearn 강의(https://www.inflearn.com/course/%EC%9B%B9-mvc)

Posted by 커다란꼬꼬마
이전버튼 1 이전버튼

블로그 이미지
커다란꼬꼬마

공지사항

Yesterday
Today
Total

달력

 « |  » 2024.5
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

최근에 올라온 글

최근에 달린 댓글

글 보관함