Notice
Recent Posts
Recent Comments
ยซ   2024/12   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
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
Archives
Today
In Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

A Joyful AI Research Journey๐ŸŒณ๐Ÿ˜Š

[58] 230322 JSP Ch. 11 ํ‘œํ˜„ ์–ธ์–ด(Expression Language), Ch. 12 ํ‘œ์ค€ ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(JSTL), Ch. 13 ์ดํด๋ฆฝ์Šค๋ฅผ ์ด์šฉํ•œ ์›น ๊ฐœ๋ฐœ [K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ 58์ผ] ๋ณธ๋ฌธ

๐ŸŒณBootcamp Revision 2023โœจ/HTML5, CSS3, JSP

[58] 230322 JSP Ch. 11 ํ‘œํ˜„ ์–ธ์–ด(Expression Language), Ch. 12 ํ‘œ์ค€ ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(JSTL), Ch. 13 ์ดํด๋ฆฝ์Šค๋ฅผ ์ด์šฉํ•œ ์›น ๊ฐœ๋ฐœ [K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ 58์ผ]

yjyuwisely 2023. 3. 22. 15:51

230322 Wed 58th class

Ch. 11 ํ‘œํ˜„ ์–ธ์–ด(Expression Language)
Ch. 12 ํ‘œ์ค€ ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(JSTL) 
Ch. 13 ์ดํด๋ฆฝ์Šค๋ฅผ ์ด์šฉํ•œ ์›น ๊ฐœ๋ฐœ

์ง„๋„: p. 250 ~ (๊ต์žฌ: ์ตœ๋ฒ”๊ท ์˜ JSP 2.3 ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ: ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ค‘๊ธ‰๊นŒ์ง€, ์ €์ž: ์ตœ๋ฒ”๊ท )
์ฑ… ์˜ˆ์ œ ์ฝ”๋“œ: https://github.com/madvirus/jsp23
์ €์ž ๋ธ”๋กœ๊ทธ: https://javacan.tistory.com/

 

์ตœ๋ฒ”๊ท ์˜ JSP 2.3 ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ: ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ค‘๊ธ‰๊นŒ์ง€ | ์ตœ๋ฒ”๊ท  - ๊ต๋ณด๋ฌธ๊ณ 

์ตœ๋ฒ”๊ท ์˜ JSP 2.3 ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ: ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ค‘๊ธ‰๊นŒ์ง€ | [์ตœ๋ฒ”๊ท ์˜ JSP 2.3 ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ค‘๊ธ‰๊นŒ์ง€]๋Š” JSP 2.3์˜ ์ƒˆ๋กœ์šด ํŠน์ง• ๋ฐ˜์˜๊ณผ JSP๋ฅผ ์ง€์›ํ•˜๋Š” ์š”์†Œ์ธ ์„œ๋ธ”๋ฆฟ๊ณผ ํ‘œํ˜„ ์–ธ์–ด ๋“ฑ์˜ ์ƒˆ๋กœ์šด

product.kyobobook.co.kr


์˜ค๋Š˜ ๋ฐฐ์šด ๊ฒƒ ์ค‘ ๊ธฐ์–ตํ•  ๊ฒƒ์„ ์ •๋ฆฌํ–ˆ๋‹ค.


To parse, in computer science, is where a string of commands – usually a program – is separated into more easily processed components, which are analyzed for correct syntax and then attached to tags that define each component.


Ch. 11 ํ‘œํ˜„ ์–ธ์–ด(Expression Language)

01 ํ‘œํ˜„ ์–ธ์–ด๋ž€?
1.1 EL์˜ ๊ตฌ์„ฑ

02 EL ๊ธฐ์ดˆ
2.1 EL์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…๊ณผ ๋ฆฌํ„ฐ๋Ÿด
2.2 EL์˜ ๊ธฐ๋ณธ ๊ฐ์ณฌ
2.3 ๊ฐ์ฒด ์ ‘๊ทผ
2.4 ๊ฐ์ฒด ํƒ์ƒ‰
2.5 ์ˆ˜์น˜ ์—ฐ์‚ฐ์ž
2.6 ๋น„๊ต ์—ฐ์‚ฐ์ž
2.7 ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž
2.8 empty ์—ฐ์‚ฐ์ž
2.9 ๋น„๊ต ์—ฐ์‚ฐ์ž
2.10 ๋ฌธ์ž์—ด ์—ฐ๊ฒฐ
2.11 ์ปฌ๋ ‰์…˜
2.12 ์„ธ๋ฏธ์ฝœ๋ก  ์—ฐ์‚ฐ์ž
2.13 ํ• ๋‹น ์—ฐ์‚ฐ์ž
2.14 ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„
2.15 ํŠน์ˆ˜ ๋ฌธ์ž ์ฒ˜๋ฆฌํ•˜๊ธฐ 

