Microsoft PowerPoint - aj-lecture8.ppt [호환 모드]

Similar documents
TP_jsp7.PDF

뇌를 자극하는 JSP & Servlet 슬라이드

계속되는 JSTL 의활약 <c:foreach> 액션의 items에사용할수있는자료의형태 - <c:foreach var="dish" items="${???}"> - 즉, 위의??? 부분에사용할수있는자료의형태는다음과같다. 배열, 컬렉션프레임워크,, 로구분된항목들을포함한문자열

Microsoft PowerPoint 웹 연동 기술.pptx

PowerPoint Presentation

- 다음은 대한민국, 미국, 일본 의화폐문자출력과날짜, 시간을출력하는 JSP(WorldFormat.jsp) contenttype="text/html; charset=euc-kr"%> import="java.util.*"%>

PowerPoint Template

Data Provisioning Services for mobile clients

Microsoft PowerPoint - aj-lecture9.ppt [호환 모드]

Microsoft PowerPoint 세션.ppt

로거 자료실

PowerPoint 프레젠테이션

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp

중간고사

Microsoft PowerPoint - 4강.pptx

PowerPoint Presentation

슬라이드 1

KYO_SCCD.PDF

PowerPoint Presentation

PowerPoint Presentation

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

04장


혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가

슬라이드 1

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

Microsoft PowerPoint Predicates and Quantifiers.ppt

PowerPoint 프레젠테이션

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

MySQL-.. 1

Microsoft PowerPoint - chap06-2pointer.ppt

chap 5: Trees

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

adfasdfasfdasfasfadf

PowerPoint Presentation

JAVA PROGRAMMING 실습 09. 예외처리

JVM 메모리구조

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - [2009] 02.pptx

JAVA Bean & Session - Cookie

DBMS & SQL Server Installation Database Laboratory

Microsoft PowerPoint - e pptx

요약 1

윈도우즈프로그래밍(1)

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

17장 클래스와 메소드

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

Data Provisioning Services for mobile clients

PowerPoint 프레젠테이션

Lab 3. 실습문제 (Single linked list)_해답.hwp

PowerPoint Presentation

Microsoft PowerPoint - C++ 5 .pptx

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - web-part02-ch15-문서객체조작.pptx

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Microsoft PowerPoint - CSharp-10-예외처리

PowerPoint Presentation

KNK_C_05_Pointers_Arrays_structures_summary_v02

Contents. 1. PMD ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ 2. Metrics ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ 3. FindBugs ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ 4. ㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍㆍ

Spring Boot

C++ Programming

PowerPoint Presentation

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

슬라이드 1

JAVA PROGRAMMING 실습 05. 객체의 활용

Visual Basic 반복문

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - ch07 - 포인터 pm0415

SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES HTML 연동가이드 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone Fax Co

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

Web Service Computing

PowerPoint 프레젠테이션

금오공대 컴퓨터공학전공 강의자료

슬라이드 1

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

Modern Javascript

JUNIT 실습및발표

게시판 스팸 실시간 차단 시스템

쉽게

PowerPoint 프레젠테이션

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

Observational Determinism for Concurrent Program Security

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

8장 문자열

쉽게 풀어쓴 C 프로그래밊

Java ...

Microsoft PowerPoint - lec2.ppt

Secure Programming Lecture1 : Introduction

API 매뉴얼

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을

Tcl의 문법

Transcription:

JSTL JSTL 524730-1 2019 년봄학기 5/13/2019 박경신 JSTL (JSP Standard Tag Library) JCP(Java Community Process, 자바표준화단체 ) 에서정한표준 JSP 페이지에서스크립트요소로인한코드의복잡함을해결하기위한일종의사용자정의태그 널리사용되는사용자정의태그를표준으로만든라이브러리 JSP 페이지의로직을담당하는부분인 if, for, while, 데이터베이스처리등과관련된코드를 JSTL로대치하여코드를깔끔하게하고가독성을좋게하는것 JSP 내장객체에쉽게접근할수있을뿐아니라파라미터, 헤더, 쿠키등의복잡한코드를사용하지않고쉽게직관적으로사용 객체간의비교를 equals() 메소드로처리하는대신 == 와같은간단한연산자로구현이가능 JSTL 구성 JSTL 구성 JSTL CORE Tags : 변수선언및삭제, if, for, URI 처리기능 JSTL Formatting Tags : 텍스트, 날짜, 숫자를형식화하는기능 JSTL SQL : JDBC를이용한 DB처리기능 JSTL XML : XML문서처리관련기능 JSTL Functions : Collection, String 처리관련기능 Library Syntax CORE <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %> Formatting <%@ taglib prefix= fmt" uri="http://java.sun.com/jstl/fmt" %> JSTL 제공하는태그의종류와사용법 JSTL 제공하는태그사용 JSTL 라이브러리인 jstl.jar 파일이필요 https://maven-repository.dev.java.net/repository/jstl/jars/ 파일다운로드 WEB-INF/lib에복사 JSP 페이지에 <%@ taglib> 지시어를사용 prefix 속성은 uri 속성에명시된값대신해당페이지에서 prefix 속성값으로명시된값을사용하겠다는것을의미 <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %> SQL <%@ taglib prefix= sql" uri="http://java.sun.com/jstl/sql" %> XML <%@ taglib prefix= x" uri="http://java.sun.com/jstl/xml" %> Functions <%@ taglib prefix= fn" uri="http://java.sun.com/jstl/functions" %>

