Servlet(2)

고규빈·2022년 5월 18일
0

서블릿 초기화 파라미터 : ServletConfig

  • 특정 Servlet이 생성될 때 초기에 필요한 데이터들이 있습니다. 예를 들어 특정 경로 및 아이디 정보 등 입니다.
    이러한 데이터들을 초기화 파라미터라고 하며, web.xml에 기술하고 Servlet파일에서는 ServletConfig 클래스를 이용해서 접근(사용)합니다.
    또한 초기화 파라미터를 web.xml이 아닌 Servlet파일에 직접 기술하는 방법도 있습니다.

  • web.xml파일에 초기화 파라미터(Initialization Parameter) 기술

  • Servlet파일에 초기화 파라미터(Initialization Parameter) 기술

데이터 공유 : ServletContext

  • 여러 Servlet에서 특정 데이터를 공유해야 할 경우 context parameter를 이용해서 web.xml에 데이터를 기술하고, Servlet에서 공유하면서 사용 할 수 있습니다.

  • web.xml파일에 context parameter 기술

웹 어플리케이션 감시 : ServletContextListene

  • 어플리케이션의 생명주기(LifeCycle)를 감시하는 리스너(Listener)가 있습니다. 바로 ServletContextListener 입니다.
    리스너의 해당 메소드가 웹 어플리케이션의 시작과 종료 시 호출 됩니다.(contextInitialized(), contextDestroyed())

  • web.xml파일에 리스너 클래스 기술

  • 리스너 클래스에 기술(@WebListener)

서블릿 실행 전 필터 : Filter

  • 클라이언트로부터 요청이 들어왔을 때 서블릿을 실행하기 전에 우선적으로 실행되는 필터링 기능을 제공합니다.

  • web.xml에 filter 태그 기술

서블릿 멤버변수

  • 서블릿은 최초사용자가 접속 했을 때 처음 객체를 생성 후 멀티 스레드로 동작하므로 해당 서블릿의 멤버변수는 다음 사용자가 같은 서블릿을 호출할 경우 값을 공유한다.

웹 데이터 유지 기술

  • 웹은 http 프로토콜을 사용하여 통신하고 http 프로토콜은 무연결성 프로토콜이다.
    그러므로 페이지에서 새로운 페이지로 넘어갈 때 값이 유지 되지 않는다.
    이러한 특징을 보안하기 위해 웹 데이터를 유지하는 기술이 있다.

  • ServletContext
    Server에 저장되어 웹 어플리케이션이 종료될때까지 유지되는 기술

  • Cookie
    Client에 저장되어 요청할 때 저장된 값을 가지고 유지되는 기술

  • Session
    Server에 저장되어 Client가 요청할 때 Server에 저장된 값을 제공하여 유
    지되는 기술

  • HttpServletRequest
    페이지에서만 유지되지만 요청재지정이라는 기술을 통해 다른 페이지로 값을 넘겨 유지되는 기술

RequestDispatcher 클래스

  • 서블릿 또는 JSP에서 요청을 받은 후 다른 페이지로 요청을 위임 할 수 있습니다. 위임 방법에는 2개의 클래스를 이용 합니다.
    하나는 RequestDispatcher 클래스 이고, 또하나는 HttpServletResponse 클래스 입니다.
    RequestDispatcher클래스의 경우 요청 받은 요청 객체(request)를 위임하는 페이지에 동일하게 전달 할 수 있습니다.
    클라이언트가 처음에 요청한 URL을 그대로 가지고 위임받은 페이지로 넘어가게 됩니다.

*사용방법

  • forward 메소드를 사용하여 지정된 위치로 요청과 응답을 실어서 페이지 이동
  • include 메소드를 사용하여 지정된 위치로 요청과 응답을 실어서 현재 페이지를 포함하여 이동

HttpServletResponse 클래스

  • RequestDispatcher 클래스와 동일하게 요청을 위임하는 클래스 입니다.
    RequestDispatcher 클래스와 차이점은 요청 받은 요청객체를 위임 받은 페이지에 전달 하는 것이 아닌, 새로운 요청객체를 생성 합니다.
profile
안녕하세요

0개의 댓글