03 EL์—์„œ ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ

04 EL์—์„œ ์ •์  ๋ฉ”์„œ๋“œ ํ˜ธ์ถœํ•˜๊ธฐ 1
4.1 ์˜ˆ์ œ์—์„œ ์‚ฌ์šฉํ•  ํด๋ž˜์Šค ์ž‘์„ฑ
4.2 ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•œ TLD ํŒŒ์ผ ์ž‘์„ฑ
4.3 web.xml ํŒŒ์ผ์— TLD ๋‚ด์šฉ ์ถ”๊ฐ€ํ•˜๊ธฐ
4.4 EL์—์„œ ํ•จ์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ

05 EL์—์„œ ์ •์  ๋ฉ”์„œ๋“œ ํ˜ธ์ถœํ•˜๊ธฐ 2

06 ๋žŒ๋‹ค์‹ ์‚ฌ์šฉํ•˜๊ธฐ

07 ์ŠคํŠธ๋ฆผ API ์‚ฌ์šฉํ•˜๊ธฐ
7.1 ์ŠคํŠธ๋ฆผ API ๊ธฐ๋ณธ
7.2 stream()์„ ์ด์šฉํ•œ ์ŠคํŠธ๋ฆผ ์ƒ์„ฑ
7.3 filter()๋ฅผ ์ด์šฉํ•œ ๊ฑธ๋Ÿฌ๋‚ด๊ธฐ
7.4 map()์„ ์ด์šฉํ•œ ๋ณ€ํ™˜
7.5 sorted()๋ฅผ ์ด์šฉํ•œ ์ •๋ ฌ
7.6 limit()์„ ์ด์šฉํ•œ ๊ฐœ์ˆ˜ ์ œํ•œ
7.7 toList()์™€ toArray()๋ฅผ ์ด์šฉํ•œ ๊ฒฐ๊ณผ ์ƒ์„ฑ
7.8 count()๋ฅผ ์ด์šฉํ•œ ๊ฐœ์ˆ˜ ํ™•์ธ
7.9 Optional ํƒ€์ž…
7.10 sum()๊ณผ average()๋ฅผ ์ด์šฉํ•œ ์ˆ˜์น˜ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ ์ƒ์„ฑ
7.11 min()๊ณผ max()๋ฅผ ์ด์šฉํ•œ ์ตœ์†Œ/์ตœ๋Œ€ ๊ตฌํ•˜๊ธฐ
7.12 anyMatch(), allMatch(), nonMatch()๋ฅผ ์ด์šฉํ•œ ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ

08 ํ‘œํ˜„ ์–ธ์–ด ๋น„ํ™œ์„ฑํ™” ๋ฐฉ๋ฒ•
8.1 web.xml ํŒŒ์ผ์— EL ๋น„ํ™œ์„ฑํ™” ์˜ต์…˜ ์ถ”๊ฐ€ํ•˜๊ธฐ
8.2 JSP ํŽ˜์ด์ง€์— EL ๋น„ํ™œ์„ฑํ™”์‹œํ‚ค๊ธฐ
8.3 web.xml ํŒŒ์ผ์˜ ๋ฒ„์ „์— ๋”ฐ๋ฅธ EL์ฒ˜๋ฆฌ

11.1 ํ‘œํ˜„ ์–ธ์–ด(Expression Language)๋ž€? p. 250

ํ‘œํ˜„์–ธ์–ด: ๋‹ค๋ฅธ ํ˜•ํƒœ์˜ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋กœ์„œ ์Šคํฌ๋ฆฝํŠธ ์š”์†Œ ์ค‘์˜ ํ•˜๋‚˜์ด๋‹ค.
ํ‘œํ˜„์‹๋ณด๋‹ค ๊ฐ„๊ฒฐํ•˜๊ณ  ํŽธ๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค.

์Šคํฌ๋ฆฝํŠธ ์š”์†Œ
1. ์Šคํฌ๋ฆฝํŠธ๋ฆฟ
<% ์ž๋ฐ”๋ฌธ๋ฒ• %>

2. ํ‘œํ˜„์‹
<%= ์ถœ๋ ฅ๋‚ด์šฉ %>

3. ์„ ์–ธ๋ถ€
<%! ํ•จ์ˆ˜ ์„ ์–ธ%>
<%

%> ๋Š” ์ž๋ฐ”์ด๋‹ค. 

์˜ˆ์‹œ)

<%
	for(int i=1;i<11;i++){
%>		
		<%= i%><br> //HTML(JSP)
		<!-- System.out.println(i);์ด ์•„๋‹ˆ๋‹ค. -->
<%		
	}
%>

