JSP practice_240430

Choi Suyeon·2024년 4월 30일

forTokens

for문과 StringTokenizer가 결합된 태그.
CSV데이터를 자를 때 사용.(모든 문자열을 자를 수 있다.)

  • 사용법)
    <%
    String csvData = "a,b,c,d,e"
    pageContext.setAttribute("data",csvData);
    %>
<c:forTokens var="변수명" items="${ 스콥객체명 }" delims="구분문자">
                                               //or : 구분문자에 해당하는 모든 문자를 토큰으로 구분
${ 변수명 } //구분문자로 구분된 token하나 출력
</c:forTokens>

import

  • 여러 JSP를 한번에 보여 줄 때.
  • 보여질 합쳐지는 <jsp:include > 액션태그와 동일한 동작을 수행.
  • URL을 지원.( JSP가 다른 서버에 존재하더라도 include가능)
  • 페이지 지시자의 충돌이 발생하지 않고, 변수, method의 공유가 되지 않는다.
  • 사용법)
    <c:import url=“포함될 JSP의 URL”/>

exception

예외처리 시 사용.
scriptlet(<% %>)과 expression(<%= %>)은 _jspService method안에 try~catch블록안으로 코드가 생성된다. => 개발자가 사용하는 method가 예외를 발생시켜도 자동으로 처리된다.
(Throwable)=> 예외메시지가 그대로 웹 브라우저에 출력된다.

<c:catch>를 사용하면 발생되는 예외를 잡을 수 있다.
<c:if>를 사용하여 예외상황

  • 사용법)
 <c:catch var=“객체명”>
  <%
   예외발생예상코드
   %>
 </c:catch>

 <c:if test=“${ not empty 객체명}”> // ${ 객체명 != null },  ${ 객체명 ne null }
  예외 발생시 제공할 코드 
 </c:if>

redirect

페이지이동 기술.
접속자에게 페이지를 응답한 후 접속자 브라우저가 자동 재 요청하는 방식.
웹 브라우저는 페이지의 이동을 알고 있다. (url이 변경된다.)
sendRedirect와 return이 합쳐진 태그.

  • 사용법)
    <c:redirect url="이동할 페이지 URL"/>

  • fmt
    날짜, 숫자의 형식을 변경하여 출력할 때 사용.

  • 사용법)

  1. 지시자 선언)
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

  2. 숫자변환) 숫자에 ,나 . 넣기
    <fmt:formatNumber value="출력할 숫자" pattern="출력형식"/>
    0: 해당자리에 데이터가 없으면 0출력
    #: 데이터가 있을 것까지만 출력

  3. 날짜 변환) 원하는 형식의 날짜로 변환
    <fmt:formatDate value=“날짜객체” pattern=“SimpleDateFormat의 날짜 패턴”/>

DBCP (DataBase Connection Pool)

JDBC방식보다 향상된 Connection관리를 제공하는 개념을 가지고 만들어진 클래스

  • DB연동이 필요한 작업이 있을 때마다 DB연동을 계속하는 장식(커넥션을 재사용하지 않는다.)
    장점 : 필요할 때 마다 연결을 얻고 해제하기 때문에 메모리를 절감할 수 있다.
    단점 : 초기지연시간이 발생(DBMS을 찾고 연결하는 시간 - 사용자에게는 필요없는 시간)

  • 커넥션을 일정 개수 미리 연결해두고, 필요할 때 꺼내서 사용하는 것.
    장점 : 초기지연시간이 줄어든다. 커넥션의 재사용성 향상.
    단점 : 메모리의 낭비

  • tomcat에서는 설정을 통해서 DBCP를 사용할 수 있다.

  • tomcat에서 제공하는 DBCP명은 project(<Context,,>)마다 설정하고 사용할 수 있다.

<Resource name="jdbc/myoracle" auth="Container"
              type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
              url="jdbc:oracle:thin:@127.0.0.1:1521:mysid"
              username="scott" password="tiger" maxTotal="20" maxIdle="10"
              maxWaitMillis="-1"/>

0개의 댓글