- 1007

Yung·2022년 10월 7일
0

Java223bitcamp

목록 보기
17/26

서블릿을 서버에 등록하는 방법

서블릿 소스코드가 있다면

  1. 애노테이션을 붙이기
    @WebServlet

서블릿 소스 코드가 없다면

  1. DD파일에 설정(web.xml)
서블릿 객체를 자동을 생성
	<servlet>
		<servlet-name>DispatcherServlet</servlet-name>
		<servlet-class>com.bitcamp.servlet.DispathcerServlet</servlet-class>
	</servlet>

서블릿객체를 url주소와 매핑
	<servlet-mapping>
		<servlet-name>DispatcherServlet</servlet-name>
		<url-pattern>/serviec/*</url-pattern>
	</servlet-mapping>
  1. 자바코드로 직접 서블릿 객체 등록
ServletContext ctx = sce.getServletContext();
MyServlet servlet = new MyServlet();
Dynamic config = ctx.addServlet(servlet);
config.addMapping("/hello");
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletRegistration.Dynamic;
import javax.servlet.annotation.WebListener;
import com.bitcamp.servlet.DispathcerServlet;

// 웹 애플리케이션이 시작되었을 때 공유할 자원을 준비시키거나 해제하는 일을 한다.
@WebListener
public class ContextLoaderListener1 implements ServletContextListener {
  @Override
  public void contextInitialized(ServletContextEvent sce) {
    System.out.println("공유 자원을 준비 중!!");

    try {
      ServletContext ctx = sce.getServletContext();

      // 자바 코드로 서블릿 객체를 직접 생성하여 서버에 등록하기
      DispathcerServlet servlet = new DispathcerServlet();
      Dynamic config = ctx.addServlet("DispathcerServlet", servlet);
      config.addMapping("/service/*");
      System.out.println("자바 코드로 서블릿 객체를 직접 생성");

    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

077. Front Controller 도입 전

  • 디자인 패턴의 효과와

  • Front Controller
    : Controller의 공통기능을 처리, Client와의 접전을 줄인다("Low Coupling")
    : 공통기능(refresh, redirect, JSP실행, 오류처리 등)

  • Facade(Front) 디자인 패턴을 적용
    : 객체간의 복잡한 작업 과정을 캡슐화함으로써 코딩이 간결해진다.
    사용객체와의 접점을 줄임으로써 유지보수가 쉬워진다.

077. Front Controller 도입 후 : Achitecture

<<Front Controller>>DispathcerServlet

077. Front Controller 디자인 패턴 도입하기

1단계 - 프론트 컨트롤러 역할을 수행할 클래스를 만든다.

  • com.bitcamp.servlet.DispatcherServlet 클래스 생성.

2단계 - 기존의 컨트롤러 페이지 컨트롤러로 만든다.

  • com.bitcamp.

078. 페이지 컨트롤러를 POJO로 만들기

프론트 컨트롤러에서

1단계 - 페이지 컨트롤러의 사용 규칙을 정의한다.

  • com.bitcamp.servlet.Controller 인터페이스 생성

2단계 - Controller 규칙에 따라 페이지 컨트롤러를 변경한다.

  • com.bitcamp.board.controller.XxxController 클래스 변경

3단계 - ContextLoaderListener 에서 페이지 컨트롤러를 생성한다.

  • com.bitcamp.board.listener.COntextLoaderListener 클래스 변경

4단계 - 클라이언트 요청이 들어 왔을 때 Controller 규칙에 따라 페이지 컨트롤러를 실행한다.

  • com.bitcamp.servlet.DispatcherServlet 클래스 변경

0개의 댓글