본문으로 바로가기

jsp

category Backend 2020. 1. 29. 20:18
    반응형
    1. jsp 용도
      1. JSP는 주로 View로 사용됨. 즉 클라이언트가 해석할 수 있도록 정보를 구성함.
    2. jsp 파싱 순서
      1. 컴파일 → JAVA(Stream) → 클라이언트 데이터 전송
    3. 언어별 컴파일 순서
      1. 스크립트 릿
      2. EL 표현식
      3. JSTL
    <c:if test="<%= test.equals("") %>">
    </c:if>

    JSTL 사용자 정의 태그

    • *.tld 파일을 통해서 사용자 정의 태그 정보를 설정함.
    • jsp에서 사용된 사용자 정의 태그의 정보 → 클래스 → 클래스 반환값 → 클라이언트 정보 전달

    jsp 컴파일

    *.jsp 파일은 jsp 서블릿에 의해서 java파일로 컴파일이 진행되며 숨겨진 경로에 저장되어 있다.

    _500 _ * _ jsp.java로 java파일이 생성됨.

    • 이클립스 WEB-INF.warjspwork...

      .

    컴파일된 jsp 클래스는 JspReloader을 통해서 로드되고 실행됨.

    JSTL, 스크립트릿 장단점

    스크립트 릿

    • HTML 태그와 구분되어 가독성이 JSTL에 비하여 좋다.

    JSTL

    • 필요한 기능을 템플릿화가 가능하기 때문에 효율이 좋아질 수 있다.
    • 사용자 정의 태그로 팀원 간 따로 교육이 필요하다.

    프로그래밍

    1. ${}

      servlet의 page, session, request에서 데이터를 가져옴.

      EL(Extension Language) 표현식 사용

      $ { paramValues . boadDto [0] }

      $ { paramValues ["bardDto"] [1] }

    2. <%= %>

      out.print()

    3. <% %>

      Java Source

    4. JSTL 사용자 정의 태그

      *.tld에 정의된 클래스 호출 (XML형식)

    5. 나머지 평문

      out.print()로 출려됨

    6. jsp:useBean 태그
      scope의 데이터를 변수로 선언해준다.

      <jsp:useBean id="member" class="test.MemberBean" scope="request"/>
      <%  
      // MemberBean member = request.getAttribute("member");  
      // 위 같은 선언 없이 member 변수 사용 가능하다.  
      member.getString("name");
      
      %>
    7. JSP<c:out>을 사용하는 이유

      1. html이나 스크립트가 실행되어 위험합니다.
      2. 엄격한 태그 규칙을 위해 사용합니다.
      3. 개행문자 파싱의 차이 때문에 사용합니다.
      4. 보안성 때문에 사용합니다.

    인코딩

    1. ASCII

      1byte로 256개의 문자를 표현가능하다.

    2. Unicode

      2byte로 65536개를 표현가능하다.

    3. UTF-8

      • 가변길이 인코딩
      • 영문/숫자/기호는 1byte, 한글/한자는 3byte로 표현
      • 영어/숫자/기호만 사용 시 ASCII와 호환가능
      • 1byte ~ 4byte 까지 사용
      • 1~2byte로 표현하지만 모자르면 4byte까지 확장하여 사용함
    4. URL 인코딩

      • 웹 Get 방식은 URL에 데이터를 입력하여 전송
      • url은 7비트를 사용하기 때문에 URL 인코딩을 하지 않으면 데이터가 손실됨.
    5. 이스케이프

      • 이스케이프는 프로그래밍 언어와 문자열 언어 혼동을 피해기 위해 다른 형태로 치환하기 위해 사용하는 언어임.
    반응형