12.08

0

jsp

목록 보기
5/39

composite view 패턴

여러개의 페이지로 view를 구성한다.
가장 많이 쓰이는 프레임웤이 apatch tiles

5개는 모델1 방식이었는데 module.do를 거쳐서 나오게 되서 모델2로 바뀜
하지만 bts는 원래 모델2였는데 굳이 module.do를 거쳐야될까?
->module.do거치면 bts서블릿에서 이미 버퍼에서 응답내보내서 에러나서 include방식으로 바꿨었음.
그렇다면 기존의 bts에서(forward) 사용할 수 있는 방법은 없을까? - 오늘할거

menuURI추가해줌

model1이면 module.do를 타고 model2이면 바로 동작하게 함.

->하지만 메뉴를 벗어남 -> 프레임워크

이렇게 하면 프레임워크 안써도 되는데 우리가 만들화면이 여러개라면(메뉴화면 나오게하는) 그때마다 이 코드가 중복됨, 수정사항 발생하면 다 고쳐야됨.
-> 프레임웤만든다.

프로퍼티스파일을 꼭 .properties로 안만들고 xml로 만들어도 됨

여기에 load-on을 1로 준다고 해도 장담못함
다른 서블릿들은 @로 실행되고 있는데 거기에 어떻게 설정되있을지 모름
->application전체를 통틀어 처음 실행되게 해야됨.
application의 이벤트 헨들러. 리스너..?

왼쪽에 있는 것들이 할 수 있는 이벤트 그 옆에 있는게 그 이벤트를 사용하려면 구현하라는 것들


제일 먼저 만들어지는건 servletContext
-> 이게 생성되는 시점에 properties를 읽어주면 됨. 이 이벤트핸들러를 이용하면됨.

리스너가 가지고 있는메서드를 보면 처리할 수 있는 이벤트를 알 수 있다.

어플리케이션을 통틀어 제일먼저 실행, 제일 마지막에 사라진다는 것

모든 이벤트는 자기를 발생시킨 타겟에 대한 정보 가지고 있다.

예외
checked exception
unchecked exception
예외가 발생했을때 적극적으로 처리해야되느냐 그렇지 않아도 버추얼머신한테 그냥 넘겨도 되느냐.
un-최상위가 Runtime ex
톰캣한테 thorows 못한다면 예외의 종류를 바꿔야 한다.

우리가 만든 프레임워크 제한
1. xml이 클래스패스 밑에 있어야한다.
2. 서블릿의 확장자가 .composite여야한다.
우리가 만든 jar사용하려면
1. xml에 우리가 쓸 jsp 넣어놓기
2. 리스너, 디스패처 동작해야됨->web.xml에 등록

tiles사용

  1. template
    layout과 같은 template화면 만들고 쓰겠다고 등록
  2. definition 템플릿으로 만들어진 하나의 페이지
  3. tiles
    디자인 거푸집이 template, 하나하나의 타일을 attribute라고 함.
    4개 이상(tiles홈 예제에서)의 tile이 모여서 하나의 definition 만듬

definition1, 2는 구성되있는 타일이 다름 - 다르다는것 어디에 설정되있어야됨


매번 쓰기 귀찮음


커스텀템플릿 추가하려는 것

xml만들기


contents는 뭐가될지 모름-지금 정의할 수 없음
-> 이 definition은 완전한게 아님 추상 definition
추상클래스 같은거
-> 자식이 결정되고 상속받을때 결정된다.
definition도 상속있다.


definition name은 logicalView

인터넷뱅킹타이머 - 맨처음 세션 타이머 보여줌
2. 시간 흘러갈때마다 시간이 줄어듬.
3. 0되면 타이머 멈춰야됨
4. 세션 연장 할건지 물어봄
5. 연장하겠다고 하면 다시 2분으로
안하겠다고 하면
서버사이드 내 세션이 연장이 되야됨
1. 타임아웃이 흘러가기전에 요청을 한번 보내서 세션이 있게 해야된다..? - 페이지 리셋되면 원래하던거 날라감 -> 비동기 요청
2. 그다음에 연장
단, 페이지 모듈화되서 tiles 맞춰주기..

0개의 댓글