JSP 7. jsp directive & marshalling

zhyun·2020년 11월 26일
0

JspSpring

목록 보기
9/39

복습

enum

  • enum 형식은 코드수정 발생을 줄일 수 있다

resource bundle api.

  • basename
    • 시작점이 클래스패스
  • 베이스네임 뺀 나머지 _en,_ko,..는 로케일 네임, 확장자 포함 안함(.properties)

accept

  • client가 원하는 데이터타입에 맞춰서 서버에서 보낸다

getMessage.jsp

  • 헤더에 노란줄 부분이 있고없고에 따라서 동기/비동기로 나뉘어진다. 있으면 비동기

  • 요청을 안받으려고, 보안 (jsp - WEB-inf 아래에)


2020.11.26 목요일

★JSON소개 읽어보기★

JSON

  • JavaScriptObjectNotation
  • 가벼운 데이터 교환 형식
  • 사람이 읽고 쓰는 것과 기계가 파싱하고 생성하는 것이 쉽다
  • 객체 key|value 형식의 구조
    • { String key : String value }
  • 값들의 순서화된 리스트 형식 (배열 array)
    • [ value1, value2... ]
  • JSON 형식 : null, number, string, array, object, boolean

JSP Directive

  • JSP (JavaServerPage)

  • JSP페이지에 대한 설정 정보 지정에 사용

  • 구문형식 : <%@ 디렉티브명 속성명="속성값" %>

    디렉티브설명
    pageJSP페이지에 대한 정보를 지정
    JSP가 생성하는 문서의 타입, 출력버퍼의 크기, 에러페이지 등
    JSP페이지에서 필요로 하는 정보 입력
    taglibJSP페이지에서 사용할 태그 라이브러리를 지정
    includeJSP페이지의 특정 영역에 다른 문서를 포함

Directive 종류

속성설명기본값
contentTypeJSP 페이지가 생성할 응답 데이터의 MIME 타입을 설정
"text/html;charset=UTF-8"
text/html
importJSP페이지에서 사용할 자바 클래스를 지정
sessionJSP페이지에서 세션 사용 여부 설정true
bufferJSP페이지의 출력 버퍼 크기 설정
none로 설정시 버퍼를 사용하지 않음
8kb
autoFlush출력버퍼가 다 찬 경우, 자동 방출 여부 설정true
infoJSP페이지에서 대한 설명
errorPage에러가 발생할 경우 대체 페이지를 설정
isErrorPage에러를 처리할 에러처리 페이지인지 설정, true인 경우 exception을 사용할 수 있음false
pageEncodingJSP페이지 자체의 캐릭터셋을 설정
isElIgnoredJSP페이지의 표현언어 지원 여부 설정false
deferredSyntaxAllowedAsLiteral#{}를 deferred EL기호로 사용할지 여부false
trimDirectiveWhitespace출력 결과에서 템플릿 텍스트의 공백문자를 제거할지 여부 설정false

jsp 소스 표준 구성요소

1. 정적테스트 요소

2. 스크립트 (page 디렉티브의 주요 속성)

스크립트 요소설명구문 기호
표현식(Expression)값을 출력한다<%=표현할 데이터 %>
스크립틀릿(Scriptlet)자바 코드를 실행한다<% 자바구문 %>
선언부(Declaration)자바메소드나 전역변수를 선언<%! 전역변수나 메소드 선언%>
주석(Comment)JSP주석 기호<%--주석--%>

client side

  • HTML JavaScript, css

  • <!--주석2-->

    • 주석2는 서버사이드가 볼때 그냥 문자열, 응답데이터에 포함, 응답데이터 사이즈 늘어남..
  • 예제 /webStudy01/03/JSPStandard.jsp 브라우저에서 페이지 소스보기를 하면 서버사이드 <%--주석1-->은 보이지 않는다. <!--주석1-->만 보인다.

server side

  • java, jsp
  • <%--주석1--%>
    • 주석1은 서버사이드 문자열

3.기본객체(내장객체)

4. 액션태그(jsp action tag)

5. 표현 언어(Expression Language, EL)

6. JSTL(tag library)


marshalling & unmarshalling

<-j.s--(마샬링)--(직렬화)--네트워크(json)--(역직렬화)--(언마샬링)--java(server)->

  • 클라이언트-> (마샬링>직렬화) -> 네트워크 -> (역직렬화>언마샬링) -> 서버
  • 클라이언트<-(언마샬링<역직렬화) <-네트워크 <-(직렬화<마샬링)<-서버
  • 서로 다른 언어 간의 데이터 교환을 위한 과정
    • javascript언어를 json으로 바꾸고 json을 또 java언어로 바꿔서 데이터 교환
    • server에서 응답데이터를 만들어서 client한테 보낼때 맨위 과정을 반대로 생각하면 된다
  • xml과 json은 영어와 비슷 세계공용어
    • json은 xml보다 경령

직렬화(Serialization)

  • 객체의 상태를 저장하기 위해서 byte stream으로 변환
  • 데이터를 파일로 저장하거나 memorybuffer 또는 네트워크를 통해 데이터를 송/수신할 때 용이하게 한다.

마샬링(Marshalling)

  • 마샬링은 직렬화랑 비슷한 개념이지만 변환하는 일련의 과정 좀 더 큰 개념..
  • 직렬화의 과정에서 마샬링이 포함
  1. 직렬화된 객체를 바이트 단위로 분해한다. (marshalling)
  2. 직렬화 되어 분해된 데이터를 순서에 따라 전송한다.
  3. 전송 받은 데이터를 원래대로 복구한다.(unmarshalling)

  • 자바스크립트 방식 객체

  • buffer에 담았다가 한꺼번에 flush해서 나감 (전송속도 올라감)

  • 예외를 발생하더라도 한번 flush하면 내보내기 힘들다
  • false로 해놓으면 직접 제어 가능
  • false로 하고 서버돌리면 에러
profile
HI :)

0개의 댓글