2. JSP의 내장 객체
2.1 JSP의 내장 객체
request : 사용자의 요청을 처리
response : 서버의 응답
out : 웹 브라우저에 출력 처리
session : 사용자의 인증 정보(로그인~로그아웃) 저장
application : 서버의 정보 저장
exception : 에러 처리
config : jsp의 환경정보
page : 현재 페이지
2.2 JSP 내장 변수의 사용범위
pageContext : 현재 페이지
request : 요청 + 응답 페이지(2 페이지)
session : 사용자 변수(로그인 ~ 로그아웃)
application : 서버 변수(모든 사용자)
2.3 JSP의 개발 방식
2.3.1 model 1 방식
JSP page 안에 자바 코드 작성
2.3.2 model 2(MVC pattern) 방식 : jsp page와 java code 분리
''' 왜 분리하냐면 '유지보수' 때문에!
Model : 데이터 처리 클래스(DAO, DTO), back end
Data Access Object(DAO) : 실제적인 비즈니스 로직을 처리
Data Transfer Object(DTO) : 데이터를 저장, 전달
bean(빈), VO(Vector Object), TO(Table Object)
View : 화면 처리(jsp), front end
Controller : 프로그램의 흐름을 제어(servlet class)
2.4 Model 1
모델 1의 아키텍쳐
2.5 Model 2
모델 2의 아키텍쳐
2.6 모델 2의 필요성
모델 1과 모델 2의 비교
(012153)
2.6.1 Model 1의 장점
- 빠른 개발 속도
- 배우기 쉬움
2.6.2 Model 1의 단점
- JSP 페이지에서 프레젠테이션 로직과 비즈니스 로직을 모두 포함하기 때문에 JSP 페이지가 너무 복잡해진다.
- 프레젠테이션 로직과 비즈니스 로직이 혼재되어 있기 때문에 개발자와 디자이너의 분리된 작업이 어려워진다.
- JSP 페이지의 코드가 복잡해짐으로 인해 유지보수가 어려워진다.
2.6.3 Model 2의 장점
- Web Application이 복잡해지고, 사용자들의 요구가 증가함에 따라 새로운 방식의 개발 방식에 대한 요구가 증대되었다.
- 대규모 프로젝트의 경우 개발시의 개발 비용보다는 유지보수를 쉽게 할 수 있는 개발 방식을 요구하는 경우가 많아졌다.
2.6.4 Model 2의 단점
- Model 2 개발방식은 Model 1보다 어렵고 복잡하다.
- Model 1으로 개발하는 것보다 개발시간이 더 요구된다.
2.7 Framework
- 특정 개념들의 추상화를 제공하는 여러 클래스나 컴포넌트로 구성된다.
- 컴포넌트의 재사용이 가능하다
- 좀더 높은 수준에서 패턴들을 조직화한다.
- Framework의 종류 : Struts, Spring 등
2.8 실습예제
01) /ch02/requestTestForm1.jsp
'''notepad.
Map - 순서가 없고, 빠른 검색을 위해 사용
List - 순서o
LinkedList
Set - 순서x, 중복값을 걸러줌
02) /ch02.RequestController.java
04) /ch02/requestTest2.jsp
05) /ch02/responseRedirect.jsp
06) /ch02/responseRedirected.jsp
07) /ch02/session.jsp
'''comment.
// pageContext < request < session < application
// 현재 페이지 요청+응답 사용자 서버
08) /ch02/session_result.jsp
09) /ch02/session_result2.jsp
10) /ch02/sessionTestForm.jsp
'''notepad.
sessionTestForm.jsp (로그인 폼)
session_success.jsp (로그아웃 버튼 클릭)
=> LoginController.java (Controller)
=> MemberDAO.java (Model)
MemberDTO.java
=> session_success.jsp (View)
11) member.MemberDTO.java
12) member.MemberDAO.java
13) ch04.LoginController.java
14) /include/session_check.jsp
16) /ch02/applicationTest.jsp
17) applcation_result.jsp