유데미 X 웅진 STARTERS 취업 부트캠프 백엔드 3기 - 7주차 학습 일지_JSP_pt.2

zwundzwzig·2023년 1월 11일
1
post-thumbnail

액션 태그

JSP 2.0에서는 디자이너와 공유하는 페이지 안에서 복잡한 자바 코드를 제거하는 방식으로 발전했다.

형식타입
<jsp:include>이미 있는 JSP를 현재 JSP에 포함하는 태그
<jsp:forward>서블릿에서 RequestDispatcher 클래스의 포워딩 기능을 대신하는 태그
<jsp:useBean>객체를 생성하는 new 연산자를 대신하는 태그
<jsp:setProperty>setter 대신하는 태그
<jsp:getProperty>getter 대신하는 태그

Expression Language

JSP 2.0부터 도입된 데이터 출력 기능으로 자바 코드 표현식을 더 편리하게 사용하기 위해 표현 언어가 도입됐다.

JSP에서 표현 언어를 사용하려면 페이지 디렉티브 태그에서 isELIgnored=false를 설정해야 한다.

표현 언어는 ${표현식 or 값 } 방식으로 사용한다.

내장 객체(내장 변수)

구분 내장 객체 설명
scope pageScope JSP의 page와 같은 기능, page 영역에 바인딩된 객체를 참조
requestScope JSP의 request와 같은 기능, request 영역에 바인딩된 객체를 참조
sessionScope JSP의 session과 같은 기능, session 영역에 바인딩된 객체를 참조
applicationScope JSP의 application과 같은 기능, application 영역에 바인딩된 객체를 참조
request parameter param request.getParameter() 메서드와 같고 한 개의 값을 전달
paramValues request.getParameterValues() 메서드와 같고 여러 개의 값을 전달
header value header request.getHeader() 메서드와 같고 한 개의 요청 헤더 이름 정보 전달
headerValues request.getHeaderValues() 메서드와 같고 여러 개의 요청 헤더 이름 전달
cookie value Cookies 쿠키 이름의 값 반환
JSP description pageContext pageContext(=현재 페이지 환경 정보) 객체 참조할 때 사용
initial parameter initParam 컨텍스트의 초기화 매개변수 이름 값 반환

pageScope : 현재 페이지 JSP 태그 전달값
requestScope : 이동 전 페이지 JSP 태그 전달값
sessionScope : 세션 전달값
applicationScope : 같은 서버 내 다른 브라우저 JSP 태그 전달값

<jsp:useBean id="dto" class="dto.MemberDTO" />
<jsp:setProperty property="id" name="dto" value="elid" />
<jsp:setProperty property="pw" name="dto" value="elid" />
<jsp:setProperty property="name" name="dto" value="elname" />
<jsp:setProperty property="email" name="dto" value="elmail" />
<jsp:setProperty property="phone" name="dto" value="01021212121" />
<jsp:setProperty property="address" name="dto" value="서울" />
<jsp:setProperty property="indate" name="dto" 
value="<%=new SimpleDateFormat(\"yyyy년 MM월 dd일\").format(new Date()) %>" />

<h1>jsp 회원 정보 확인</h1>
<h3><jsp:getProperty property="id" name="dto" /></h3>
<h3><jsp:getProperty property="pw" name="dto" /></h3>
<h3><jsp:getProperty property="name" name="dto" /></h3>
<h3><jsp:getProperty property="email" name="dto" /></h3>
<h3><jsp:getProperty property="phone" name="dto" /></h3>
<h3><jsp:getProperty property="address" name="dto" /></h3>
<h3><jsp:getProperty property="indate" name="dto" /></h3>

<h1>jsp 회원 정보 확인</h1>
<h3><%=dto.getId() %></h3>
<h3><%=dto.getPw() %></h3>
<h3><%=dto.getName() %></h3>
<h3><%=dto.getEmail() %></h3>
<h3><%=dto.getPhone() %></h3>
<h3><%=dto.getAddress() %></h3>
<h3><%=dto.getIndate() %></h3>

<h1>el 회원 정보 확인</h1>
<h3>${ dto.id }</h3>
<h3>${ dto.pw }</h3>
<h3>${ dto.name }</h3>
<h3>${ dto.email }</h3>
<h3>${ dto.phone }</h3>
<h3>${ dto.address }</h3>
<h3>${ dto.indate }</h3>

세 방법 모두 같은 결과를 출력하지만, 표현언어로 처리된 값이 보기에 더 깔끔하다.

JSP Standard Tag Library

위에 액션 태그와 표현언어로 구현한 JSP 파일은 여전히 자바 코드를 반복적으로 사용하고 있다. 이런 자바 코드를 제거하기 위해 JSTL이나 커스텀 태그가 등장했다.

다음은 JSTL에서 주로 지원하는 태그이다.

라이브러리세부 기능접두어관련 URI
core변수 지원, 흐름 제어, 반복문, URIcjava.sun.com/jsp/jstl/core
국제화지역, 메세지, 숫자, 날짜 형식fmtjava.sun.com/jsp/jstl/fmt
XMLXML 코어, 흐름 제어, XML 변환xjava.sun.com/jsp/jstl/xml
DBSQLsqljava.sun.com/jsp/jstl/sql
function컬렉션, 문자열 처리fnjava.sun.com/jsp/jstl/functions

본 후기는 유데미 X 웅진씽크빅 취업 부트캠프 3기 백엔드 과정 학습 일지 리뷰로 작성되었습니다.

유데미 바로가기 / STARTERS 취업 부트캠프 공식 블로그 보러가기

🧷 참고 교재

  • [길벗]자바 웹을 다루는 기술 - 이병승
profile
개발이란?

0개의 댓글