- 디렉터리 패턴 : 디렉터리 형태로 서버의 해당 컴포넌트를 찾아서 실행하는 구조.
http://localhost:8181/jsp_21_1_ex1_memberex/Hello -> /Hello 서블릿
- 확장자 패턴 : 확장자 형태로 서버의 해당 컴포넌트를 찾아서 실행하는 구조.
http://localhost:8181/jsp_21_1_ex1_memberex/hello.do -> *.do 서블릿
- 클라이언트의 다양한 요청을 한 곳으로 집중시켜, 개발 및 유지보수에 효율성을 극대화.
요청1 ---|
요청2 ---|---> 모든 요청을 처리하는 서블릿 ---> DAO
요청3 ---|
<a href="insert.do2">insert</a>
<hr />
<a href="http://localhost:8181<%=request.getContextPath()%>/update.do2">update</a>
<hr />
<a href="http://localhost:8181/loginForm/select.do2">select</a>
<hr />
<a href="${pageContext.request.contextPath}/delete.do2">delete</a>
private void actionDo(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("actionDo");
String uri = request.getRequestURI();
System.out.println("uri : " + uri);
String conPath = request.getContextPath();
System.out.println("conPath : " + conPath);
String command = uri.substring(conPath.length());
System.out.println("command : " + command);
if(command.equals("/insert.do")){
System.out.println("insert");
System.out.println("----------------");
}else if(command.equals("/update.do")){
System.out.println("update");
System.out.println("----------------");
}else if(command.equals("/select.do")){
System.out.println("select");
System.out.println("----------------");
}else if(command.equals("/delete.do")){
System.out.println("delete");
System.out.println("----------------");
}
}
- 클라이언트로부터 받은 요청들에 대해서, 서블릿이 작업을 직접 처리하지 않고, 해당 클래스가 처리하도록 한다.
interface
요청1 ---| ---> | 요청1 처리 클래스 |
요청2 ---|---> 모든 요청을 직접 처리하지 않는 서블릿 ---> | 요청2 처리 클래스 | ---> DAO
요청3 ---| ---> | 요청3 처리 클래스 |