JAVA WEB 공부 7일차

머리터지기 일보직전·2022년 10월 3일
0

JAVA WEB

목록 보기
8/8

인클루드 액션 태그

  • 액션 태그 등장 배경
    • 화면이 복잡해짐에 따라 디자이너는 HTML 태그에 자바 코드를 같이 써야 하는 불편이 생김
    • 따라서 스크립트릿의 자바 코드를 대체하는 액션 태그가 등장
  • 인클루드 디렉티브 태그처럼 화면을 분할해서 관리하는데 사용되는 태그
  • 화면 유지보수 및 재사용서을 높일 수 있음
  • 형식
    • <jsp:include page="jsp페이지" flush="true 또는 false"/>
    • flush : 지정한 JSP를 실행하기 전 출력 버퍼 비움 여부 지정

포워드 액션 태그

  • RequestDispatcher 클래스를 대신해서 포워딩 하는 방법을 제공
  • 포워딩 시 값을 전달할 수 있음
  • 형식
    -<jsp:forward page="포워딩 할 JSP페이지" />

자바 빈

  • 자바 빈(Bean)
    • Java EE 프로그래밍 시 여러 객체를 거치면서 만들어지는 데이터를 저장하거나 전달하는 데 사용되는 클래스
    • 자바의 DTO(Data Transfer Object, 데이터 전송 객체) 클래스, VO(Value Class, 값 객체) 클래스와 같은 개념
  • 자바 빈 특징
    • 속성의 접근 제한자는 private 임
    • 각 속성(attribute, property)은 setter/getter 를 가짐
    • setter/getter 이름의 첫 글자는 반드시 소문자
    • 인자 없는 생성자를 반드시 가지며 다른 생성자도 추가할 수 있음

useBean 액션 태그

  • JSP 페이지에서 자바 빈을 대체하기 위한 태그
  • 형식
    • <jsp:useBean id="빈 이름" class="패키지 이름을 포함한 자바 빈 클래스이름" [scope="접근범위"] />
  • setProperty : useBean의 속성에 값을 설정하는 태그
    • <jsp:setProperty name="자바 빈 이름" property="속성 이름" value="값 />
  • getProperty : useBean의 속성 값을 얻는 태그
    • <jsp:getProperty name="자바 빈 이름" property"속성 이름"/>

표현언어와 JSTL

  • 표현언어 : 자바코드가 들어가는 표현식을 좀 더 편리하게 사용하기 위해 JSP2.0부터 도입된 데이터 출력 기능
  • 표현언어 특징
    • 기존 표현식보다 편리하게 값 출력
    • 변수와 여러가지 연산자를 포함할 수 있음
    • JSP의 내장 객체에 저장된 속성 및 자바의 빈 속성도 표현 언어에서 출력할 수 있음
    • 표현언어 자체 내장 객체도 제공됨
    • JSP 페이지 생성 시 기본 설정은 표현 언어를 사용할 수 없음
    • 페이지 디렉티브 태그에서는 반드시 isELIgnored =false로 설정해야함
    • ${ 표현식 or 값 }

표현언어 내장객체

  • param
  • requestScope : forward로 값을 넘겼을때 받을 수 있음
  • pageContext : pageContext.request.contextPath로 주소 찾을 수 있음
  • 빈 사용 : ${빈이름.속성이름}
  • Collection : ${Collection객체이름[index].속성이름}
  • HashMap : ${HashMap객체이름.키이름}
  • has-a : ${부모빈이름.자식속성이름.속성이름}

언어에서 같은 속성에 대한 우선순위

  • page > request > session > application

커스텀 태그

  • 액션 태그나 표현 언어를 사용하더라도 조건식이나 반복문 등의 자바 코드를 제거하기 위해서 도입된 기능
  • JSTL (JSP Standard Tag Library)
    • JSP 페이지에서 가장 많이 사용하는 기능을 태그로 제공하며, JSTL 라이브러리를 따로 설치해서 사용
  • 개발자가 만든 커스텀 태그
    • 개발자가 필요에 의해 만든 태그로, 스트러츠나 스프링 프레임워크에서 미리 만들어서 제공

