12.04

0

jsp

목록 보기
2/39

복습

쿠키의 제한

  1. 쿠키에 저장되있는 데이터들은 문자열이 아니라 객체일 수도 있음. 그데이터를 서버로 보내려면 마샬링, 직렬화해서 보내야됨. 서버에서 받을때는 역직렬화, 언마샬링해서 받아야됨.
  2. 저장할 수 있는 용량 제한
  3. 보안에 취약

하지만 url,SSL(secure socket layer)들도 완벽하지 않아서 쿠키를 사용한다.

세션의 트래킹모드가 어떤점이 유용한지
그것을 was에서 어떻게 사용할 수 있는지 알아야

servletContext

context - 환경
servletContext -서블릿이 운영되고 있는 환경. 서블릿이 놓여있는 어플리케이션에 관한 정보 + 어플리케이션이 있는 서버에 관한 정보

모든 자원은 파일형태로 존재 - 접근하려면 그 경로 알아야됨
하지만 브라우저는 이 경로 모르고 톰캣에 따라 달라짐..?
그래서 web resource가 중요. 이것을 통해 접근할 수 있다.

Scope


페이지 만들기

  1. bts인원을 목록으로 제공
  2. 클라이언트가 그중한명 선택하면 해당 멤버의 개인 페이지가 보임


action이 없음 - 현재 브라우저 주소
=>web-inf밑에 있기 때문에 여기까지 올 수 있는 서블릿 필요하고 그 주소를 이 브라우저의 주소로 매핑하면 됨.
여기서 이름 선택한것을 처리하는 서블릿 따로 만들필요 없음. 처음 요청은 get방식이고 이름 선택해서 가는것은 form -> post방식이기 때문에

이름 중복될 수 있어서 식별할 수 있는 값도 넣어줘야됨.

디자인 패턴
1. 객체와 객체 사이의 관계로 행동이 나옴. 관계에 대한 패턴?
2. 객체 생성에 대한 패턴

VO=DTO=MODEL
VO생성 규칙
1.상태 정보 온전히 가지고 있어야됨 - 프로퍼티 정의
2.그 프로퍼티는 아무나 수정할 수 있으면 안됨-캡슐화
3.캡슐화된 프로퍼티에 접근 할 수 있어야 됨 - 겟터, 셋터
4.객체 비교 - equals()
5.객체의 상태 확인 - toString
6.그 상태를 기록할 수 있어야됨 - 직렬화 가능.그래야 pc꺼져도 안날아감

syso찍을때 자동으로 실행되는것 - toString().
상태를 확인할 수 있는것

ObjectInputStream - 자동으로 직렬화해줌
ObjectOutStream - 역직렬화

VO - 계층형 아키텍처에서 필요.
dao-service-controler
각각의 계층에서 사용되는 객체 : layer
그 계층으로 이동할때 데이터들이 이동해야됨 - VO로

layer 아키텍처랑 MVC랑 비슷함.


1. 모든 멤버변수 가지고 있는(셋팅해줄 멤버변수 갖고있는) private 생성자 필요
2. 이 생성자는 외부에서 호출 못함 - 객체 못만듬- 내부에서 호출해서 만들수있는애 필요 -> builder를 만들어줌
3. builder안에서 생성자 호출해서 만들어줘야됨 -> build()메서드가 한개는 꼭 필요
4. Builder안에 build의 대상이 되는 VO와 똑같은 상태의 객체가 필요. 생성자랑 똑같은 애

5. 현재 가지고 있는 상태와 이름이 동일한 메서드를 만들어주고 그 안에서 상태를 셋팅해준다.
this를 반환하기 때문에->jquery처럼 객체의 뭐가 만들어진다...도큐먼트 구조?

  • BtsVO
    setter를 없애고 builder를 통해 객체를 생성하게 한다.

    여기서 this가 정확하게 뭔가? - BtsVOBuilder 객체


<오늘 핵심>
스코프를 각각의 상황에 맞게 쓸 수 있어야
자바빈
equals가 없다면?

여기에서 계속 객체의 주소를 비교하지 않고 내용을 비교해서 같다고 나올것.
=> equals 오버라이딩 꼭 필요!

과제
서버사이드 리소스를 익스플로러로 구현
삭제, 끌고가면 이동되게, 복사
기본 CRUD


api 활용해볼것

회원가입
이메일, 이름, 비번
CRUD
최대한 많은 것들을 써보라

layer아키텍쳐 써보되 다오에서 저장하는거 디비말고 맵에

객체생성 디자인패턴

  • 싱글톤 : 메모리 줄이기 위해
    두개이상의 쓰레드가 한개의 싱글톤을 건드려야된다면
    ->동기화설정. 그 안에 상태 바꿀수있는 키워드 - 싱그로나이즈
    누가 먼저 객체를 생성할까?
    A가 먼저 getInstance()호출해서 만드려고 했는데 10초 걸림. 근데 B가 2초에 오면 그때는 객체 안만들어져있음. 그럼 get호출해서 또 만들려고 할것
    ->안전하게 생성할 수 잇는 방법은?

어뎁터 패턴 미리조사
-첫번째 과제 해결하기 수월해짐

인메모리
db를 왜 맵으로 남길지 생각해보기

0개의 댓글