일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 서블릿 #Servlet #Request #Response #개발자
- #홍콩 #홍콩여행 #홍콩한달살기 #홍콩집밥 #홍콩생활 #홍콩베이징구스 #홍콩산책 #홍콩조깅 #홍콩우편함
- #홍콩 #홍콩한달살기 #홍콩버스 #버스어플 #홍콩음식 #홍콩여행 #kmb #lwb#홍
- #홍콩 #홍콩여애 #홍콩한달살기 #베트남식당 #viet'schoice #외식 #카레 #양지머리카레 #양지머리 #고기쌀국수 #육수존맛 #레몬차 #밀크티 #shatin #홍콩쇼핑 #asus노트북 #어댑터 #홍콩돼지코
- #라이브러리 #개발자 #REACT #Bootstrap #REST API
- 백엔드개념 #WAS
- 블로그 태그 #국비 #국비학원 #IT #개발자 #프로그래머 #신입 #코딩 #안드로이드 #자바 #JAVA #오라클 #Oracle #SQL #MYSQL #HTML #CSS #JAVASCRIPT #자바스크립트 #서블릿 #SERVLET #JSP #자바스프링 #데이터베이스 #
- #홍콩2층버스
- #홍콩쌀국수 #탐차이
- #홍콩 #홍콩여행 #홍콩한달살기 #옥토퍼스카드
- #라이브러리
- JSP #액션태그 #
- #라이브러리 #개발자 #REACT #Bootstrap #Visual Studio
- #홍콩 #홍콩여행 #홍콩한달살기 #홍콩사이언스파크 #홍콩산책 #홍콩야경 #홍콩턱돌이
- #홍콩여행 #홍콩국가 #홍콩지도 #홍콩날씨
- #국비 #국비학원 #IT #개발자 #프로그래머 #신입 #코딩 #안드로이드 #자바 #JAVA #오라클 #Oracle #SQL #MYSQL #HTML #CSS #JAVASCRIPT #자바스크립트 #서블릿 #SERVLET #JSP #자바스프링 #데이터베이스 #프레임워크
- #라이브러리 #개발자 #REACT #Bootstrap
- forward #include #param
- JSP #표현언어 #page #include #taglib
- Servlet #JSP #GET #POST #클라이언트
- #라이브러리 #개발자 #REACT #Bootstrap #REST API #웹 디자인 #디자인 툴
- Today
- Total
기분좋음
국비 56 일차 본문
JSTL
스크립트릿과 JSTL사이엔 변수 공유 하지않으므로, 따로 설정 해주어야 한다.
EX)
<%
Member arr = new Member();
%>
<c:set var="arr" value="<%=arr%>"/>
<c:if>조건문
-if문과 비슷 단, if~else문 제공X
<c:if test="조건식>
조건이 true 일경우 실행영역
</c:if>
<c:choose>조건문
-switch문과 비슷 여러조건 처리
<c:choose>
<c:when test="조건식"1> 조건식1이 참일경우 실행할 영역</c:when>
<c:when test="조건식"2> 조건식2이 참일경우 실행할 영역</c:when>
<c:when test="조건식"3> 조건식3이 참일경우 실행할 영역</c:when>
</c:choose>
<c:forEach>반복문
-향상된 forEach문 비슷 배열, 컬렉션등의 집합체에 저장된 값을 순차적으로 처리시 사용
<c:forEach var="변수" items="반복할 집합체" ..property>
반복할 코드
</c:forEach>
프로퍼티 | 설명 |
varStatus | 각 항목의 index사용시 반복상태등을 저장하는 변수 |
index | items 집합체의 반복중인 항목의 index (0부터 시작) |
count | 몇번째 반복중 count수 (1부터 시작) |
first | 반복의 처음인지 여부를 알려준다(boolean 타입) |
last | 반복의 마지막인지 여부를 알려준다(boolean 타입) |
begin | 반복 첫번째 항목의 index값 |
end | 반복 마지막 항목의 index값 |
step | 증가값 |
<c:forTokens>반복문
문자열을 구분자로 쪼개고 각각 쪼개진 문자열의 집합체로서 순차적으로 반복해서 사용하는 반복문
<c:forTokens var="토큰 저장할 변수" items="토큰으로 나눌 문자열" delims="구분자">
반복할 코드
</c:forTokens>
ex)
<body>
<c:forTokens var="city" items="서울,인천,대구,부산" delims=",">
${city}<br>
</c:forTokens><hr>
<c:forTokens var="city" items="서울,인천,대구,부산" delims=",">
${city}<br>
</c:forTokens>
</body>
구분자 , 로 구분해서 반복해준다.
<c:import> -<jsp:include>역할과 동일(웹페이지 url도 불러옴)
지정된 페이지를 불러와서 변수에 저장해 두고 해당 변수를 호출할 때 해당 페이지에서 가져온 결과를 출력
<c:import var="저장할 변수" url="URL 주소" scope="변수를 저장할 영역"
charEncoding="UTF-8">
</c:import>
ex)
<body>
<c:import url="http://localhost:8081/edu/6page/exam2forEach/foreach.jsp" var="data"></c:import>
<!-- url은 뭐든지 가능 네이버 화면도 출력가능 됨 -->
${data}
${data}
</body>
data에 url자체를 넣어주고, data변수로 불러올 수 있다.
<c:url> URL을 생성해서 적절한 위치에 사용
<c:url var="저장할 변수" value="URL" scope="변수를 저장할 영역>
</c:url>
<c:redirect>
지정한 페이지로 이동시 사용 -response.sendRedirect와 동일
<c:redirect url="URL"/>
간단하게 URL로 이동한다.
<c:out>
출력 태그 -표현식이나 표현언어와 동일 → 자주 사용X
<c:out value="출력할 값" [default="기본값"]/>
<c:catch>
예외처리를 위한 태그 (예외 발생시 잡아냄)
<c:catch var="발생한 예외가 저장될 변수">
예외 발생할 가능성있는 코드
</c:catch>
fmt태그
-포맷팅에 관련된 태그모음
-숫자, 날짜, 시간의 형식을 다루는데 사용
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
기능 | 태그 | 설명 |
숫자 날짜 양식 |
<fmt:formatNumber> | 숫자를 양식에 맞춰서 출력 |
<fmt:formatDate> | 날짜 정보 담고있는 객체를 포맷하여 출력 | |
<fmt:parseDate> | 문자열을 날자로 변환 | |
<fmt:parseNumber> | 문자열을 숫자로 변환 | |
<fmt:setTimeZone> | 시간대 별로 시간처리 기능 제공 | |
<fmt:timeZone> | 시간대 별로 시간처리 기능 제공 | |
로케일 지정 |
<fmt:setLocale> | 국제화 태그들이 사용할 로케일 지정 |
<fmt:requestEncoding> | 요청 파라미터의 인코딩 지정 | |
메세지 처리 |
<fmt:bundle> | 태그 몸체에서 사용할 리소스 번들(묶음) 지정 |
<fmt:message(param)> | 메세지 출력 | |
<fmt:setBundle> | 특정 리소스 번들 사용하도록 로딩 |
<fmt:formatNumber>
속성 | 표현식 | 타입 | 설명 |
value | true | String 또는 Number | 형식화 할 숫자 데이터 |
type | true | String | 숫자, 통화, 퍼센트중 형식 지정 |
pattern | true | String | 사용자가 지정한 형식 패턴 |
currencySymbol | true | String | 통화기호, 통화형식(type="currency") 입력후 적용 |
groupingUsed | true | boolean | 단위 구분자( , )의 사용 여부 true면 사용(기본) false면 미사용 |
var | false | String | 형식 출력 결과 문자열을 담는 scope에 해당하는 변수 이름 |
scope | false | String | var 속성에 지정한 변수가 효력을 발휘 할수있는 영역 지정 |
pattern #, 0, .으로 표기
#은 빈자리를 공백으로 표기
0은 빈자리를 0으로 채워 표기
ex) <fmt:formatNumber value="1234567.8" pattern="#,#00.0#" /> → 1,234,567.8
<fmt:formatNumber value="1234567.89" groupingUsed="false"/> → 1234567.89
<fmt:formatNumber value=“0.5” type=“percent” /> => 50%
<fmt:formatNumber value=“10000” type=“currency” currencySymbol=“$”/> → $10,000
<fmt:formatDate>
속성 | 표현식 | 타입 | 설명 |
value | true | java.util.Date | 형식화 될 Date와 time |
type | true | String | 형식화 할 데이터를 시간(time), 날짜(date), 둘다(both) 중 셋 중 하나를 지정 |
dateStyle | true | String | 정의된 날짜 형식 default, short, medium, long, full 중 하나를 지정 |
timeStyle | true | String | 정의된 시간 형식 short, medium, long, full 중 하나를 지정 |
pattern | true | String | 사용자 지정 형식 스타일 |
timeZone | true | String또는 java.util.TimeZone |
형식화된 시간에 나타날 타임존 |
var | false | String | 형식 출력 결과 문자열을 담는 scope에 해당하는 변수이름 |
scope | false | String | var의 scope |
ex)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> //사용할 jstl 선언
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<pre><c:set var="now" value="<%=new java.util.Date()%>"></c:set> // 날짜 객체 생성
\${now} : ${now}
<fmt:formatDate value="${now}"></fmt:formatDate>
date: <fmt:formatDate value="${now}" type="date"></fmt:formatDate>
time: <fmt:formatDate value="${now}" type="time"></fmt:formatDate>
both: <fmt:formatDate value="${now}" type="both"></fmt:formatDate>
default: <fmt:formatDate value="${now}" type="both" dateStyle="default" timeStyle="default"></fmt:formatDate>
short: <fmt:formatDate value="${now}" type="both" dateStyle="short" timeStyle="short"></fmt:formatDate>
medium: <fmt:formatDate value="${now}" type="both" dateStyle="medium" timeStyle="medium"></fmt:formatDate>
long: <fmt:formatDate value="${now}" type="both" dateStyle="long" timeStyle="long"></fmt:formatDate>
full: <fmt:formatDate value="${now}" type="both" dateStyle="full" timeStyle="full"></fmt:formatDate>
pattern="yyyy년 MM월 dd일 hh시 mm분 ss초":
<fmt:formatDate value="${now}" pattern="yyyy년 MM월 dd일 hh시 mm분 ss초"></fmt:formatDate>
</pre>
</body>
</html>
결과 값:
${now} : Mon Mar 14 11:48:23 KST 2022
2022. 3. 14
date: 2022. 3. 14
time: 오전 11:48:23
both: 2022. 3. 14 오전 11:48:23
default: 2022. 3. 14 오전 11:48:23
short: 22. 3. 14 오전 11:48
medium: 2022. 3. 14 오전 11:48:23
long: 2022년 3월 14일 (월) 오전 11시 48분 23초
full: 2022년 3월 14일 월요일 오전 11시 48분 23초 KST
pattern="yyyy년 MM월 dd일 hh시 mm분 ss초":
2022년 03월 14일 11시 48분 23초
<fmt:setTimeZone>-특정 지역 타임존 설정하는 태그
<fmt:setTimeZone value="타임존" />
<fmt:timeZone> -타임존을 부분 적용하는 태그
<fmt:timeZone value="타임존" />
타임존 적용 영역
</fmt:timeZone>
<fmt:setLocale>
통화 설정 태그
<fmt:setLocale value="언어코드_국가코드" />
ex) 한국 ko_KR 한글 영어 en_US 일본 ja_JP
<fmt:requestEncoding>
-POST방식으로 넘어온 데이터의 글자가 깨지지 않도록 처리하기 위한 태그
-기존 request.setCharacterEncoding()메소드와 같은 역할
<fmt:requestEncoding value="UTF-8" />
같은 역할 수행
<%
request.setCharacterEncoding("UTF-8");
%>
이름 :
<%=request.getParameter("name")%>
<fmt:requestEncoding value="UTF-8"></fmt:requestEncoding>
이름: <c:out value="${param.name}"></c:out>