본문 바로가기

서버/Servlet-JSP
[Servlet-JSP] URL 패턴, FrontController 패턴, Command 패턴

// URL 패턴

1. 디렉터리 패턴(서블릿 매핑)
    - 디렉터리 형태로 서버의 해당 컴포넌트를 찾아서 실행하는 구조
    ~ http://localhost:8080/jsp_pattern/Pattern     > /Pattern 서블릿

2. 확장자 패턴
    - 확장자 형태로 서버의 해당 컴포넌트를 찾아서 실행하는 구조
    ~ http://localhost:8080/jsp_pattern/Pattern/pattern.do     > *.do 서블릿


// FrontController 패턴

- 클라이언트의 다양한 요청을 한 곳으로 집중시켜 개발 및 유지보수 효율성을 극대화해준다.


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	<a href="/pattern/insert.do">insert</a>
	<a href="/pattern/update.do">update</a>
	<a href="/pattern/select.do">select</a>
	<a href="/pattern/delete.do">delete</a>

</body>
</html>

 

package com.jsp.pattern;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("*.do")
public class FrontController extends HttpServlet {
    
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        actionDo(req, resp);
    }

    private void actionDo(HttpServletRequest req, HttpServletResponse resp) {
        
        
        String path = req.getRequestURI().substring(9);
        
        if(path.equals("insert.do")) {
            insert();
        } else if(path.equals("update.do")) {
            update();
        } else if(path.equals("select.do")) {
            select();
        } else if(path.equals("delete.do")) {
            delete();
        }
        
    }
    
}

// Command 패턴

- 클라이언트로부터 받은 요청들에 대해서 서블릿이 작업을 직접 처리하지 않고 해당 클래스가 처리하도록 한다.

 

'서버 > Servlet-JSP' 카테고리의 다른 글

MVC, JSP model  (0) 2023.05.08
[Servlet-JSP] 포워딩(Forwarding)  (0) 2023.02.05
[Servlet-JSP] EL(Expression Language)  (0) 2023.01.23
[Servlet-JSP] 파일 업로드, 다운로드  (0) 2023.01.20
[Servlet-JSP] DAO, DTO, lombok  (0) 2023.01.20