JSTL 표준 라이브러리 태그

  • 코어 : 변수 지원, 흐름 제어, 반복문 처리, URL 처리 / 접두어 : c
  • 국제화 : 지역, 메시지 형식, 숫자 및 날짜 형식 / 접두어 : fmt
  • XML : XML 코어, 흐름제어, XML변환 / 접두어 : x
  • 데이터베이서 : SQL / 접두어 : sql
  • 함수 : 컬렉션 처리, 문자열 처리 / 접두어 : fn

Core 태그 라이브러리

  • 자바로 구현한 변수 선언, 조건식, 반복문 기능등을 태그로 대체
  • 사용 전 반드시 taglib 디렉티브 태그를 선언해야함
    • <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  • 변수지원 : <c:set> JSP 페이지에서 변수를 지정 / <c:remove> 지정된 변수를 제거
  • 흐름 제어 : <c:if> 조건문 사용 / <c:choose> switch문 사용 <c:when>과 <c:otherwise> 서브태그 있음 / <c:forEach> 반복문 사용 / <c:forTokens> 구분자로 분리된 각각의 토큰을 처리할 때 사용
  • URL 처리 : <c:import> URL을 이용해 다른 자원을 JSP 페이지에 추가 / <c:redirect> response.sendRedirect() 기능을 수행 / <c:url> 요청 매개변수로부터 URL 생성
  • 기타 태그 : <c:catch> 예외 처리 / <c:out> JSPWrite에 내용을 처리한 후 출력

Core 형식

  • <c:set>
    • <c:set var="변수이름" value="변수값" scope="scope 속성중 하나" />
    • var : 사용할 변수 이름, value : 변수에 저장할 값, scope : 접근범위(page,request,session,application 중 하나)
  • <c:remove>
    • <c:remove var="변수이름" scope="scope 속성 중 하나" />
    • var : 제거할 변수 이름, scope : 접근범위(page, request, session, application)
  • <c:if> 조건문을 대체하는 태그
    • <c:if test="${조건식}" var "변수 이름" scope="scope 속성중 하나">
      </c:if>
  • <c:choose> switch문의 기능 수행
    • <c:choose>
      	<c:when test="조건식1"> 내용 </c:when>
          <c:when test="조건식2"> 내용 </c:when>
          <c:otherwise> 내용 </c:otherwise>
       </c:choose>
  • <c:forEach> JSP페이지에서 반복문을 수행함
    • <c:forEach var="변수이름"
      items="반복할 객체이름"
      begin="시작값" end="마지막값"
      step="증가값" varStatus="반복상태 변수이름" >
      </c:forEach>
    • varStatus 속성
    • index / int / items에서 정의한 항목을 가리키는 index 번호, 0부터 시작
    • count / int / 몇번째 반복인지 나타냄, 1부터 시작
    • first / boolean / 첫번째 반복인지 나타냄
    • last / boolean / 마지막 반복인지 나타냄
  • <c:url> JSP페이지에서 URL 정보를 저장하는 기능
    • <c:url var="변수 이름" value="URL경로" scope="scope 속성 >
      <c:param name="매개변수 이름" value="전달값"/>
      </c:url>
  • <c:redirect> response.sendRedirect() 기능 수행
    • <c:redirect url="redirect할 URL">
      <c:param name="매개변수 이름" value="전달값/>
      </c:redirect>
  • <c:out> 화면에 지정한 값을 출력
    • <c:out value="출력값" default="기본값" escapeXml="boolean값" />
    • default : value에 지정된 값이 없을 때 출력할 기본 값
    • escapeXml : escape문자를 변환여부 지정 (생략가능하며 기본값은 true)
    • escapeXml이 false일 때 변환되는 문자
    • < : < / > : > / & : & / ' : ' / " : "

0개의 댓글