JSTL 사용예시 JSTL Core 태그 JSTL <c:out> 를사용하여간단한출력 <%-- 스크립트릿으로구현시 --%> <%= pagecontext.getattribute( member ).getname() %> <%-- JSTL 사용시 --%> <c:out value="${member.name}"/> Core 태크 <c:out> <c:set> <c:remove> <c:catch> <c:if> <c:choose> <c:when> <c:otherwise> <c:import> <c:foreach> <c:fortokens> <c:param> <c:redirect> <c:url> 설명출력에사용사용할변수를설정하는데사용설정한변수를제거하는데사용예외처리에사용조건문을처리하는데사용다중조건문을처리하는데사용 <choose> 의서브태크로조건문이참일때수행 <choose> 의서브태크로조건문이거짓일때수행 URL을사용하여다른리소스의결과를삽입하는데사용반복문을처리하는데사용구분자로분리된각각의토큰을처리하는데사용 URL 관련태크의파라미터를설정하는데사용설정한경로로이동하는데사용 URL을재작성하는데사용 변수지원 변수지정 변수설정 <c:set> EL 변수값설정 ( 생성또는변경 ) <c:set var=" 변수명 " value=" 값 " [scope=" 영역 "] /> <c:set var=" 변수명 " value=" 값 " [scope=" 영역 "]> 값 </c:set> <c:set> 특정 EL 변수의프로퍼티값설정 <c:set target=" 대상 " property=" 프로퍼티이름 " value=" 값 " /> <c:set target=" 대상 " property=" 프로퍼티이름 "> 값 </c:set> 변수삭제 <c:remove> scope 미지정시모든영역의변수삭제 <c:remove var="varname" [scope=" 영역 "] /> <c:set> 태그 EL 변수에값을설정 객체의멤버변수값설정 <c:set var= browser value= ${header[ User-Agent ]} /> <c:out value= ${browser} /> 속성 필수 기본값 설명 value N 없음 저장할변수값 target N 없음 값이저장할객체명 property N 없음 target 객체의멤버변수명 var N 없음 값이저장될변수명 scope N page 값이저장될범위 (page, session, request, application)

흐름제어 if - 조건이 true 일경우몸체내용실행 <c:if test=" 조건 "> </c:if> choose - when - otherwise switch - case - default와동일 <c:choose> <c:when test="${member.level == 'trial'}" > </c:when> <c:when test="${member.level == 'regular'}" > </c:when> <c:otherwise> </c:otherwise> </c:choose> 반복처리 foreach 집합이나콜렉션데이터사용 <c:foreach var=" 변수 " items=" 아이템 "> ${ 변수사용 } </c:foreach> 특정회수반복 <c:foreach var="i" begin="1" end="10" [step=" 값 "]> ${i} 사용 </c:foreach> varstatus 속성 <c:foreach var="item" items="<%= someitemlist %>" varstatus="status"> ${status.index + 1} 번째항목 : ${item.name} </c:foreach> index - 루프실행에서현재인덱스, count - 루프실행회수 begin - begin 속성값, end - end 속성값, step - step 속성값 first - 현재실행이첫번째실행인경우 true last - 현재실행이루프의마지막실행인경우 true current - 콜렉션중현재루프에서사용할객체 URL 관련태그 import - 외부 / 내부페이지를현재위치에삽입 <c:import url="url" [var=" 변수명 "] [scope=" 영역 "] [charencoding=" 캐릭터셋 "]> <c:param name=" 파라미터이름 " value=" 값 " /> </c:import> 상대 URL import 시 <jsp:include> 와동일하게동작 url - 절대 URL 과상대 URL 을알맞게생성 <c:url value="url" [var="varname"] [scope=" 영역 "]> <c:param name=" 이름 " value=" 값 " /> </c:url> 웹컨텍스트내에서절대경로사용시컨텍스트경로자동추가 redirect - 지정한페이지로리다이렉트 <c:redirect url="url" [context=" 콘텍스트경로 "]> <c:param name=" 이름 " value=" 값 " /> </c:redirect> 출력 <c:out> 데이터를출력 escapexml 속성이 true일경우다음과같이특수문자처리 < <, > > & &, ' &#039;, " " <c:out value="value" [escapexml="(true false)"] [default="defaultvalue"] /> <c:out value="value" [escapexml="(true false)"]> default value </c:out> 속성 필수 기본값 설명 value Y 없음 출력할내용이나표현식 default N tag body value 값에내용이없는경우출력할내용으로태그바디혹은속성값형태로올수있음 excapexml N true 출력할내용에 <,>,&,, 등의문자를일반문자로변환할지결정. 출력될내용이 html tag를포함하면값을 false로해야태그가반영된내용이화면에보임. 만일 true로하면태그가화면에그대로보임

