[JSP] JSP의 내장 객체
programming/jsp

[JSP] JSP의 내장 객체


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