@WebServlet
서블릿 객체를 자동을 생성
<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>
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();
}
}
}
디자인 패턴의 효과와
Front Controller
: Controller의 공통기능을 처리, Client와의 접전을 줄인다("Low Coupling")
: 공통기능(refresh, redirect, JSP실행, 오류처리 등)
Facade(Front) 디자인 패턴을 적용
: 객체간의 복잡한 작업 과정을 캡슐화함으로써 코딩이 간결해진다.
사용객체와의 접점을 줄임으로써 유지보수가 쉬워진다.
<<Front Controller>>DispathcerServlet
프론트 컨트롤러에서