웹 복습(3)

넙데데맨·2022년 5월 23일
0

포워드 기능

하나의 서블릿에서 다른 서블릿, JSP와 연동하는 방법

  • 요청에 대한 추가 작업 다른 서블릿에게 수행시킴
  • 요청에 포함된 정보를 공유
  • 요청에 정보를 포함시켜 다른 서블릿에 전달
  • 모델2에서는 JSP로 데이터 전달하는 데 사용

Servlet에서 포워드

redirect

  • 웹 브라우저에 재요청하는 방식
  • HttpServletResponse 객체의 sendRedirect() 메소드 사용

Refresh

  • 웹 브라우저에 재요청하는 방식
  • HttpServletResponse 객체의 addHeader() 메소드 사용

location

  • 자바스크립트의 lcoation.href 속성 사용
  • 자바스크립트에서 재요청

dispatch

  • 일반적 포워딩 기능 지칭
  • 서블릿이 직접 요청
  • RequestDispatcher 클래스의 forward() 메소드 사용

dispatcher 방법을 제외한 방법은 서블릿이 브라우저를 거치는 방법이고 dispatcher 방법은 서블릿이 직접 서블릿에게 요청한다.

바인딩

다른 서블릿, JSP로 대량의 데이터를 공유, 전달할 때 사용하는 기능
=> 포워딩 시 GET 방식으로 데이터를 전달할 수 있지만 대량의 데이터를 전달할 때 GET 방식으로 전달하는 것에는 한계가 있음

HttpServletRequestsetAttribute getAttribute 사용해 바인딩하고 바인딩된 자원을 읽음

포워딩 방식에 따른 바인딩

redirect, refresh, location.href 방식은 웹 브라우저를 거쳐서 다른 페이지로 요청하는 것이기 때문에 데이터가 보존되지 않는다.
따라서 데이터 바인딩을 해야할 떄는 dispatch 방식을 사용해야한다.

ServletContext, ServletConfig

ServletContext

톰캣 컨테이너 실행 시 웹 애플리케이션마다 하나의 ServletContext 객체를 생성되고 종료 시 소멸된다.

특징

  • javax.servlet.ServletContext
  • 서블릿과 컨테이너 간 연동을 위해 사용
  • 서블릿끼리 자원(데이터) 공유 시 사용

기능

  • 서블릿에서 파일 접근
  • 자원 바인딩
  • 로그 파일
  • 컨텍스트에서 제공하는 설정 정보 제공

사용

ServletContext 객체에 접근 후 setAttribute getAttribute 메소드를 통해 바인딩하면 다른 클래스에서 ServletContext에 접근 시 바인딩된 데이터에 접근이 가능하다.

사용 예

모든 페이지에서 공통으로 사용하는 부분에 web.xml과 사용해서 공통적으로 화면에 보이게할 수 있다.

ServletConfig

서블릿 확장 API로 GenericServlet 클래스가 구현
각 서블릿에 대해서 ServletConfig 객체가 생성되며

기능

  • ServletContext 객체를 얻는 기능
  • 서블릿에 대한 초기화 작업 기능
profile
차근차근

0개의 댓글