// 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 |