Scope
컨트롤러에서 화면으로 전송되는 데이터의 유효범위
Application Scope
- Web Application이 구동되는 유효한 데이터를 생성
Session Scope
- 사용자가 Web Page에 접속 시 자동으로 생성
- WAS에 설정된 시간동안 Web Page에서 동작이 없을 시에 자동 소멸
- 동작이 계속 취해지면 설정된 시간이 계속 유지
web.xml
->30분 동안 동작하지 않으면 자동 소멸 됨
- 세션 유효범위는 세션이 유지되는 동안 유효한 데이터를 생성
- HttpSession 객체를 사용하여 설정(로그인 정보 등을 담아서 여러 페이지나 Request에서 사용 가능)
Request Scope
- 하나의 요청이 실행되는 동안에만 유효한 데이터를 생성
- 요청 처리가 완료되면 사라짐
- Model 객체를 이용하여 설정할 수 있음
Scope 범위
Application Scope > Session Scope > Request Scope
el 표기법과 jstl
el(Expression Language)
- 기존 JSP에서는 자바코드나 자바변수를 사용할 때
<%= 변수 %>
와 같이 사용하였음
- el표기법은 자바코드나 자바변수를
${변수}
와 같이 축약하여 사용할 수 있도록 설정
jstl
- 자바변수를 이용할 때 조건이나 반복문을 사용할 수 있도록 해주는 라이브러리
- ex) 로그인됐을 때는 마이페이지를 보여줘야 하는 경우와, 로그인 되지 않았을 때는 로그인페이지를 보여줘야 하는 경우에 jstl tag인
<c:if></c:if>
를 이용하여 표시
Spring / ORM Framework
- ORM Framework 등장 전에는 JDBC Programming을 통해서 DB연동
- JDBC Programming은 DB 연결 클래스를 따로 작성해야하고, 쿼리문도 자바 클래스로 작성해야하여 매우 불편했음
- ORM Framework 등장하면서 DB 연결 설정이나 쿼리문이 클래스에서 분리되어 편하게 사용할 수 있게 됨
ORM Framework(Object Relation Mapping)
- 객체와 DB의 테이블을 매핑하여 사용하는 Framework
- DB 연결, 쿼리문을 클래스에서 분리된 파일에 작성
- Mybatis, iBatis, Hibernate etc..
MVC pattern
MVC(Model View Controller) pattern
- Model: DB와 연동되는 객체(Service, ServiceImpl, DAO, mapper)
- View: 사용자에게 표출될 화면(JSP)
- Controller: View와 Model을 연결하는 객체( Controller)
- View에서 사용자가 동작을 취하면 Controller가 사용자 요청을 받아서 처리를 진행
- Controller에서 Model객체의 함수를 호출하여 DB 데이터를 받아오거나 DB데이터를 조작함
- View --요청--> Controller --함수호출--> Model --쿼리--> DB
- View <--응답-- Controller <--결과리턴-- Model <--쿼리결과-- DB
===> 해당 방식이 보편적일 뿐 절대적이지는 않음
Model의 호출 순서
Service -> ServiceImpl -> DAO -> Mapper