1) ํ‘œํ˜„ ์–ธ์–ด (EL(Expression Language))์˜ ๊ตฌ์„ฑ

${expr}

11.2 ํ‘œํ˜„ ์–ธ์–ด (EL(Expression Language)) ๊ธฐ์ดˆ
1) ํ‘œํ˜„ ์–ธ์–ด (EL(Expression Language))์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…๊ณผ ๋ฆฌํ„ฐ๋Ÿด
2) ํ‘œํ˜„ ์–ธ์–ด (EL(Expression Language))์˜ ๊ธฐ๋ณธ ๊ฐ์ณฌ
3) ๊ฐ์ฒด ์ ‘๊ทผ
4) ๊ฐ์ฒด ํƒ์ƒ‰
5) ์ˆ˜์น˜ ์—ฐ์‚ฐ์ž
6) ๋น„๊ต ์—ฐ์‚ฐ์ž
7) ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž
8) empty ์—ฐ์‚ฐ์ž
9) ๋น„๊ต ์—ฐ์‚ฐ์ž
10) ๋ฌธ์ž์—ด ์—ฐ๊ฒฐ
11) ์ปฌ๋ ‰์…˜
12) ์„ธ๋ฏธ์ฝœ๋ก  ์—ฐ์‚ฐ์ž
13) ํ• ๋‹น ์—ฐ์‚ฐ์ž
14) ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„
15) ํŠน์ˆ˜ ๋ฌธ์ž ์ฒ˜๋ฆฌํ•˜๊ธฐ


11.3 ํ‘œํ˜„ ์–ธ์–ด (EL(Expression Language))์—์„œ ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ


11.4 ํ‘œํ˜„ ์–ธ์–ด (EL(Expression Language))์—์„œ ์ •์  ๋ฉ”์„œ๋“œ ํ˜ธ์ถœํ•˜๊ธฐ 1
1) ์˜ˆ์ œ์—์„œ ์‚ฌ์šฉํ•  ํด๋ž˜์Šค ์ž‘์„ฑ
2) ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•œ TLD ํŒŒ์ผ ์ž‘์„ฑ
3) web.xml ํŒŒ์ผ์— TLD ๋‚ด์šฉ ์ถ”๊ฐ€ํ•˜๊ธฐ
4) EL์—์„œ ํ•จ์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ


11.5 ํ‘œํ˜„ ์–ธ์–ด (EL(Expression Language))์—์„œ ์ •์  ๋ฉ”์„œ๋“œ ํ˜ธ์ถœํ•˜๊ธฐ 2


11.6 ๋žŒ๋‹ค์‹ ์‚ฌ์šฉํ•˜๊ธฐ


11.7 ์ŠคํŠธ๋ฆผ API ์‚ฌ์šฉํ•˜๊ธฐ
1) ์ŠคํŠธ๋ฆผ API ๊ธฐ๋ณธ
2) stream()์„ ์ด์šฉํ•œ ์ŠคํŠธ๋ฆผ ์ƒ์„ฑ
3) filter()๋ฅผ ์ด์šฉํ•œ ๊ฑธ๋Ÿฌ๋‚ด๊ธฐ
4) map()์„ ์ด์šฉํ•œ ๋ณ€ํ™˜
5) sorted()๋ฅผ ์ด์šฉํ•œ ์ •๋ ฌ
6) limit()์„ ์ด์šฉํ•œ ๊ฐœ์ˆ˜ ์ œํ•œ
7) toList()์™€ toArray()๋ฅผ ์ด์šฉํ•œ ๊ฒฐ๊ณผ ์ƒ์„ฑ
8) count()๋ฅผ ์ด์šฉํ•œ ๊ฐœ์ˆ˜ ํ™•์ธ
9) Optional ํƒ€์ž…
10) sum()๊ณผ average()๋ฅผ ์ด์šฉํ•œ ์ˆ˜์น˜ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ ์ƒ์„ฑ
11) min()๊ณผ max()๋ฅผ ์ด์šฉํ•œ ์ตœ์†Œ/์ตœ๋Œ€ ๊ตฌํ•˜๊ธฐ
12) anyMatch(), allMatch(), nonMatch()๋ฅผ ์ด์šฉํ•œ ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ


11.8 ํ‘œํ˜„ ์–ธ์–ด ๋น„ํ™œ์„ฑํ™” ๋ฐฉ๋ฒ•
1) web.xml ํŒŒ์ผ์— EL ๋น„ํ™œ์„ฑํ™” ์˜ต์…˜ ์ถ”๊ฐ€ํ•˜๊ธฐ
2) JSP ํŽ˜์ด์ง€์— EL ๋น„ํ™œ์„ฑํ™”์‹œํ‚ค๊ธฐ
3) web.xml ํŒŒ์ผ์˜ ๋ฒ„์ „์— ๋”ฐ๋ฅธ EL์ฒ˜๋ฆฌ