예외처리 JSTL Formatting 태그 catch - 몸체에서발생한예외를변수에저장 <c:catch var="exname"> 예외가발생할수있는코드 </c:catch> ${exname} 사용 Formatting 태크 <fmt:formatnumber> <fmt:parsenumber> <fmt:formatdate> <fmt:parsedate> <fmt:bundle> <fmt:setbundle> <fmt:message> <fmt:setlocale> <fmt:timezone> <fmt:settimezone> <fmt:requestencoding> 설명숫자포멧팅문자열을분석해서숫자로변환 Date 객체포멧팅문자열을분석해서 Date 로변환사용할번들을지정리소스번들을읽어와특정변수에저장지역에알맞은메시지를출력 Locale 을지정시간대를지정시간대정보를특정변수에저장 Request 파라미터의캐릭터인코딩을지정 로케일지정및요청파라미터인코딩지정 <fmt:setlocale value=" 언어코드 " scope=" 범위 " /> 국제화태그가 Accept-Language 헤더에서지정한언어가아닌다른언어를사용하도록지정하는기능 <fmt:requestencoding value=" 캐릭터셋 " /> 요청파라미터의캐릭터인코딩을지정 request.setcharacterencoding(" 캐릭터셋 ") 과동일 <fmt:message> 태그 리소스번들범위에서메시지읽기 <fmt:bundle basename="resource.message" [prefix=" 접두어 "]> <fmt:message key="greeting" /> </fmt:bundle> 지정한번들에서메시지읽기 <fmt:setbundle var="message" basename="resource.message" /> <fmt:message bundle="${message}" key="greeting" /> <fmt:message> 태그의메시지읽는순서 bundle 속성에지정한리소스번들을사용 <fmt:bundle> 태그에중첩된경우 <fmt:bundle> 태그에서설정한리소스번들사용 1 과 2 가아닐경우기본리소스번들사용. 기본리소스번들은 web.xml 파일에서 javax.servlet.jsp.jstl.fmt.localizationcontext 콘텍스트속성을통해서설정가능

