📌 서블릿의 가장 주된 핵심은?
서블릿의 가장 중요한 역할은 "클라이언트의 HTTP 요청을 처리하고, 적절한 응답을 생성하는 것"이야.
즉, HTTP 전송 방식(요청 방식)에 따라 다르게 처리하는 것이 서블릿의 핵심 기능 중 하나야.
✅ 1. HTTP 요청 방식(전송 방식)에 따른 처리
웹에서 클라이언트(브라우저)가 서버로 데이터를 요청할 때 HTTP 요청 방식을 사용해.
서블릿에서는 요청 방식에 따라 doGet()
, doPost()
등 적절한 메서드를 실행한다.
HTTP 메서드 | 설명 | 서블릿에서 실행되는 메서드 |
---|---|---|
GET | 데이터를 조회하는 요청 (브라우저 주소창, 링크 클릭) | doGet() |
POST | 데이터를 전송하는 요청 (로그인, 회원가입 등) | doPost() |
PUT | 기존 데이터를 수정하는 요청 | doPut() |
DELETE | 데이터를 삭제하는 요청 | doDelete() |
✔ 서블릿은 이 요청 방식에 따라 실행되는 메서드가 다름
✔ 예를 들어, 로그인 폼을 제출하면 POST 요청 → doPost()
실행
✔ URL을 입력해서 접속하면 GET 요청 → doGet()
실행
✅ 2. 서블릿의 핵심 기능 (HTTP 요청 처리 포함)
HTTP 요청 방식에 따른 처리가 가장 중요한 기능 중 하나지만,
서블릿은 단순히 요청을 구분하는 것 이상으로 다양한 핵심 기능을 가지고 있어.
① 클라이언트 요청 데이터 처리 (request.getParameter()
)
✔ 클라이언트가 보낸 데이터를 읽어오는 기능
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
String username = request.getParameter("username"); // 입력한 아이디 가져오기
String password = request.getParameter("password"); // 입력한 비밀번호 가져오기
response.getWriter().write("Hello, " + username);
}
}
✔ request.getParameter("name")
→ 폼 데이터를 가져오는 메서드
② 응답 처리 (response.getWriter().write()
)
✔ 서버에서 HTML, JSON, 텍스트 등의 응답을 생성하는 기능
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write("<h1>로그인 성공!</h1>");
✔ response.setContentType("text/html;charset=UTF-8");
→ 응답 형식을 HTML로 지정
✔ response.getWriter().write("내용")
→ 클라이언트에게 응답 전송
③ 비즈니스 로직 처리 (DB 연동)
✔ 서블릿에서 DB를 조회하고 가공하여 클라이언트에게 전달하는 기능
User user = userDao.getUserByUsername(username);
if (user != null && user.getPassword().equals(password)) {
response.getWriter().write("로그인 성공");
} else {
response.getWriter().write("로그인 실패");
}
④ JSP로 데이터 전달 (RequestDispatcher.forward()
)
✔ 서블릿에서 데이터를 처리한 후 JSP로 전달하여 화면을 렌더링
request.setAttribute("username", username);
RequestDispatcher dispatcher = request.getRequestDispatcher("welcome.jsp");
dispatcher.forward(request, response);
✔ request.setAttribute("key", value);
→ JSP로 데이터 전달
✔ dispatcher.forward(request, response);
→ 서버 내부 이동 (URL 변경 없음)
⑤ 페이지 이동 (리다이렉트 sendRedirect()
)
✔ 로그인 성공 후 새로운 페이지로 이동
response.sendRedirect("home.jsp");
✔ response.sendRedirect("url")
→ 클라이언트가 새로운 요청을 하도록 리다이렉트 (URL 변경됨)
✅ 3. 결론
✔ HTTP 요청 방식에 따른 처리 (doGet()
, doPost()
등)는 서블릿의 핵심 기능 중 하나!
✔ 하지만, 서블릿의 주요 역할은 "웹 서버에서 동적인 요청을 처리하는 것"
✔ 즉, 요청을 분석하고 → 데이터 처리하고 → 응답을 생성하는 것이 서블릿의 핵심!
✔ 서블릿을 활용하면 DB 연동, 세션 관리, JSP와 협력하여 동적인 웹 애플리케이션을 만들 수 있음.
🚀 즉, "HTTP 요청을 처리하는 것"이 서블릿의 핵심 역할이지만, 그 자체가 전부는 아니다!
비즈니스 로직 처리, 데이터 가공, JSP 연동 등 웹 애플리케이션의 모든 기능을 담당하는 것이 서블릿의 중요한 역할! 🚀
✅ 서블릿 사용 방법 - 전체적인 개념 정리
서블릿을 사용하는 과정은 "클라이언트 요청 → 서블릿 실행 → 비즈니스 로직 처리 → 응답 처리" 의 순서로 진행됩니다.
🛠 1. 서블릿의 기본 개념
✔ 서블릿(Servlet)은 클라이언트의 HTTP 요청을 처리하고, 응답을 생성하는 Java 클래스입니다.
✔ JSP는 화면을 렌더링하는 역할, 서블릿은 비즈니스 로직을 처리하는 역할을 합니다.
✔ 서블릿을 특정 URL과 연결하려면 매핑 설정이 필요합니다.
🛠 2. 서블릿 사용 방법 (순서)
1️⃣ 클라이언트가 특정 URL 요청
✔ 클라이언트가 브라우저에서 특정 URL(http://localhost:8080/hello
)을 요청하면, 서블릿이 실행됩니다.
✔ 서블릿 매핑 방식(@WebServlet
, web.xml
)을 통해 서블릿이 실행됨.
2️⃣ 서블릿이 실행되고 요청 방식(HTTP Method: GET, POST)에 따라 메서드 실행
✔ 요청이 들어오면 서블릿 컨테이너가 doGet()
또는 doPost()
를 호출합니다.
✔ GET 요청 → doGet()
실행
✔ POST 요청 → doPost()
실행
🔹 예제 코드 (@WebServlet
을 사용한 서블릿)
@WebServlet(urlPatterns = "/hello")
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.getWriter().write("Hello, this is a GET request!");
}
}
✔ http://localhost:8080/hello
요청 시, "Hello, this is a GET request!"
출력됨.
3️⃣ 비즈니스 로직 수행
✔ 서블릿 내부에서 데이터 처리, 데이터베이스 연동, 검증, 세션 처리 등을 수행합니다.
🔹 예제 코드 (데이터베이스 연동)
@WebServlet("/user")
public class UserServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
UserDao dao = new UserDao();
User user = dao.getUserByUsername(username);
request.setAttribute("user", user); // JSP로 데이터 전달
RequestDispatcher dispatcher = request.getRequestDispatcher("userProfile.jsp");
dispatcher.forward(request, response); // JSP로 포워딩
}
}
✔ 폼에서 POST
요청을 보내면, 서블릿이 username
을 받아서 DB에서 사용자 정보를 조회함.
✔ 조회된 사용자 정보를 request.setAttribute("user", user)
로 저장하여 JSP에 전달.
✔ RequestDispatcher.forward()
를 사용하여 userProfile.jsp
로 이동.
4️⃣ 서블릿에서 JSP로 응답을 전달 (포워딩)
✔ 서블릿에서 JSP로 데이터를 전달하려면 RequestDispatcher.forward()
를 사용.
✔ 서버 내부에서 이동하며, 클라이언트(브라우저)의 URL은 변경되지 않음.
🔹 예제 코드 (서블릿 → JSP로 포워딩)
RequestDispatcher dispatcher = request.getRequestDispatcher("profile.jsp");
dispatcher.forward(request, response);
✔ 클라이언트는 여전히 /user
페이지에 머물러 있지만, 내부적으로 profile.jsp
가 실행됨.
5️⃣ 서블릿에서 새로운 페이지로 이동 (리다이렉트)
✔ 새로운 페이지로 이동하려면 response.sendRedirect("URL")
을 사용.
✔ 리다이렉트는 클라이언트에게 새로운 요청을 보내도록 지시하며, 브라우저의 URL이 변경됨.
🔹 예제 코드 (리다이렉트)
response.sendRedirect("login.jsp");
✔ 로그아웃 후 로그인 페이지로 이동하는 경우에 자주 사용됨.
🛠 3. 서블릿 사용 방법 정리
과정 | 설명 |
---|---|
1️⃣ 클라이언트 요청 | 특정 URL을 요청 (http://localhost:8080/hello ) |
2️⃣ 서블릿 실행 | URL 매핑을 통해 @WebServlet(urlPatterns = "/hello") 서블릿이 실행됨 |
3️⃣ 요청 방식 처리 | GET 요청이면 doGet() , POST 요청이면 doPost() 실행 |
4️⃣ 비즈니스 로직 수행 | DB 조회, 데이터 처리, 검증 등 |
5️⃣ JSP로 포워딩 (forward() ) |
데이터를 유지하면서 JSP로 이동 (URL 변경 없음) |
6️⃣ 리다이렉트 (sendRedirect() ) |
클라이언트가 새로운 요청을 보내도록 지시 (URL 변경됨) |
✅ 4. 결론
✔ 서블릿을 사용하면 클라이언트 요청을 처리하고, 비즈니스 로직을 수행한 후, JSP로 데이터를 전달하거나 리다이렉트할 수 있다.
✔ 포워딩(forward()
)은 데이터를 유지하면서 JSP로 이동하며, 리다이렉트(sendRedirect()
)는 클라이언트가 새 요청을 하도록 한다.
✔ 서블릿은 @WebServlet
, web.xml
등을 사용하여 특정 URL과 연결되며, 요청 방식(GET, POST)에 따라 다르게 처리된다.
🚀 이제 서블릿의 전체적인 사용 방법을 완벽하게 이해했을 거야! 😊
복습
📌 정리된 문장
URL 요청이 발생하면, 서블릿이 실행되며 특정 서블릿과 매핑되기 위해 다양한 매핑 방식(
urlPatterns
,urlMapping
,servletMapping
)이 사용된다.요청 방식(HTTP Method: GET, POST)에 따라 서블릿 내부에서
doGet()
또는doPost()
메서드가 실행될 수 있다.서블릿에서 다른 페이지(JSP)로 데이터를 전달하려면
RequestDispatcher.forward(request, response);
를 사용하며,
새로운 페이지로 이동하려면response.sendRedirect("URL");
을 사용한다.
📌 추가적인 설명 (좀 더 쉽게 이해하기 위한 구조)
1️⃣ URL 요청 발생
→ 서블릿 실행
→ 특정 서블릿과 연결 (urlPatterns
, urlMapping
, servletMapping
)
2️⃣ 전달 방식(GET, POST)에 따라 다르게 처리
→ doGet()
또는 doPost()
실행
3️⃣ 비즈니스 로직 수행
→ 데이터 처리(DB 연동, 계산, 검증 등)
4️⃣ 응답을 JSP로 전달 (포워딩)
→ RequestDispatcher.forward()
사용
5️⃣ 새로운 페이지로 이동 (리다이렉트)
→ response.sendRedirect()
사용
이제 완벽하게 정리되었어요! 🚀😊
📌 컨트롤러(Controller) vs 서블릿(Servlet) 용어 비교
웹 애플리케이션에서 "서블릿"과 "컨트롤러"는 자주 혼용되지만, 용어적으로 차이가 있어.
쉽게 말하면 "서블릿은 컨트롤러 역할을 수행할 수 있다."
즉, 모든 컨트롤러가 서블릿인 것은 아니지만, 서블릿은 컨트롤러로 사용될 수 있다.
✅ 1. 컨트롤러(Controller)란?
✔ MVC 패턴에서 Controller는 "요청을 처리하고, 적절한 응답을 반환하는 역할"
✔ 비즈니스 로직과 뷰(JSP)를 연결하는 중간다리 역할
✔ 클라이언트 요청을 받아서 적절한 서비스(Service) 호출 및 데이터 처리 후 JSP로 전달
✔ 컨트롤러는 꼭 서블릿일 필요는 없고, Spring MVC에서는 @Controller를 사용
🔹 컨트롤러 역할 예시 (MVC 패턴)
1️⃣ 클라이언트가 URL 요청 (`/user?id=1`)
2️⃣ 컨트롤러(UserController)가 요청을 받음
3️⃣ 비즈니스 로직을 처리 (DB에서 id=1인 사용자 조회)
4️⃣ 처리된 데이터를 JSP(view)에 전달
5️⃣ JSP에서 화면을 렌더링하여 응답 반환
✅ 2. 서블릿(Servlet)이란?
✔ 서블릿은 자바에서 HTTP 요청을 처리하는 클래스
✔ HTTP 요청을 받고, 적절한 응답을 생성하여 클라이언트에게 반환하는 역할
✔ doGet()
, doPost()
메서드를 통해 HTTP 요청을 처리
✔ Controller 역할을 수행할 수도 있지만, 원래는 더 범용적인 개념
🔹 서블릿의 역할 예시
1️⃣ 클라이언트가 "/login" 요청을 보냄
2️⃣ LoginServlet이 요청을 받아 doPost() 실행
3️⃣ 아이디, 비밀번호 검증 후 로그인 성공/실패 응답
4️⃣ 로그인 성공 시 sendRedirect("home.jsp")
🔹 서블릿 코드 예시 (Controller 역할 수행)
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
if ("admin".equals(username) && "1234".equals(password)) {
response.sendRedirect("home.jsp");
} else {
response.sendRedirect("login.jsp?error=true");
}
}
}
✔ LoginServlet
이 클라이언트의 요청을 받고 → 검증 후 → 응답을 반환
✔ 이 경우 서블릿이 컨트롤러 역할을 수행하는 것!
✅ 3. 컨트롤러와 서블릿의 차이점
비교 항목 | 컨트롤러 (Controller) | 서블릿 (Servlet) |
---|---|---|
개념 | 요청을 처리하고 응답을 반환하는 역할 (MVC 패턴의 C) | Java 웹 애플리케이션에서 HTTP 요청을 처리하는 클래스 |
사용 목적 | 비즈니스 로직을 분리하고, 적절한 뷰(JSP)로 데이터를 전달 | 클라이언트 요청을 받아서 직접 응답을 생성 |
MVC에서 위치 | Controller는 서블릿 또는 Spring Controller가 될 수 있음 | Servlet은 Controller 역할도 가능하지만, 단순한 요청 처리 클래스일 수도 있음 |
예제 | Spring @Controller , 서블릿 기반 MVC |
HttpServlet 상속 후 doGet() , doPost() 활용 |
주요 역할 | 요청을 받아 적절한 비즈니스 로직을 호출하고 뷰에 전달 | HTTP 요청을 직접 처리하고 응답 반환 |
✅ 4. 컨트롤러(Controller)와 서블릿(Servlet) 관계
✔ 서블릿은 HTTP 요청을 처리할 수 있는 Java 클래스 → 즉, 컨트롤러 역할을 수행할 수 있음
✔ 하지만, MVC 패턴에서는 서블릿이 아닌 "컨트롤러"라는 개념을 따로 둠
✔ Spring MVC에서는 @Controller
를 사용하여 서블릿을 직접 만들지 않고 더 쉽게 컨트롤러 역할을 수행
🔹 Spring MVC에서 컨트롤러 예시
@Controller
@RequestMapping("/user")
public class UserController {
@GetMapping("/profile")
public String getUserProfile(Model model) {
model.addAttribute("name", "John Doe");
return "userProfile"; // userProfile.jsp로 이동
}
}
✔ Spring에서는 서블릿을 직접 사용하지 않고, @Controller를 활용하여 MVC 패턴을 구현
✔ 서블릿처럼 doGet()
, doPost()
를 직접 사용하지 않아도 자동으로 HTTP 요청을 구분하여 처리
✅ 5. 결론 (한 줄 요약)
✔ 서블릿(Servlet)은 HTTP 요청을 처리하는 Java 클래스
✔ 컨트롤러(Controller)는 웹 애플리케이션에서 요청을 받아서 처리하는 역할
✔ 서블릿이 컨트롤러 역할을 할 수도 있지만, Spring MVC에서는 @Controller를 사용하여 서블릿 없이 컨트롤러를 구현할 수 있음
✔ 즉, 서블릿은 특정한 기술이고, 컨트롤러는 역할적인 개념
📌 서블릿의 가장 주된 핵심은?
서블릿의 가장 중요한 역할은 "클라이언트의 HTTP 요청을 처리하고, 적절한 응답을 생성하는 것"이야.
즉, HTTP 전송 방식(요청 방식)에 따라 다르게 처리하는 것이 서블릿의 핵심 기능 중 하나야.
✅ 1. HTTP 요청 방식(전송 방식)에 따른 처리
웹에서 클라이언트(브라우저)가 서버로 데이터를 요청할 때 HTTP 요청 방식을 사용해.
서블릿에서는 요청 방식에 따라 doGet()
, doPost()
등 적절한 메서드를 실행한다.
HTTP 메서드 | 설명 | 서블릿에서 실행되는 메서드 |
---|---|---|
GET | 데이터를 조회하는 요청 (브라우저 주소창, 링크 클릭) | doGet() |
POST | 데이터를 전송하는 요청 (로그인, 회원가입 등) | doPost() |
PUT | 기존 데이터를 수정하는 요청 | doPut() |
DELETE | 데이터를 삭제하는 요청 | doDelete() |
✔ 서블릿은 이 요청 방식에 따라 실행되는 메서드가 다름
✔ 예를 들어, 로그인 폼을 제출하면 POST 요청 → doPost()
실행
✔ URL을 입력해서 접속하면 GET 요청 → doGet()
실행
✅ 2. 서블릿의 핵심 기능 (HTTP 요청 처리 포함)
HTTP 요청 방식에 따른 처리가 가장 중요한 기능 중 하나지만,
서블릿은 단순히 요청을 구분하는 것 이상으로 다양한 핵심 기능을 가지고 있어.
① 클라이언트 요청 데이터 처리 (request.getParameter()
)
✔ 클라이언트가 보낸 데이터를 읽어오는 기능
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
String username = request.getParameter("username"); // 입력한 아이디 가져오기
String password = request.getParameter("password"); // 입력한 비밀번호 가져오기
response.getWriter().write("Hello, " + username);
}
}
✔ request.getParameter("name")
→ 폼 데이터를 가져오는 메서드
② 응답 처리 (response.getWriter().write()
)
✔ 서버에서 HTML, JSON, 텍스트 등의 응답을 생성하는 기능
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write("<h1>로그인 성공!</h1>");
✔ response.setContentType("text/html;charset=UTF-8");
→ 응답 형식을 HTML로 지정
✔ response.getWriter().write("내용")
→ 클라이언트에게 응답 전송
③ 비즈니스 로직 처리 (DB 연동)
✔ 서블릿에서 DB를 조회하고 가공하여 클라이언트에게 전달하는 기능
User user = userDao.getUserByUsername(username);
if (user != null && user.getPassword().equals(password)) {
response.getWriter().write("로그인 성공");
} else {
response.getWriter().write("로그인 실패");
}
④ JSP로 데이터 전달 (RequestDispatcher.forward()
)
✔ 서블릿에서 데이터를 처리한 후 JSP로 전달하여 화면을 렌더링
request.setAttribute("username", username);
RequestDispatcher dispatcher = request.getRequestDispatcher("welcome.jsp");
dispatcher.forward(request, response);
✔ request.setAttribute("key", value);
→ JSP로 데이터 전달
✔ dispatcher.forward(request, response);
→ 서버 내부 이동 (URL 변경 없음)
⑤ 페이지 이동 (리다이렉트 sendRedirect()
)
✔ 로그인 성공 후 새로운 페이지로 이동
response.sendRedirect("home.jsp");
✔ response.sendRedirect("url")
→ 클라이언트가 새로운 요청을 하도록 리다이렉트 (URL 변경됨)
✅ 3. 결론
✔ HTTP 요청 방식에 따른 처리 (doGet()
, doPost()
등)는 서블릿의 핵심 기능 중 하나!
✔ 하지만, 서블릿의 주요 역할은 "웹 서버에서 동적인 요청을 처리하는 것"
✔ 즉, 요청을 분석하고 → 데이터 처리하고 → 응답을 생성하는 것이 서블릿의 핵심!
✔ 서블릿을 활용하면 DB 연동, 세션 관리, JSP와 협력하여 동적인 웹 애플리케이션을 만들 수 있음.
🚀 즉, "HTTP 요청을 처리하는 것"이 서블릿의 핵심 역할이지만, 그 자체가 전부는 아니다!
비즈니스 로직 처리, 데이터 가공, JSP 연동 등 웹 애플리케이션의 모든 기능을 담당하는 것이 서블릿의 중요한 역할! 🚀
✅ 서블릿 사용 방법 - 전체적인 개념 정리
서블릿을 사용하는 과정은 "클라이언트 요청 → 서블릿 실행 → 비즈니스 로직 처리 → 응답 처리" 의 순서로 진행됩니다.
🛠 1. 서블릿의 기본 개념
✔ 서블릿(Servlet)은 클라이언트의 HTTP 요청을 처리하고, 응답을 생성하는 Java 클래스입니다.
✔ JSP는 화면을 렌더링하는 역할, 서블릿은 비즈니스 로직을 처리하는 역할을 합니다.
✔ 서블릿을 특정 URL과 연결하려면 매핑 설정이 필요합니다.
🛠 2. 서블릿 사용 방법 (순서)
1️⃣ 클라이언트가 특정 URL 요청
✔ 클라이언트가 브라우저에서 특정 URL(http://localhost:8080/hello
)을 요청하면, 서블릿이 실행됩니다.
✔ 서블릿 매핑 방식(@WebServlet
, web.xml
)을 통해 서블릿이 실행됨.
2️⃣ 서블릿이 실행되고 요청 방식(HTTP Method: GET, POST)에 따라 메서드 실행
✔ 요청이 들어오면 서블릿 컨테이너가 doGet()
또는 doPost()
를 호출합니다.
✔ GET 요청 → doGet()
실행
✔ POST 요청 → doPost()
실행
🔹 예제 코드 (@WebServlet
을 사용한 서블릿)
@WebServlet(urlPatterns = "/hello")
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.getWriter().write("Hello, this is a GET request!");
}
}
✔ http://localhost:8080/hello
요청 시, "Hello, this is a GET request!"
출력됨.
3️⃣ 비즈니스 로직 수행
✔ 서블릿 내부에서 데이터 처리, 데이터베이스 연동, 검증, 세션 처리 등을 수행합니다.
🔹 예제 코드 (데이터베이스 연동)
@WebServlet("/user")
public class UserServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
UserDao dao = new UserDao();
User user = dao.getUserByUsername(username);
request.setAttribute("user", user); // JSP로 데이터 전달
RequestDispatcher dispatcher = request.getRequestDispatcher("userProfile.jsp");
dispatcher.forward(request, response); // JSP로 포워딩
}
}
✔ 폼에서 POST
요청을 보내면, 서블릿이 username
을 받아서 DB에서 사용자 정보를 조회함.
✔ 조회된 사용자 정보를 request.setAttribute("user", user)
로 저장하여 JSP에 전달.
✔ RequestDispatcher.forward()
를 사용하여 userProfile.jsp
로 이동.
4️⃣ 서블릿에서 JSP로 응답을 전달 (포워딩)
✔ 서블릿에서 JSP로 데이터를 전달하려면 RequestDispatcher.forward()
를 사용.
✔ 서버 내부에서 이동하며, 클라이언트(브라우저)의 URL은 변경되지 않음.
🔹 예제 코드 (서블릿 → JSP로 포워딩)
RequestDispatcher dispatcher = request.getRequestDispatcher("profile.jsp");
dispatcher.forward(request, response);
✔ 클라이언트는 여전히 /user
페이지에 머물러 있지만, 내부적으로 profile.jsp
가 실행됨.
5️⃣ 서블릿에서 새로운 페이지로 이동 (리다이렉트)
✔ 새로운 페이지로 이동하려면 response.sendRedirect("URL")
을 사용.
✔ 리다이렉트는 클라이언트에게 새로운 요청을 보내도록 지시하며, 브라우저의 URL이 변경됨.
🔹 예제 코드 (리다이렉트)
response.sendRedirect("login.jsp");
✔ 로그아웃 후 로그인 페이지로 이동하는 경우에 자주 사용됨.
🛠 3. 서블릿 사용 방법 정리
과정 | 설명 |
---|---|
1️⃣ 클라이언트 요청 | 특정 URL을 요청 (http://localhost:8080/hello ) |
2️⃣ 서블릿 실행 | URL 매핑을 통해 @WebServlet(urlPatterns = "/hello") 서블릿이 실행됨 |
3️⃣ 요청 방식 처리 | GET 요청이면 doGet() , POST 요청이면 doPost() 실행 |
4️⃣ 비즈니스 로직 수행 | DB 조회, 데이터 처리, 검증 등 |
5️⃣ JSP로 포워딩 (forward() ) |
데이터를 유지하면서 JSP로 이동 (URL 변경 없음) |
6️⃣ 리다이렉트 (sendRedirect() ) |
클라이언트가 새로운 요청을 보내도록 지시 (URL 변경됨) |
✅ 4. 결론
✔ 서블릿을 사용하면 클라이언트 요청을 처리하고, 비즈니스 로직을 수행한 후, JSP로 데이터를 전달하거나 리다이렉트할 수 있다.
✔ 포워딩(forward()
)은 데이터를 유지하면서 JSP로 이동하며, 리다이렉트(sendRedirect()
)는 클라이언트가 새 요청을 하도록 한다.
✔ 서블릿은 @WebServlet
, web.xml
등을 사용하여 특정 URL과 연결되며, 요청 방식(GET, POST)에 따라 다르게 처리된다.
🚀 이제 서블릿의 전체적인 사용 방법을 완벽하게 이해했을 거야! 😊
복습
📌 정리된 문장
URL 요청이 발생하면, 서블릿이 실행되며 특정 서블릿과 매핑되기 위해 다양한 매핑 방식(
urlPatterns
,urlMapping
,servletMapping
)이 사용된다.요청 방식(HTTP Method: GET, POST)에 따라 서블릿 내부에서
doGet()
또는doPost()
메서드가 실행될 수 있다.서블릿에서 다른 페이지(JSP)로 데이터를 전달하려면
RequestDispatcher.forward(request, response);
를 사용하며,
새로운 페이지로 이동하려면response.sendRedirect("URL");
을 사용한다.
📌 추가적인 설명 (좀 더 쉽게 이해하기 위한 구조)
1️⃣ URL 요청 발생
→ 서블릿 실행
→ 특정 서블릿과 연결 (urlPatterns
, urlMapping
, servletMapping
)
2️⃣ 전달 방식(GET, POST)에 따라 다르게 처리
→ doGet()
또는 doPost()
실행
3️⃣ 비즈니스 로직 수행
→ 데이터 처리(DB 연동, 계산, 검증 등)
4️⃣ 응답을 JSP로 전달 (포워딩)
→ RequestDispatcher.forward()
사용
5️⃣ 새로운 페이지로 이동 (리다이렉트)
→ response.sendRedirect()
사용
이제 완벽하게 정리되었어요! 🚀😊