Ch. 12 ํ‘œ์ค€ ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(JSTL(JSP Standard Tag Library)) p. 292

์ฑ…์˜ ๋ชฉ์ฐจ
01 JSTL์ด๋ž€

1.1 JSTL์ด ์ œ๊ณตํ•˜๋Š” ํƒœ๊ทธ์˜ ์ข…๋ฅ˜
1.2 JSTL ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ›๊ธฐ

02 ์ฝ”์–ด ํƒœ๊ทธ
2.1 ๋ณ€์ˆ˜ ์ง€์› ํƒœ๊ทธ
   2.1.1 <c:set> ํƒœ๊ทธ

   2.1.2 <c:remove> ํƒœ๊ทธ
2.2 ํ๋ฆ„ ์ œ์–ด ํƒœ๊ทธ
   2.2.1 <c:if> ํƒœ๊ทธ

   2.2.2 <c:choose>, <c:when>, <c:otherwise> ํƒœ๊ทธ
   2.2.3 <c:forEach> ํƒœ๊ทธ
   2.2.4 <c:forTokens> ํƒœ๊ทธ
2.3 URL ์ฒ˜๋ฆฌ ํƒœ๊ทธ
   2.3.1 <c:url> ํƒœ๊ทธ

   2.3.2 <c:redirect> ํƒœ๊ทธ
2.4 ๊ธฐํƒ€ ์ฝ”์–ด ํƒœ๊ทธ
   2.4.1 <c:out> ํƒœ๊ทธ

   2.4.2 <c:catch> ํƒœ๊ทธ

03 ๊ตญ์ œํ™” ํƒœ๊ทธ
3.1 ๋กœ์ผ€์ผ ์ง€์ • ํƒœ๊ทธ
3.2 ์˜ˆ์ œ๋กœ ์‚ฌ์šฉํ•  ๋ฆฌ์†Œ์Šค ๋ฒˆ๋“ค
3.3 ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ ํƒœ๊ทธ
   3.3.1 <fmt:bundle> ํƒœ๊ทธ์™€ <fmt:message> ํƒœ๊ทธ

   3.3.2 <fmt:setBundle> ํƒœ๊ทธ์™€ <fmt:message> ํƒœ๊ทธ
   3.3.3 <fmt:message> ํƒœ๊ทธ์™€ ๋ฆฌ์†Œ์Šค ๋ฒˆ๋“ค ๊ฒ€์ƒ‰ ์ˆœ์„œ
3.4 ์ˆซ์ž ๋ฐ ๋‚ ์งœ ํฌ๋งทํŒ… ์ฒ˜๋ฆฌ ํƒœ๊ทธ
   3.4.1 <fmt:formatNumber> ํƒœ๊ทธ
   3.4.2 <fmt:parseNumber> ํƒœ๊ทธ
   3.4.3 <fmt:formatDate> ํƒœ๊ทธ
   3.4.4 <fmt:parseDate> ํƒœ๊ทธ
   3.4.5 <fmt:timeZone> ํƒœ๊ทธ์™€ <fmt:setTimeZone> ํƒœ๊ทธ

3.5 web.xml ํŒŒ์ผ์— ๊ตญ์ œํ™” ๊ด€๋ จ ๊ธฐ๋ณธ๊ฐ’ ์„ค์ •ํ•˜๊ธฐ 

04 ํ•จ์ˆ˜

12.1 ํ‘œ์ค€ ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(JSTL(JSP Standard Tag Library))์ด๋ž€

์ž๋ฐ” ๋ฌธ๋ฒ•์„ ํƒœ๊ทธํ™”์‹œํ‚จ ๊ฒƒ์ด๋‹ค.

<%
	//์ž๋ฐ”
    if(list.size>0){
    		for(int i=0;i<list.size();i++){
            		Data data = (Data) list.get(i);
     } //if, for: HTML -> Tag
%>

1) ํ‘œ์ค€ ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(JSTL(JSP Standard Tag Library))์ด ์ œ๊ณตํ•˜๋Š” ํƒœ๊ทธ์˜ ์ข…๋ฅ˜

2) ํ‘œ์ค€ ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(JSTL(JSP Standard Tag Library)) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ›๊ธฐ

https://central.sonatype.com/?smo=true

https://repo1.maven.org/maven2/jstl/jstl/1.2/์—์„œ ์•„๋ž˜ jstl-1.2.jar์„ ๋‹ค์šด ๋ฐ›๋Š”๋‹ค.

ํ†ฐ์บฃ lib์— ๋„ฃ๋Š”๋‹ค.

