일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 오버라이딩
- SQL
- SQL 튜닝
- 자바의정석
- 오버로딩
- 비교 연산자
- 이클립스 설치
- 함수
- 예약어
- SQL튜닝
- 논리 연산자
- SpringSecurity 로그아웃
- 배열
- 스프링시큐리티 로그아웃
- SpringSecurity 로그인
- 연산자
- StringBuffer
- @PreAuthorize("isAuthenticated()")
- 친절한 SQL
- java
- 객체
- 식별자
- 상속
- 산술 연산자
- join
- 친절한 SQL 튜닝
- 반복문
- 인텔리제이 Web 애플리케이션
- spring 게시판 삭제
- 객체지향
Archives
- Today
- Total
gi_dor
FrontController - 간단 본문
기존 패턴
FrontController 사용
Front Controller에 요청을 보내고,
Front Controller은 각 요청에 맞는 컨트롤러를 찾아서 호출시킨다.
공통 코드에 대해서는 Front Controller에서 처리하고, 서로 다른 코드들만 각 Controller에서 처리할 수 있도록 한다.
FrontController 패턴은 웹 애플리케이션에서 클라이언트의 요청을 중앙 집중적으로 처리하는 패턴이라고 한다.
- 공통 코드의 중복을 줄임 , 애플리케이션의 구조를 개선할 수 있다
- 요청 1개 = 컨트롤러 1개 → 컨트롤러 갯수가 많아짐
- 하나의 컨트롤러 안에 여러개 처리하는 방식
class FrontController{
}
//클라이언트의 모든 요청은 여기로 옴(다른 컨트롤러들이 직접 받지X)
//이 작업들은 맨날 해야 하는 작업들임
// 1. 요청 접수
// 2. 요청 분석
// 3. 적절한 요청핸들러 메소드 실행
// 4. 이동할 경로 반환받가
// 5. 해당 경로로 내부 이동하기(-> 내부이동 JSP)
class BoardController {
public String list(req, resp){ ... }
public String detail(req, resp){ ... }
public String form(req, resp){ ... }
public String insert(req, resp){ ... }
}
class LoginLogoutController {
public String loginForm(req, resp){ ... }
public String login(req, resp){ ... }
public String logout(req, resp){ ... }
}
class UserController {
public String info(req, resp){
User user = userDao.getUserById("hong");
req.setAttribute("user", user);
return "user/info.jsp"; //내부이동할 jsp 경로
}
}
//업무로직 수행
//속성으로 데이터 저장
//내부이동할 페이지 반환
▶ 실제 개발자가 하는 부분 : UserController , jsp
📌 다른 Controller들 자바 클래스로 만들기
FrontController가 서블릿으로 → FrontController에서 다른 Controller 실행(request, response 전달) → 다른 Controller들은 일반 자바 클래스로 만들 수 있음
서블릿 클래스만 Http 요청을 받고 Http 응답 보낼 수 있음
📌 FrontController와 다른 Controller의 분리
FrontController - 클라이언트 요청 접수, 뷰 페이지로 내부 이동
다른 Controller - 업무로직 호출, 데이터 획득, 데이터를 뷰에 전달
@Controller
@RequestMapping(path = "/user")
class UserController {
@RequestMapping(path = "/register")
public String form(req, resp){
//회원가입 화면 제공
return "user/form.jsp";
}
@RequestMapping(path = "/register". method = HttpMethod.POST)
public String register(req, resp){
//회원가입처리(요청 파라미터 조회, User 객체 생성/값 담기, Dao 전달해서 저장시키기)
return "redirect:completed";
}
@RequestMapping(path = "/completed")
public String completed(req, resp){
//회원가입 완료 화면 제공
return "user/completed.jsp";
}
}
https://yeonyeon.tistory.com/103
728x90
'Back_End > JSP_Servlet' 카테고리의 다른 글
Redirect , Forward (0) | 2024.03.11 |
---|---|
[Web] MVC 패턴 - Model1 Model2 (1) | 2024.02.14 |
세미 프로젝트 - 로그인 , 세션 다루기 (1) | 2024.02.14 |
JSP 개념 (1) | 2024.01.07 |
인텔리제이에서 Web 애플리케이션 프로젝트 만들기 (1) | 2024.01.01 |