formatnumber 태그 숫자를포맷팅 <fmt:formatnumber value=" 숫자값 " [type=" 값타입 "] [pattern=" 패턴 "] [currentcode=" 통화코드 "] [currencysymbol=" 통화심볼 "] [groupingused="(true false)"] [var=" 변수명 "] [scope=" 영역 "] /> 속성 표현식 /EL 타입 설명 value 사용가능 String 또는 양식에맞춰출력할숫자 Number type 사용가능 String 어떤양식으로출력할지를정한다. number 는숫자형식, percent는 % 형식, currency는통화형식으로출력. 기본값은 number. pattern 사용가능 String 직접숫자가출력되는양식을지정한다.Dec imalformat 클래스에서정의되어있는패턴사용 var 사용불가 String 포맷팅한결과를저장할변수명.var속성을사용하지않으면결과가곧바로출력. scope 사용불가 String 변수를저장할영역. 기본값은 page 이다. parsenumber 태그 문자열을숫자데이터타입으로변환 <fmt:parsenumber value=" 값 " [type=" 값타입 "] [pattern=" 패턴 "] [parselocale=" 통화코드 "] [integeronly="true false"] [var=" 변수명 "] [scope=" 영역 "] /> 속성표현식 /EL 타입설명 value 사용가능 String 파싱할문자열 type 사용가능 String value 속성의문자열타입을지정. number, curre ncy, percentage 가올수있다. 기본값은 numbe r pattern 사용가능 String 직접파싱할때사용할양식을지정 var 사용불가 String 파싱한결과를저장할변수명을지정 scope 사용불가 String 변수를저장할영역을지정한다. 기본값은 page. formatdate 태그 날짜정보를담은객체 (Date) 를포맷팅 <fmt:formatdate value=" 날짜값 " [type=" 타입 "] [datestyle=" 날짜스타일 "] [timestyle=" 시간스타일 "] [pattern=" 패턴 "] [timezone=" 타임존 "] [var=" 변수명 "] [scope=" 영역 "] /> 속성표현식 /EL 타입설명 timezone 과 settimezone 국제화태그가사용할시간대설정 <fmt:timezone value="hongkong"> <!-- 사용하는시간을 Hongkong 시간대에맞춘다. --> <fmt:formatdate /> </fmt:timezone> value 사용가능 java.util.date 포맷팅할날짜및시간값 type 사용가능 String 날짜, 시간또는둘다포맷팅할지의여부를지정 datestyle 사용가능 String 날짜에대한포맷팅스타일을지정 timestyle 사용가능 String 시간에대한포맷팅스타일을지정 pattern 사용가능 String 직접파싱할때사용할양식을지정 var 사용불가 String 파싱한결과를저장할변수명을지정 scope 사용불가 String 변수를저장할영역을지정

web.xml, 국제화태그콘텍스트속성 JSTL SQL 태그 속성이름 javax.servlet.jsp.jstl.fmt.localizationcontext 설명 기본으로사용할리소드번들을지정한다. 리소스번들의 basename 을입력한다. javax.servlet.jsp.jstl.fmt.locale 기본으로사용할로케일을지정한다. javax.servlet.jsp.jstl.fmt.timezone 기본으로사용할시간대를지정한다. Sql 태크 <sql:setdatasource> <sql:query> <sql:update> <sql:dateparam> <sql:param> <sql:transaction> 설명 DataSource를설정하는데사용조회쿼리문을실행하는데사용삽입, 수정, 삭제쿼리문을실행하는데사용쿼리문에문자열형식의파라미터설정하는데사용쿼리문에날짜형식의파라미터설정하는데사용트랜잭션을구현하는데사용 JSTL XML 태그 XML 태크 설명 <x:out> XPath 표현식 <%= > <x:parse> XML 데이터파싱 <x:set> XPath 표현의변수지정 <x:if> XPath 표현조건처리 <x:foreach> XML 도큐먼트의노드 for <x:choose> 다중조건문을처리하는데사용 <x:when> <choose> 의서브태크로조건문이참일때수행 <x:otherwise> <choose> 의서브태크로조건문이거짓일때수행 <x:transform> XML 도큐먼트에서 XSL 변환 <x:param> <transform> 의서브태크로파라미터지정 JSTL Function 태그 Function 태크 설명 fn:contains() 검색대상문자열의포함여부를확인 fn:containsignorecase() 대소문자에상관없이검색대상문자열포함여부를확인 fn:starswith() 특정문자열로시작하는지여부를확인 fn:endswith() 특정문자열로끝나는지여부를확인 fn:escapexml() 문자열에포함된특수문자를특정코드로변환 fn:indexof() 검색대상문자열의첫위치값을반환 fn:join() 배열형태의문자열을설정한구분자로연결하여반환 fn:split() 문자열을설정한구분자로분리하여배열형태로반환 fn:length() 문자열의길이를반환 fn:replace() 검색대상문자열을설정한문자로변경하여반환 fn:substring() 특정위치의문자열을반환 fn:tolowercase() 모두소문자로변환 fn:touppercase() 모두대문자로변환 fn:trim() 문자열앞뒤의공백을제거하여반환

JSTL Core 태그 <c:choose> <c:when> <c:otherwise> <c:out> JSTL Core 태그 <c:foreach> JSTL SQL 태그 JSTL SQL 태그 <sql:setdatasource> <sql:query>

JSTL SQL 태그 JSTL SQL 태그 <sql:update> INSERT JSTL SQL 태그 <sql:update> INSERT JSTL SQL 태그 <sql:update> UPDATE

JSTL SQL 태그 <sql:update> UPDATE JSTL SQL 태그 <sql:update> DELETE JSTL SQL 태그 <sql:update> DELETE JSTL functions 태그 <fn:contains> <fn:containsignore>

JSTL functions 태그 <fn:split> <fn:join>