์ดํด๋ฆฝ์Šค์˜ ์•„๋ž˜ ๊ฒฝ๋กœ์˜ lib์— ๋ถ™์—ฌ๋„ฃ๋Š”๋‹ค.

์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์“ด๋‹ค.

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

prefix="c"
ํƒœ๊ทธ๋“ค์„ ๋ณด๋ฉด c๋กœ ์‹œ์ž‘ํ•œ๋‹ค.

์ฐธ๊ณ : https://heytech.tistory.com/190


12.2 ์ฝ”์–ด ํƒœ๊ทธ

์ฐธ๊ณ : https://www.w3schools.in/jsp/jstl-core-tags

1) ๋ณ€์ˆ˜ ์ง€์› ํƒœ๊ทธ p. 296

   1.1 <c:set> ํƒœ๊ทธ

<c:set> ํƒœ๊ทธ๋Š” EL(ํ‘œํ˜„ ์–ธ์–ด(Expression Language)) ๋ณ€์ˆ˜์˜ ๊ฐ’์ด๋‚˜ ๋ณ€์ˆ˜์˜ ํ”„๋กœํผํ‹ฐ ๊ฐ’์„ ์ง€์ •ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.
<c:set> ํƒœ๊ทธ์˜ ์ฒซ ๋ฒˆ์งธ ์‚ฌ์šฉ๋ฐฉ๋ฒ•์€ EL ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

<c:set var="๋ณ€์ˆ˜๋ช…" value="๊ฐ’" [scope="์˜์—ญ"]/>
<c:set var="๋ณ€์ˆ˜๋ช…" [scope="์˜์—ญ"]>๊ฐ’</c:set>

   1.2 <c:remove> ํƒœ๊ทธ

remove ํƒœ๊ทธ๋Š” set ํƒœ๊ทธ๋กœ ์ง€์ •ํ•œ ๋ณ€์ˆ˜๋ฅผ ์‚ญ์ œํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.

<c:remove var="varName" [scope="์˜์—ญ"] />

2) ํ๋ฆ„ ์ œ์–ด ํƒœ๊ทธ p. 299

   2.1 <c:if> ํƒœ๊ทธ

๋‹จ์ˆœ if๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.

์ž๋ฐ” ์–ธ์–ด์˜ if ๋ธ”๋ก๊ณผ ๋น„์Šทํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ๋‹จ์ˆœํ•œ if ๋ธ”๋ก์„ ์‰ฝ๊ฒŒ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.

<c:if test="์กฐ๊ฑด">
...
</c:if>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>  
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Examples</title>
</head>
<body>

<c:if test="true">
	๋ฌด์กฐ๊ฑด ์‹คํ–‰<br>
</c:if>

<% // ์ž๋ฐ”
	String name="bk";
	if(name.equals("bk")){
%>	
	name ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๊ฐ’์ด ${param.name} ์ž…๋‹ˆ๋‹ค. <!-- HTML์ด๋‹ค.(Body ํƒœ๊ทธ์— ์žˆ๋Š” ๋‚ด์šฉ) -->
<% //์ž๋ฐ”
	}
%>	

<%-- <% // ์ž๋ฐ”
	String name="bk";
	if(name.equals("bk")){
	out.print(name);
	}
%> --%>

<c:if test="${param.name == 'bk' }">
	name ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๊ฐ’์ด ${param.name} ์ž…๋‹ˆ๋‹ค.
</c:if>
</body>
</html>

๊ฒฐ๊ณผ)


   2.2 <c:choose>, <c:when>, <c:otherwise> ํƒœ๊ทธ

choose if
when else if
otherwise else

2023.02.02 - [๐ŸŒณK-Digital Revision 2023โœจ/Java] - [25] 230203 Java Ch. 4 ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ˜๋ณต๋ฌธ: 1. ์กฐ๊ฑด๋ฌธ: if๋ฌธ, switch๋ฌธ [K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ 25์ผ]

<c:choose>๋Š” switch์— ํ•ด๋‹น๋˜๊ณ  <c:when>๋Š” case์— ํ•ด๋‹น๋˜๋ฉฐ, <c:otherwise>๋Š” default์— ํ•ด๋‹น๋œ๋‹ค.

<c:choose> ํƒœ๊ทธ๋Š” ์ž๋ฐ”์˜ switch ๊ตฌ๋ฌธ๊ณผ if-else ๋ธ”๋ก์„ ํ˜ผํ•ฉํ•œ ํ–ฅํƒœ๋กœ์„œ ๋‹ค์ˆ˜์˜ ์กฐ๊ฑด๋ฌธ์„ ํ•˜๋‚˜์˜ ๋ธ”๋ก์—์„œ ์ˆ˜ํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

