ORM( Object Relational Mapping)
-> DTO/ VO를 만들면 그거에 맞게 DB에 Table이 알아서 만들어짐
JPA ( Java Persistence Api)
No Sql 객체 (대신 고급쿼리를 사용하기 힘듦)
한 영페이지 구현하는 방법
1. js + jsp로 한글/ 영어를 선택하면 해당 페이지로 이동하게 구현
2. prefix/ suffix를 고려해서 properties 파일 생성 (xml방식도 가능하지만 복잡함)
3. bean xml 생성 ( reload를 통한 언어 변경해서 뿌려주는거 설정, 첫 화면 설정, 언어변경을 위한 param 설정 )
4-1. spring이랑 연동될 수 있도록 jsp taglib 선언
4-2. properties에 선언해둔 값을 가져올 수 있도록 코드 작성
sqls mybatis 설정 xml 작성시 유의점
session Scope와 request Scope의 차이
jsp에서 그냥 loginVo라고 호출하고
controller에 동일한 변수 명으로 session, request 객체가 선언돼있다면 request가 우선으로 호출됨
scope가 호출되는 우선순위 - page, request, session, application
로그아웃 session remove, session invalidate 가능하면 invalidate는 로그아웃때만쓰기
+request scope와 model 의 차이
HttpSession과 Model이용한 SessionAttribute차이
Spring의 session은 삭제하는 방법이 다름SessionStatus이 만들어진애를 관리함
ope가 불려지는 순서 페이지 리퀘스트 세션
servlet의 session과 spring의 session 담는 방법
@SessionAttribute는 HttpSession을 사용할 때 @ModelAttribute와 이름을 같게 사용하여
request Scope가 아닌 Session Scope에 값을 담을 수 있음.
Session을 지우는 방법
1. HttpSession을 지우는 방법은
session.removeAttribute()와
session.invalidate()가 있는데 invalidate는 session 객체를 삭제시키는거고 removeAttribute는 내용만 삭제하고 객체자체는 냅둠. 그래서 지운상태로 호출하면 null로 뜸 invalidate로 지우고 호출하면 오류뜸
+(세션을 담은 컨트롤러가 아닌 다른 컨트롤러에서 httpsesison을 삭제할 수 있음 removeAttribute를 하면 httpsession만 지우지만 session.invalidate()하면 spring으로 담은 session까지 한번에 지워버림
2. Spring Model을 활용해서 담은 session을 지우는 메소드는
sessionStatus.setComplete(); 인데 이거는 http의 세션을 지우는 2가지 방법인 session remove, session invalidate 중에서 session invalidate와 같음 (객체 자체를 지워버림)
(+ 세션을 담은 컨트롤러가 아닌 다른 컨트롤러에서 세션을 삭제하는것은 불가능함 (다른데에서 생성된 빈을 활용할 수는 있어도 제어는 불가능함 )
request와 model의 차이
request scope
jsp <a> -> server (~.do) request에 값 담음 -> redirect: /m.do (request는 javax servlet 메소드니까 값 안담겨있음)
model
구디아카데미 후기/ 국비지원IT개발자 취업 / 전민균 강사님