javax.Servlet
Servlet Interface
: HTTP 클라이언트 요청이 들어왔을때 그 요청을 처리하는 객체에 대해 서블릿 컨테이너가 호출하는 메서드 규칙
destroy() : void
getServletConfig() : ServletConfig
getServletInfo() : String
init(ServletConfig) : void
service(ServletRequest, ServletResponse) : void
서블릿 생명주기와(life cycle)관련된 메서드
init()
: 서블릿 객체가 작업할 때 사용할 자원을 준비시키는 코드를 둔다.
service()
: 요청을 처리하는 코드를 둔다.
destory()
: init()에서 준비했던 자원을 해제시키는 코드를 둔다.
getServletInfo()
: 서버관리 화면을 실행할때 호출한다.
getServletConfig()
: 서블릿과 관련된 배치 정보를 조회할때 사용한다.
Servlet Container(Tomcat Server)
에 요청이 들어오면init()
도 한번만 호출된다. if(not exist) {
서블릿 객체 생성 -> init()
}
Service()
를 호출한다.:WelcomeServlet<<Servlet>>
호출한다.destory()
를 호출한다.String s1 = new String("Hello")
s1:String <- UML 클래스 다이어그램 객체 표기법
서블릿 컨테이너
인사관리 서블릿
서블릿 컨테이너
웹 애플리케이션
서블릿
필터
리스너
https://devlog-wjdrbs96.tistory.com/268
https://nesoy.github.io/articles/2018-04/Java-Serialize
일반 App 실행 -> JVM -classpath *.jar; ... 파일 로딩
META-INF/Services/java.sql.Driver 파일에 적혀있는 클래스를 로딩한다.
-> service provider 실행 정책에 따라
즉 JDBC 들아ㅣ버 클래스를 자동으로 로딩한다.
service provider
https://kgvovc.tistory.com/38
UML Activity 다이어그램
로그인 한 동안 내내 사용할 데이터라면 httpsession
사용자의 상관없이 모든 서블릿들이 공유할 자원이라면 ServletContext에 담아라
ServletContext
: DOA, Service, Connection 등
HttpSession
: 로그인 사용자 정보, 여러 페이지에 걸쳐서 입력하는 데이터
ServletRequest
: 요청을 처리하는 동안 서블릿 끼리 공유할 데이터
JspContext
: JSP를 실행하는 동안 사용할 값