<c:choose>
	<c:when test="${member.level == 'trial'}">
    ...
    </c:when>
	<c:when test="${member.level == 'regular'}">
    ...
    </c:when>
    <c:when test="${member.level == 'provider'}">
    ...
    </c:when>
    <c:otherwise>
    ...
    </c:otherwise>
</c:choose>

   2.3 <c:forEach> ํƒœ๊ทธ p. 303

forEach ํƒœ๊ทธ๋Š” ๋ฐฐ์—ด, Collection ๋˜๋Š” Map์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ฐ’๋“ค์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
์ž๋ฐ”์˜ for, do-while ๋“ฑ์„ ๋Œ€์‹ ํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

- forEach ํƒœ๊ทธ์˜ ๊ธฐ๋ณธ์ ์ธ ์‚ฌ์šฉ๋ฐฉ๋ฒ•

<c:forEach var="๋ณ€์ˆ˜" items="์•„์ดํ…œ">
...
<tr>
	<td align="right" bgcolor="#ffffff">
	${๋ณ€์ˆ˜์‚ฌ์šฉ}
</td>
...
</c:forEach>

items ์†์„ฑ์—๋Š” Map, ๋ฐฐ์—ด, Collection์ด ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
๋ฐฐ์—ด์˜ ๊ฒฝ์šฐ๋Š” ๊ฐ์ฒด์˜ ๋ฐฐ์—ด๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ๋ฐฐ์—ด์— ๋Œ€ํ•ด์„œ๋„ ์•Œ๋งž๊ฒŒ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋ฉฐ, ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ Integer๋‚˜ Double๊ณผ ๊ฐ™์€ ๋ž˜ํผ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋œ๋‹ค.



forEach ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ž๋ฐ”์˜ for ๊ตฌ๋ฌธ๊ณผ ๊ฐ™์€ ํšจ๊ณผ ๊ฐ€๋Šฅ
begin ์†์„ฑ๊ณผ end ์†์„ฑ์„ ํ†ตํ•ด ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•ด์„œ forEach ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.
ex) var ์†์„ฑ์— ์ง€์ •ํ•œ ๋ณ€์ˆ˜ i๋Š” 1๋ถ€ํ„ฐ 10๊นŒ์ง€์˜ ๊ฐ’์„ ์ฐจ๋ก€๋Œ€๋กœ ๊ฐ–๊ฒŒ ๋œ๋‹ค.

<c:forEach var="i" begin="1" end="10">
	${i}์‚ฌ์šฉ
</c:forEach>

//JSTL
<c:forEach var="i" items="${intArray}">

</c:forEach>

//์ž๋ฐ”
int[] intArray = new int[3];

for(int i=0; i<3; i++){} // ์ผ๋ฐ˜์ ์ธ for๋ฌธ

for(int i : intArray){} // ํ–ฅ์ƒ๋œ for(๋ฐฐ์—ด์—์„œ๋งŒ)

์˜ˆ์‹œ)

	<table border="1">
	<tr>
		<td>ID</td><td>๋น„๋ฐ€๋ฒˆํ˜ธ</td><td>์ฃผ์†Œ</td><td>ํฐ๋ฒˆํ˜ธ</td><td>์ด๋ฉ”์ผ</td><td>์ด๋ฆ„</td><td>์ƒ์ผ</td>
	</tr>
	<c:forEach var="list" items="${memlist}"> <!-- ๋ฐ˜๋ณตํ•œ๋‹ค. -->
		<tr>
		<td>${list.id}</td>
		<td>${list.password}</td>
		<td>${list.addr}</td>
		<td>${list.phone}</td>
		<td>${list.email}</td>
		<td>${list.name}</td>
		<td>${list.age}</td>
	</tr>
	</c:forEach>
	</table>

๊ฒฐ๊ณผ)


   2.4 <c:forTokens> ํƒœ๊ทธ

java.util.StringTokenizer ํด๋ž˜์Šค์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ํƒœ๊ทธ๋‹ค.

<c:forTokens var="token" items="๋ฌธ์ž์—ด" delims="๊ตฌ๋ถ„์ž">
	${token}์˜ ์‚ฌ์šฉ
</c:forTokens>
<c:forTokens var="color" items="red,green,blue" delims=",">
${color}
</c:forTokens>

3) URL ์ฒ˜๋ฆฌ ํƒœ๊ทธ

   3.1 <c:url> ํƒœ๊ทธ

url ์ƒ์„ฑ

<c:url value="URL" [var="varName"] [scope="์˜์—ญ"]
	<c:param name="์ด๋ฆ„" value="๊ฐ’" />
</c:url>


   3.2 <c:redirect> ํƒœ๊ทธ

๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์ฒ˜๋ฆฌ

<c:redirect value="URL" [context="์ปจํ…์ŠคํŠธ๊ฒฝ๋กœ"]
	<c:param name="์ด๋ฆ„" value="๊ฐ’" />
</c:redirect>
<c:redirect url="http://search.daum.net/search">
	<c:param name="w" value="blog" />
    <c:param name="q" value="๋ณด๋ผ๋งค ๊ณต์›" />
</c:redirect>

4) ๊ธฐํƒ€ ์ฝ”์–ด ํƒœ๊ทธ

   4.1 <c:out> ํƒœ๊ทธ

JspWriter์— ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ํƒœ๊ทธ

<c:out value="value" [escapeXml="(true|false)"][default="๊ธฐ๋ณธ๊ฐ’"] />

<c:out value="value" [escapeXml="(true|false)"]>๊ธฐ๋ณธ๊ฐ’</c:out>

   4.2 <c:catch> ํƒœ๊ทธ

๋ฐœ์ƒ๋œ ์ต์…‰์…˜์„ EL ๋ณ€์ˆ˜์— ์ €์žฅํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ํƒœ๊ทธ

<c:catch var="exName">
...
์ต์„ผ์…˜์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ
...
</c:catch>
...
${exName} ์‚ฌ์šฉ

12.3 ๊ตญ์ œํ™” ํƒœ๊ทธ p. 315

ํŠน์ • ์ง€์—ญ์— ๋”ฐ๋ผ ์•Œ๋งž์€ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ด์•ผ ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
ex) ํ•œ๊ธ€ ๋ธŒ๋ผ์šฐ์ €์— ์ ‘์†ํ•˜๋ฉด ํ•œ๊ธ€ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๊ณ , ์˜๋ฌธ ๋ธŒ๋ผ์šฐ์ €์— ์ ‘์†ํ•˜๋ฉด ์˜๋ฌธ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ด์•ผ ํ•  ๋•Œ ๊ตญ์ œํ™” ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

1) ๋กœ์ผ€์ผ ์ง€์ • ํƒœ๊ทธ

- <fmt:setLocale>: ๊ตญ์ œํ™” ํƒœ๊ทธ๋“ค์ด ์‚ฌ์šฉํ•  ๋กœ์ผ€์ผ์„ ์ง€์ •ํ•œ๋‹ค.
- <fmt:requestEncoding>: ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์บ๋ฆญํ„ฐ ์ธ์ฝ”๋”ฉ์„ ์ง€์ •ํ•œ๋‹ค.

2) ์˜ˆ์ œ๋กœ ์‚ฌ์šฉํ•  ๋ฆฌ์†Œ์Šค ๋ฒˆ๋“ค
3) ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ ํƒœ๊ทธ
   3.1 <fmt:bundle> ํƒœ๊ทธ์™€ <fmt:message> ํƒœ๊ทธ
   3.2 <fmt:setBundle> ํƒœ๊ทธ์™€ <fmt:message> ํƒœ๊ทธ
   3.3 <fmt:message> ํƒœ๊ทธ์™€ ๋ฆฌ์†Œ์Šค ๋ฒˆ๋“ค ๊ฒ€์ƒ‰ ์ˆœ์„œ


4) ์ˆซ์ž ๋ฐ ๋‚ ์งœ ํฌ๋งทํŒ… ์ฒ˜๋ฆฌ ํƒœ๊ทธ p. 324

- ์ˆซ์ž ์ถœ๋ ฅ๊ณผ ํŒŒ์‹ฑ ๊ด€๋ จ: <fmt:formatNumber>, <fmt:parseNumber>
- ๋‚ ์งœ ์ถœ๋ ฅ๊ณผ ํŒŒ์‹ฑ ๊ด€๋ จ: <fmt:formatDate>, <fmt:parseDate>
- ์‹œ๊ฐ„๋Œ€ ์„ค์ • ๊ด€๋ จ: <fmt:setTimeZone>, <fmt:timeZone>


   4.1 <fmt:formatNumber> ํƒœ๊ทธ

์ˆซ์ž ์–‘์‹์— ๋งž์ถฐ ์ถœ๋ ฅํ•œ๋‹ค.
์˜ˆ์ œ 12-13) use_number_tag.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head><title>numberFormat ํƒœ๊ทธ ์‚ฌ์šฉ</title></head>
<body>

<c:set var="price" value="10000" />
<fmt:formatNumber value="${price}" type="number" var="numberType" />
<br/>
ํ†ตํ™”: <fmt:formatNumber value="${price}" 
            type="currency" currencySymbol="์›" />
<br/>
ํผ์„ผํŠธ: <fmt:formatNumber value="${price}" 
            type="percent" groupingUsed="false" />
<br/>
์ˆซ์ž: ${numberType}
<br/>
ํŒจํ„ด: <fmt:formatNumber value="${price}" pattern="00000000.00"/>
</body>
</html>
</body>
</html>

groupingUsed="true"์ด๋ฉด 100๋‹จ์œ„๋กœ ,๊ฐ€ ์ฐํžŒ๋‹ค. (๊ธฐ๋ณธ๊ฐ’ true)


   4.2 <fmt:parseNumber> ํƒœ๊ทธ

์˜ˆ์ œ 12-14) use_date_tag.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head><title>numberFormat ํƒœ๊ทธ ์‚ฌ์šฉ</title></head>
<body>

<c:set var="now" value="<%= new java.util.Date() %>" />
<!-- ${now} -->
<fmt:formatDate value="${now}" type="date" dateStyle="full" /> <br>
<fmt:formatDate value="${now}" type="date" dateStyle="short" /> <br>
<fmt:formatDate value="${now}" type="time" /> <br>
<fmt:formatDate value="${now}" type="both" 
                dateStyle="full" timeStyle="full" /> <br>
<fmt:formatDate value="${now}" pattern="z a h:mm" /> <br>
<fmt:formatDate value="${now}" pattern="yyyy-MM-dd HH:mm:ss" />

</body>
</html>

MM: Month
mm: minute์— ์œ ์˜ํ•œ๋‹ค.

   4.3 <fmt:formatDate> ํƒœ๊ทธ
   4.4 <fmt:parseDate> ํƒœ๊ทธ
   4.5 <fmt:timeZone> ํƒœ๊ทธ์™€ <fmt:setTimeZone> ํƒœ๊ทธ

5) web.xml ํŒŒ์ผ์— ๊ตญ์ œํ™” ๊ด€๋ จ ๊ธฐ๋ณธ๊ฐ’ ์„ค์ •ํ•˜๊ธฐ

12.4 ํ•จ์ˆ˜


Ch. 13 ์ดํด๋ฆฝ์Šค๋ฅผ ์ด์šฉํ•œ ์›น ๊ฐœ๋ฐœ

์ฑ…์˜ ๋ชฉ์ฐจ
01 ์ดํด๋ฆฝ์Šค ์„ค์น˜ ๋ฐ ์‹คํ–‰ํ•˜๊ธฐ

02 ์„œ๋ฒ„ ์‹คํ–‰ ํ™˜๊ฒฝ ์„ค์ •ํ•˜๊ธฐ

03 UTF-8 ์„ค์ •

04 ์›น ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ

05 JSP์™€ ์ž๋ฐ” ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
5.1 JSP ์ถ”๊ฐ€ํ•˜๊ธฐ
5.2 ์ž๋ฐ” ์ฝ”๋“œ ์ถ”๊ฐ€ํ•˜๊ธฐ
5.3 jar ํŒŒ์ผ ์ถ”๊ฐ€ํ•˜๊ธฐ 

06 ์„œ๋ฒ„๋ฅผ ์ด์šฉํ•ด์„œ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ํ•˜๊ธฐ

07 ๋ฐฐํฌํ•  WAR ํŒŒ์ผ ์ƒ์„ฑํ•˜๊ธฐ

13.1 ์ดํด๋ฆฝ์Šค ์„ค์น˜ ๋ฐ ์‹คํ–‰ํ•˜๊ธฐ p. 337

13.2 ์„œ๋ฒ„ ์‹คํ–‰ ํ™˜๊ฒฝ ์„ค์ •ํ•˜๊ธฐ


13.3 UTF-8 ์„ค์ •


13.4 ์›น ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ

13.5 JSP์™€ ์ž๋ฐ” ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
1) JSP ์ถ”๊ฐ€ํ•˜๊ธฐ

2) ์ž๋ฐ” ์ฝ”๋“œ ์ถ”๊ฐ€ํ•˜๊ธฐ
3) jar ํŒŒ์ผ ์ถ”๊ฐ€ํ•˜๊ธฐ 

๋ฐ์ดํ„ฐ ์—ฐ๊ฒฐ ์‹œํ‚ฌ ๋•Œ ํ•„์š”ํ•˜๋‹ค.
12์žฅ์—์„œ JSTL์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด jstl-1.2.jar ํŒŒ์ผ์„ WEB-INF/lib ํด๋”์— ๋ณต์‚ฌํ–ˆ๋‹ค.


13.6 ์„œ๋ฒ„๋ฅผ ์ด์šฉํ•ด์„œ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ํ•˜๊ธฐ

Run As - Run on Server ๋ฉ”๋‰ด๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

13.7 ๋ฐฐํฌํ•  WAR ํŒŒ์ผ ์ƒ์„ฑํ•˜๊ธฐ


728x90
๋ฐ˜์‘ํ˜•
Comments