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๐ŸŒณ๐Ÿ˜Š

[56] 230320 JSP Ch. 3 JSP๋กœ ์‹œ์ž‘ํ•˜๋Š” ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ, Ch. 4 ํ•„์ˆ˜ ์ดํ•ด ์š”์†Œ [K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ 56์ผ] ๋ณธ๋ฌธ

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

[56] 230320 JSP Ch. 3 JSP๋กœ ์‹œ์ž‘ํ•˜๋Š” ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ, Ch. 4 ํ•„์ˆ˜ ์ดํ•ด ์š”์†Œ [K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ 56์ผ]

yjyuwisely 2023. 3. 20. 12:48

230320 Mon 56th class
230321 Tue 57th class

Ch. 3 JSP๋กœ ์‹œ์ž‘ํ•˜๋Š” ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ
Ch. 4 ํ•„์ˆ˜ ์ดํ•ด ์š”์†Œ

์ง„๋„: p. 50 ~ (๊ต์žฌ: ์ตœ๋ฒ”๊ท ์˜ JSP 2.3 ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ: ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ค‘๊ธ‰๊นŒ์ง€, ์ €์ž: ์ตœ๋ฒ”๊ท )
์ง„๋„: p. 80 ~ (๊ต์žฌ: ์ตœ๋ฒ”๊ท ์˜ 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


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


- ์„œ๋ฒ„ ์—ฐ๊ฒฐํ•  ๋•Œ Window - Show View - Servers ์„ ํƒํ•œ๋‹ค. 
- WebContentํŒŒ์ผ ๋ˆŒ๋Ÿฌ์„œ ํŒŒ์ผ ๋งŒ๋“ ๋‹ค. 


PART 1 ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ
Ch. 3 JSP๋กœ ์‹œ์ž‘ํ•˜๋Š” ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ

์ฑ…์˜ ๋ชฉ์ฐจ
01 JSP์—์„œ HTML ๋ฌธ์„œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋ณธ ์ฝ”๋“œ ๊ตฌ์กฐ

02 JSP ํŽ˜์ด์ง€์˜ ๊ตฌ์„ฑ ์š”์†Œ
2.1 ๋””๋ ‰ํ‹ฐ๋ธŒ

2.2 ์Šคํฌ๋ฆฝํŠธ ์š”์†Œ
2.3 ๊ธฐ๋ณธ ๊ฐ์ฒด
2.4 ํ‘œํ˜„ ์–ธ์–ด
2.5 ํ‘œ์ค€ ์•ก์…˜ ํƒœ๊ทธ์™€ ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ 

03 page ๋””๋ ‰ํ‹ฐ๋ธŒ
3.1 contentType ์†์„ฑ๊ณผ ์บ๋ฆญํ„ฐ ์…‹

3.2 import ์†์„ฑ
3.3 trimDirectiveWhitespaces ์†์„ฑ์„ ์ด์šฉํ•œ ๊ณต๋ฐฑ ์ฒ˜๋ฆฌ
3.4 JSP ํŽ˜์ด์ง€์˜ ์ธ์ฝ”๋”ฉ๊ณผ pageEncoding ์†์„ฑ

04 ์Šคํฌ๋ฆฝํŠธ ์š”์†Œ
4.1 ์Šคํฌ๋ฆฝํŠธ๋ฆฟ

4.2 ํ‘œํ˜„์‹
4.3 ์„ ์–ธ๋ถ€

05 request ๊ธฐ๋ณธ ๊ฐ์ฒด
5.1 ํด๋ผ์ด์–ธํŠธ ์ •๋ณด ๋ฐ ์„œ๋ฒ„ ์ •๋ณด ์ฝ๊ธฐ

5.2 ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ ์ฒ˜๋ฆฌ
5.2.1 HTML ํผ๊ณผ ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ
5.2.2 request ๊ธฐ๋ณธ ๊ฐ์ฒด์˜ ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ด€๋ จ ๋ฉ”์„œ๋“œ
5.2.3 GET ๋ฐฉ์‹ ์ „์†ก๊ณผ POST ๋ฐฉ์‹ ์ „์†ก 
5.2.4 ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ ์ธ์ฝ”๋”ฉ
5.2.5 ํ†ฐ์บฃ์—์„œ GET ๋ฐฉ์‹ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์œ„ํ•œ ์ธ์ฝ”๋”ฉ ์ฒ˜๋ฆฌํ•˜๊ธฐ

5.3 ์š”์ฒญ ํ—ค๋” ์ •๋ณด์˜ ์ฒ˜๋ฆฌ

06 response ๊ธฐ๋ณธ ๊ฐ์ฒด
6.1 ์›น ๋ธŒ๋ผ์šฐ์ €์— ํ—ค๋” ์ •๋ณด ์ „์†กํ•˜๊ธฐ

6.2 ์›น ๋ธŒ๋ผ์šฐ์ € ์บ์‹œ ์ œ์–ด๋ฅผ ์œ„ํ•œ ์‘๋‹ต ํ—ค๋” ์ž…๋ ฅ
6.3 ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ํŽ˜์ด์ง€ ์ด๋™ํ•˜๊ธฐ

07 JSP ์ฃผ์„

JSP ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์ฃผ๋œ ๋ชฉ์ ์€ ์›น ๋ธŒ๋ผ์šฐ์ €์— ๋ณด์—ฌ ์ค„ HTML ๋ฌธ์„œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ JSP ์ฝ”๋“œ๋Š” HTML์„ ์ƒ์„ฑํ•œ๋‹ค.


3.1 JSP์—์„œ HTML ๋ฌธ์„œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋ณธ ์ฝ”๋“œ ๊ตฌ์กฐ

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!-- ๋””๋ ‰ํ‹ฐ๋ธŒ -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>HTML ๋ฌธ์„œ์˜ ์ œ๋ชฉ</title>
</head>
<body>
<% // ์Šคํฌ๋ฆฝํŠธ์š”์†Œ
	String bookTitle = "JSP ํ”„๋กœ๊ทธ๋ž˜๋ฐ";
	String author = "์ตœ๋ฒ”๊ท ";
%>
<b><%= bookTitle %></b>(<%= author %>)์ž…๋‹ˆ๋‹ค. <!-- ์Šคํฌ๋ฆฝํŠธ ์š”์†Œ 2๊ฐœ -->
<!--  %๋’ค์˜ = ๋Š” ์ถœ๋ ฅํ•˜๋ผ๋Š” ์˜๋ฏธ -->
</body>
</html>

01ํ–‰: ์„ค์ • ๋ถ€๋ถ„
02-13ํ–‰: ์ƒ์„ฑ ๋ถ€๋ถ„


์‹คํ–‰ํ•ด ๋ณด๊ธฐ) ์ดํด๋ฆฝ์Šค์—์„œ ํŒŒ์ผ ์šฐํด๋ฆญ run as๋ฅผ ๋ˆ„๋ฅธ๋‹ค.



์‹คํ–‰ ์˜ค๋ฅ˜ ๋‚ฌ์„ ๋•Œ ํ•ด๊ฒฐ ์ฐธ๊ณ  ๋งํฌ

์ถฉ๋Œ ๋ฌธ์ œ๋กœ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋Š”๋ฐ, ํฌํŠธ๋ฒˆํ˜ธ๋ฅผ ๋ฐ”๊พธ๋ฉด ๋œ๋‹ค. 8080 -> 8081

๊ฒฐ๊ณผ)

์˜ˆ์‹œ ์ฝ”๋“œ์˜ ๊ฒฐ๊ณผ

ํ†ฐ์บฃ: ๋ฐฐํฌํ•  ๋• ๋ˆ๋‹ค.


3.2 JSP ํŽ˜์ด์ง€์˜ ๊ตฌ์„ฑ ์š”์†Œ

1) ๋””๋ ‰ํ‹ฐ๋ธŒ


2) ์Šคํฌ๋ฆฝํŠธ ์š”์†Œ

ํ‘œํ˜„์‹(Expression): ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค. (=)
์Šคํฌ๋ฆฝํŠธ๋ฆฟ(Scriptlet): ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
์„ ์–ธ๋ถ€(Declaration): ์ž๋ฐ” ๋ฉ”์„œ๋“œ(ํ•จ์ˆ˜)๋ฅผ ๋งŒ๋“ ๋‹ค.


3) ๊ธฐ๋ณธ ๊ฐ์ฒด


4) ํ‘œํ˜„ ์–ธ์–ด  (Expression Language) p. 55

์ž๋ฐ” ๋ฌธ๋ฒ• ๋Œ€์‹ , ๋‘ ๊ฐœ์˜ ๋ฌธ์ž์—ด ๊ฐ’์„ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•œ ๋’ค, ๋‘ ์ˆซ์ž๋ฅผ ๊ณฑํ•œ ๊ฐ’์„ ์‘๋‹ต์œผ๋กœ ์ถœ๋ ฅํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์•„๋ž˜์˜ ํ‘œํ˜„ ์–ธ์–ด๋กœ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

a * b = ${param.a * param.b}

ํ‘œํ˜„ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ฝ”๋“œ๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์ข‹๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์—, ํŠน๋ณ„ํ•œ ์ด์œ ๊ฐ€ ์—†๋Š” ํ•œ ํ‘œํ˜„ ์–ธ์–ด๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. (Ch. 11 ํ‘œํ˜„ ์–ธ์–ด (Expression Language)์—์„œ ์ž์„ธํ•˜๊ฒŒ ์‚ดํŽด๋ณธ๋‹ค.)


5) ํ‘œ์ค€ ์•ก์…˜ ํƒœ๊ทธ์™€ ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ 


3.3 page ๋””๋ ‰ํ‹ฐ๋ธŒ p. 55

์†์„ฑ ์„ค๋ช… ๊ธฐ๋ณธ๊ฐ’

contentType

JSP๊ฐ€ ์ƒ์„ฑํ•  ๋ฌธ์„œ์˜ MIME ํƒ€์ž…๊ณผ ์บ๋ฆญํ„ฐ ์ธ์ฝ”๋”ฉ์„ ์ง€์ •ํ•œ๋‹ค. text/html

import

JSP ํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉํ•  ์ž๋ฐ” ํด๋ž˜์Šค๋ฅผ ์ง€์ •ํ•œ๋‹ค.  

session

JSP ํŽ˜์ด์ง€๊ฐ€ ์„ธ์…˜์„ ์‚ฌ์šฉํ• ์ง€์˜ ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•œ๋‹ค.
"true"์ผ ๊ฒฝ์šฐ ์„ธ์…˜์„ ์‚ฌ์šฉํ•˜๊ณ , "false"์ผ ๊ฒฝ์šฐ ์„ธ์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
true

buffer

JSP ํŽ˜์ด์ง€์˜ ์ถœ๋ ฅ ๋ฒ„ํผ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•œ๋‹ค.
"none"์ผ ๊ฒฝ์šฐ ์ถœ๋ ฅ ๋ฒ„ํผ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ,
"8kb"๋ผ๊ณ  ์ž…๋ ฅํ•œ ๊ฒฝ์šฐ 8ํ‚ฌ๋กœ๋ฐ”์ดํŠธ ํฌ๊ธฐ์˜ ์ถœ๋ ฅ ๋ฒ„ํผ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
์ตœ์†Œ 8kb

autoFlush

์ถœ๋ ฅ ๋ฒ„ํผ๊ฐ€ ๋‹ค ์ฐผ์„ ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ๋ฒ„ํผ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ์— ๋ณด๋‚ด๊ณ  ๋น„์šธ์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.
"true"์ธ ๊ฒฝ์šฐ ๋ฒ„ํผ์˜ ๋‚ด์šฉ์„ ์›น ๋ธŒ๋ผ์šฐ์ €์— ๋ณด๋‚ธ ํ›„ ๋ฒ„ํผ๋ฅผ ๋น„์šฐ๋ฉฐ,
"false"์ธ ๊ฒฝ์šฐ ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค.
 

info

JSP ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์ž…๋ ฅํ•œ๋‹ค.  

errorPage

JSP ํŽ˜์ด์ง€๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋„์ค‘์— ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ๋ณด์—ฌ์ค„ ํŽ˜์ด์ง€๋ฅผ ์ง€์ •ํ•œ๋‹ค.  


iserrorPage


ํ˜„์žฌ ํŽ˜์ด์ง€๊ฐ€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ๋  ๋•Œ ๋ณด์—ฌ์ฃผ๋Š” ํŽ˜์ด์ง€์ธ์ง€์˜ ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•œ๋‹ค.
"true"์ผ ๊ฒฝ์šฐ ์—๋Ÿฌ ํŽ˜์ด์ง€์ด๋ฉฐ,
"false"์ผ ๊ฒฝ์šฐ ์—๋Ÿฌ ํŽ˜์ด์ง€๊ฐ€ ์•„๋‹ˆ๋‹ค. 
false

pageEncoding

JSP ํŽ˜์ด์ง€ ์†Œ์Šค ์ฝ”๋“œ์˜ ์บ๋ฆญํ„ฐ ์ธ์ฝ”๋”ฉ์„ ์ง€์ •ํ•œ๋‹ค.  

isELIgnored

"true"์ผ ๊ฒฝ์šฐ ํ‘œํ˜„ ์–ธ์–ด๋ฅผ ํ•ด์„ํ•˜์ง€ ์•Š๊ณ  ๋ฌธ์ž์—ด๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉฐ,
"false"์ผ ๊ฒฝ์šฐ ํ‘œํ˜„ ์–ธ์–ด๋ฅผ ์ง€์›ํ•œ๋‹ค.
false

deferredSyntaxAllowedAsLiteral

#{ ๋ฌธ์ž๊ฐ€ ๋ฌธ์ž์—ด ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ• ์ง€์˜ ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•œ๋‹ค. false

trimDirectiveWhitespaces

์ถœ๋ ฅ ๊ฒฐ๊ณผ์—์„œ ํ…œํ”Œ๋ฆฟ ํ…์ŠคํŠธ์˜ ๊ณต๋ฐฑ ๋ฌธ์ž๋ฅผ ์ œ๊ฑฐํ• ์ง€์˜ ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•œ๋‹ค. false

์˜ˆ์ œ ์ฝ”๋“œ์˜ ์ฒซ ์ค„์— ๋Œ€ํ•œ ์„ค๋ช…์ด๋‹ค. 

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!-- ๋””๋ ‰ํ‹ฐ๋ธŒ -->

1) contentType ์†์„ฑ๊ณผ ์บ๋ฆญํ„ฐ ์…‹

์˜ˆ์‹œ) invalidCharset.jsp

<%@ page contentType="text/html; charset=iso-8859-1" %>
<%@ page import="java.util.Date" %>
<%
	Date now = new Date();
%>
<html>
<head><title>ํ˜„์žฌ ์‹œ๊ฐ„</title></head>
<body>
ํ˜„์žฌ ์‹œ๊ฐ: 
<%= now %>
</body>
</html>

๊ฒฐ๊ณผ) 

ํ•œ๊ธ€์ด ๊นจ์ ธ์„œ ๋‚˜์˜จ๋‹ค



2) import ์†์„ฑ

3) trimDirectiveWhitespaces ์†์„ฑ์„ ์ด์šฉํ•œ ๊ณต๋ฐฑ ์ฒ˜๋ฆฌ


4) JSP ํŽ˜์ด์ง€์˜ ์ธ์ฝ”๋”ฉ๊ณผ pageEncoding ์†์„ฑ


3.4 ์Šคํฌ๋ฆฝํŠธ ์š”์†Œ p. 65

<%@     %> : ๋””๋ ‰ํ‹ฐ๋ธŒ

์Šคํฌ๋ฆฝํŠธ ์š”์†Œ
1. ์Šคํฌ๋ฆฝํŠธ๋ฆฟ: <%     %> : ์ž๋ฐ” ์‹คํ–‰
2. ํ‘œํ˜„์‹: <%= ๊ฐ’ %> : ์ถœ๋ ฅ 
3. ์„ ์–ธ๋ถ€: <%! %>

1) ์Šคํฌ๋ฆฝํŠธ๋ฆฟ(Scriptlet) <%     %>

JSP ํŽ˜์ด์ง€์—์„œ ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ ๋ธ”๋ก์ด๋‹ค.

<%
    ์ž๋ฐ”์ฝ”๋“œ1;
    ์ž๋ฐ”์ฝ”๋“œ2;
    ์ž๋ฐ”์ฝ”๋“œ3;
    ...
%>

'<%'๋กœ ์‹œ์ž‘ํ•ด์„œ '%>'๋กœ ๋๋‚˜๋ฉฐ, '<%'์™€ '%>' ์‚ฌ์ด์—๋Š” ์‹คํ–‰ํ•  ์ž๋ฐ” ์ฝ”๋“œ๊ฐ€ ์œ„์น˜ํ•œ๋‹ค.

์˜ˆ์‹œ 3-8) 1๋ถ€ํ„ฐ 10๊นŒ์ง€์˜ ํ•ฉ์„ ๊ตฌํ•˜๋Š” JSP ํŽ˜์ด์ง€ oneToTen.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>one To Ten</title>
</head>
<body>
<%
	int sum = 0;
	for (int i = 1; i <= 10; i++){
		sum = sum + i;
	}
%>
1๋ถ€ํ„ฐ 10๊นŒ์ง€์˜ ํ•ฉ์€ <%= sum %> ์ž…๋‹ˆ๋‹ค.
</body>
</html>

๊ฒฐ๊ณผ)


2) ํ‘œํ˜„์‹(Expression) <%= ๊ฐ’ %>

์–ด๋–ค ๊ฐ’์„ ์ถœ๋ ฅ ๊ฒฐ๊ณผ์— ํฌํ•จ์‹œํ‚ค๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.

<%= ๊ฐ’ %>
<%= sum %>

'<%'๋กœ ์‹œ์ž‘ํ•ด์„œ '%>'๋กœ ๋๋‚˜๋ฉฐ, '<%'์™€ '%>' ์‚ฌ์ด์—๋Š” ์ถœ๋ ฅํ•  ๊ฐ’์ด ์œ„์น˜ํ•œ๋‹ค. 


3) ์„ ์–ธ๋ถ€(Declaration) <%! %>

JSP ํŽ˜์ด์ง€์˜ ์Šคํฌ๋ฆฝํŠธ๋ฆฟ์ด๋‚˜ ํ‘œํ˜„์‹์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ์—๋Š” ์„ ์–ธ๋ถ€(declaration)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

<%!
	public ๋ฆฌํ„ดํƒ€์ž… ๋ฉ”์„œ๋“œ์ด๋ฆ„(ํŒŒ๋ผ๋ฏธํ„ฐ๋ชฉ๋ก){ <!-- ๋ฉ”์„œ๋“œ ๋‚ด์—์„œ ์‚ฌ์šฉ๋  ๋ณ€์ˆ˜ -->
    	์ž๋ฐ”์ฝ”๋“œ1;
        ์ž๋ฐ”์ฝ”๋“œ2;
        ...
        ์ž๋ฐ”์ฝ”๋“œ3;
        return ๊ฐ’;
}
%>

 

์„ ์–ธ๋ถ€์˜ ์œ„์น˜๋Š” ์ƒ๊ด€์—†๋‹ค. 

์˜ˆ์‹œ 3-11) ์„ ์–ธ๋ถ€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ์ •์ˆ˜์˜ ๊ณฑ์„ ๊ณ„์‚ฐํ•ด ์ฃผ๋Š” ์˜ˆ useDecl.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>

<%!
	public int multiply(int a, int b){
		int c = a * b;
			return c;
	}	
%>

<html>
<head>
<meta charset="UTF-8">
<title>์„ ์–ธ๋ถ€๋ฅผ ์‚ฌ์šฉํ•œ ๋‘ ์ •์ˆ˜๊ฐ’์˜ ๊ณฑ</title>
</head>
<body>

10 * 25 = <%= multiply(10,25) %>

</body>
</html>

๊ฒฐ๊ณผ) 

HTML์— ์ด์–ด, CSS, Javascript ์—ฐ๊ฒฐํ•œ๋‹ค.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>

<%!
	public int multiply(int a, int b){
		int c = a * b;
			return c;
	}	
%>

<html>
<head>
<!-- CSS ์—ฐ๊ฒฐ -->
<!-- javascript ์—ฐ๊ฒฐ -->
<meta charset="UTF-8">
<title>์„ ์–ธ๋ถ€๋ฅผ ์‚ฌ์šฉํ•œ ๋‘ ์ •์ˆ˜๊ฐ’์˜ ๊ณฑ</title>
</head>
<body>

10 * 25 = <%= multiply(10,25) %>

</body>
</html>

์›น์—์„œ๋„ ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฐ”๊ฐ์ฒด๋“ค์ด ์ •ํ•ด์ ธ ์žˆ๋‹ค. (request, response ๋“ฑ) 


3.5 request ๊ธฐ๋ณธ ๊ฐ์ฒด p. 72

์›น ๋ธŒ๋ผ์šฐ์ €์™€ ์›น ์„œ๋ฒ„์˜ ํ†ต์‹  ๊ณผ์ •

2023.03.20 - [๐ŸŒณK-Digital Revision 2023โœจ/JSP] - [56] 230320 [K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ 56์ผ] JSP Ch. 1 ๋“ค์–ด๊ฐ€๊ธฐ, Ch. 2 ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ, Ch. 13 ์ดํด๋ฆฝ์Šค๋ฅผ ์ด์šฉํ•œ ์›น ๊ฐœ๋ฐœ

request ๊ธฐ๋ณธ ๊ฐ์ฒด๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์š”์ฒญ๊ณผ ๊ด€๋ จ์ด ์žˆ๋‹ค. ์›น ๋ธŒ๋ผ์šฐ์ €์— ์›น ์‚ฌ์ดํŠธ์˜ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด, ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ํ•ด๋‹น ์›น ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•œ ํ›„ ์š”์ฒญ ์ •๋ณด๋ฅผ ์ „์†กํ•˜๋Š” ๋ฐ ์ด ์š”์ฒญ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด request ๊ธฐ๋ณธ ๊ฐ์ฒด์ด๋‹ค.

1) ํด๋ผ์ด์–ธํŠธ ์ •๋ณด ๋ฐ ์„œ๋ฒ„ ์ •๋ณด ์ฝ๊ธฐ

request ๊ธฐ๋ณธ ๊ฐ์ฒด๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €, ์ฆ‰ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ „์†กํ•œ ์ •๋ณด์™€ ์„œ๋ฒ„ ์ •๋ณด๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

์˜ˆ์‹œ 3-13) ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์˜ˆ์ œ JSP ํŽ˜์ด์ง€ requestInfo.jsp 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ํด๋ผ์ด์–ธํŠธ ๋ฐ ์„œ๋ฒ„ ์ •๋ณด</title>
</head>
<body>

ํด๋ผ์ด์–ธํŠธID = <%= request.getRemoteAddr() %> <br>
์š”์ฒญ์ •๋ณด๊ธธ์ด = <%= request.getContentLength() %> <br>
์š”์ฒญ์ •๋ณด ์ธ์ฝ”๋”ฉ = <%= request.getCharacterEncoding() %> <br>
์š”์ฒญ์ •๋ณด ์ปจํ…์ธ ํƒ€์ž… = <%= request.getContentType() %> <br>
์š”์ฒญ์ •๋ณด ํ”„๋กœํ† ์ฝœ = <%= request.getProtocol() %> <br>
์š”์ฒญ์ •๋ณด ์ „์†ก๋ฐฉ์‹ = <%= request.getMethod() %> <br>
์š”์ฒญ URI = <%= request.getRequestURI() %> <br>
์ปจํ…์ŠคํŠธ ๊ฒฝ๋กœ = <%= request.getContextPath() %> <br>
์„œ๋ฒ„์ด๋ฆ„ = <%= request.getServerName() %> <br>
์„œ๋ฒ„ํฌํŠธ = <%= request.getServerPort() %> <br>

</body>
</html>

๊ฒฐ๊ณผ) 
์š”์ฒญ URI, ์„œ๋ฒ„์ด๋ฆ„, ์„œ๋ฒ„ํฌํŠธ๊ฐ€ ํ”ํ•˜๊ฒŒ ์“ฐ์ธ๋‹ค.
URL ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด์„œ ๋ช…๋ น์„ ๋‚ด๋ฆฐ๋‹ค.

localhost:8081 ์˜†์— ์žˆ๋Š” JSPExample์ด ์ปจํ…์ŠคํŠธ ๊ฒฝ๋กœ์ด๋‹ค. 
๋”ฐ๋กœ ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์ด๋‹ค. 

์„œ๋ฒ„ ์ด๋ฆ„์€ localhost์ด๋‹ค. (๋„๋ฉ”์ธ์„ ์•ˆ ์ƒ€์œผ๋ฏ€๋กœ)

URL์˜ ์ผ๋ฐ˜์ ์ธ ๊ตฌ์„ฑ

๊ทธ๋ฆผ ์ฐธ๊ณ : https://ulralra-dev.tistory.com/20


์—ฌ๊ธฐ์„œ ์ปจํ…์ŠคํŠธ ๊ฒฝ๋กœ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•˜๋‹ค. Edit๋ฅผ ์ปจํ…์ŠคํŠธ ๊ฒฝ๋กœ(์—ฌ๊ธฐ์„ , JSPExample์„ ์ง€์šธ ์ˆ˜ ์žˆ๋‹ค.)

์—ฌ๊ธฐ์„œ ์ปจํ…์ŠคํŠธ ๊ฒฝ๋กœ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•˜๋‹ค.

https://www.naver.com/

http://localhost:8081/JSPExample/230320p73requestInfo.jsp

2) ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ ์ฒ˜๋ฆฌ

ex) ๋„ค์ด๋ฒ„์— ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒƒ, ๊ฒŒ์‹œํŒ์— ๊ธ€ ์“ฐ๋Š” ๊ฒƒ 

2.1) HTML ํผ๊ณผ ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ

ํŒŒ๋ผ๋ฏธํ„ฐ: ๋งค๊ฐœ๋ณ€์ˆ˜ 
<input> ํƒœ๊ทธ์˜ name ์†์„ฑ์ด ์ค‘์š”ํ•˜๋‹ค.
name ์†์„ฑ์˜ ๊ฐ’์ด ์ž…๋ ฅ ์š”์†Œ์˜ ์ด๋ฆ„์ด ๋œ๋‹ค.

์ด๋ฆ„: <input type="text" name="name" size="10"> <br>
์ฃผ์†Œ: <input type="text" name="address" size="30"> <br>
์ข‹์•„ํ•˜๋Š” ๋™๋ฌผ:
	<input type="checkbox" name="pet" value="dog">๊ฐ•์•„์ง€
	<input type="checkbox" name="pet" value="cat">๊ณ ์–‘์ด
	<input type="checkbox" name="pet" value="pig">๋ผ์ง€

2.2) request ๊ธฐ๋ณธ ๊ฐ์ฒด์˜ ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ด€๋ จ ๋ฉ”์„œ๋“œ

์˜ˆ์‹œ) ํผ์— ์ž…๋ ฅํ•œ ๊ฐ’์„ ์ถœ๋ ฅํ•ด ์ฃผ๋Š” JSP ํŽ˜์ด์ง€ [์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ํผ] form.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ํผ ์ƒ์„ฑ</title>
</head>
<body>

<!--  ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ํผ(ํ™”๋ฉด) -->
<form action="viewParameter.jsp" method="post"> 
<!-- action: ์„œ๋ฒ„ ์ด๋ฆ„, ํŠน์ • ํด๋” ๋‚ด์— ์†ํ•˜๋Š” ๊ฑฐ๋ฉด ํด๋” ์ง€์ •ํ•˜๊ธฐ ํด๋”/viewParameter.jsp -->
์ด๋ฆ„: <input type="text" name="name" size="10"> <br>
์ฃผ์†Œ: <input type="text" name="address" size="30"> <br>
์ข‹์•„ํ•˜๋Š” ๋™๋ฌผ:
	<input type="checkbox" name="pet" value="dog">๊ฐ•์•„์ง€
	<input type="checkbox" name="pet" value="cat">๊ณ ์–‘์ด
	<input type="checkbox" name="pet" value="pig">๋ผ์ง€
<br>
<input type="submit" value="์ „์†ก">

</form>

</body>
</html>

๊ฒฐ๊ณผ)

์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ํผ

์˜ˆ์ œ 3-15) ํผ์— ์ž…๋ ฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค. [์„œ๋ฒ„] viewParameter.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%
	request.setCharacterEncoding("utf-8");
%>
<html>
<head>
<meta charset="UTF-8">
<title>์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ ์ถœ๋ ฅ</title>
</head>
<body>
name ํŒŒ๋ผ๋ฏธํ„ฐ = <%= request.getParameter("name") %> <br> <!-- ๋ณ€์ˆ˜์— ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ์ถœ๋ ฅ -->
address ํŒŒ๋ผ๋ฏธํ„ฐ = <%= request.getParameter("address") %>
<p> <!-- ์—”ํ„ฐ ํšจ๊ณผ -->
<%
	String[] values = request.getParameterValues("pet"); //๊ฐ™์€ ์ด๋ฆ„ "pet"์œผ๋กœ ๋‘”๋‹ค.
	if (values != null){
		for (int i = 0; i < values.length; i++){
%>
	<%= values[i] %>
<%
		}
	}
%>	
</body>
</html>

๊ฒฐ๊ณผ)


2.3) GET ๋ฐฉ์‹ ์ „์†ก๊ณผ POST ๋ฐฉ์‹ ์ „์†ก

2023.01.10 - [๐ŸŒณK-Digital Revision 2023โœจ/Javascript] - [10] 230110 [K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ 10์ผ] Ch. 8 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ์ดˆ: 8. ์ˆซ์ž์™€ ๋ฌธ์ž์—ด ์‚ฌ์ด์˜ ๋ณ€ํ™˜

Get ๋ฐฉ์‹

<form action="viewParameter.jsp" method="get">

 

URL ์ฃผ์†Œ ๋’ค์— ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ถ™์—ฌ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
(URL(Uniform Resource Locator): ์ธํ„ฐ๋„ท์—์„œ ์›น ํŽ˜์ด์ง€, ์ด๋ฏธ์ง€, ๋น„๋””์˜ค ๋“ฑ ๋ฆฌ์†Œ์Šค์˜ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฌธ์ž์—ด)
Get ๋ฐฉ์‹์ด Post ๋ฐฉ์‹๋ณด๋‹ค ๋น„๊ต์  ์ „์†ก๋˜๋Š” ์†๋„๊ฐ€ ๋น ๋ฅด๋‚˜ ๋ณด์•ˆ์—๋Š” ์ทจ์•ฝํ•˜๋‹ค.
method๋ฅผ ๋”ฐ๋กœ ์–ธ๊ธ‰ ์•ˆ ํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ Get ๋ฐฉ์‹์ด๋‹ค. 

ex) ๊ฒ€์ƒ‰์–ด
ex) file:///D:/221229/html/WebContent/ch03_02_req.html?id=1234&password=5678

๊ธฐ๋ณธ์€ GET ๋ฐฉ์‹์ด๋‹ค.


Post ๋ฐฉ์‹

http://localhost:8081/JSPExample/viewParameter.jsp
<form action="viewParameter.jsp" method="post">

์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ URL ์ฃผ์†Œ์— ๋ถ™์ด์ง€ ์•Š๊ณ  HTTP Request ํ—ค๋”์— ํฌํ•จ์‹œ์ผœ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
Post ๋ฐฉ์‹์ด Get ๋ฐฉ์‹๋ณด๋‹ค ๋ณด์•ˆ์—๋Š” ๊ฐ•ํ•˜๋‚˜, ์†๋„๋Š” ๋Š๋ฆฌ๋‹ค.
๊ธธ์ด ์ œํ•œ์ด ์—†์œผ๋ฉฐ, ๋ณด์•ˆ์ด ์œ ์ง€๋œ๋‹ค.  

ex) ๋กœ๊ทธ์ธ 
ex) file:///D:/221229/html/WebContent/ch03_02_req.html


loginform.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>๋กœ๊ทธ์ธ ํผ</title>
</head>
<body>
<form action="login.jsp" method="post">
	์•„์ด๋””: <input type="text" name="memberId">
	<input type="submit" value="๋กœ๊ทธ์ธ">
</form>
</body>
</html>

์˜ˆ์ œ 3-19) login.jsp 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>๋กœ๊ทธ์ธ์— ์‹คํŒจ</title>
</head>
<body>
<%
	//์‚ฌ์šฉ์žํ™”๋ฉด(loginform.jsp)์—์„œ ๋กœ๊ทธ์ธํ•  ๋•Œ ์•„์ด๋””(memberId)๊ฐ’์„ ์„œ๋ฒ„์— ์ „์†ก
	//๋กœ๊ทธ์ธ์„ ํ•ด๋ผ๋ผ๊ณ  ์š”์ฒญ
	String id = request.getParameter("memberId");
	//์•„์ด๋”” ์ž…๋ ฅํ–ˆ๊ณ , madvirus์ด๋ฉด(๊ฒ€์ฆ)
	if (id != null && id.equals("madvirus")) {
		//์„œ๋ฒ„์—์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋กœ๊ทธ์ธ์„ ํ•˜๋ฉด์„œ index.jsp๋กœ ์ด๋™(์‘๋‹ต)
		response.sendRedirect("index.jsp");
	} else { //๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉฐ
%>
<!-- ์ž˜๋ชป๋œ ์•„์ด๋””์ž…๋‹ˆ๋‹ค๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. -->
	์ž˜๋ชป๋œ ์•„์ด๋””์ž…๋‹ˆ๋‹ค
	"๋กœ๊ทธ์ธ ์‹คํŒจ"<br>
	<a href="loginform.jsp">๋‹ค์‹œ ๋กœ๊ทธ์ธํ•˜๊ธฐ</a>
</body>
</html>
<%
	}
%>

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>3์žฅ ์˜ˆ์ œ</title>
</head>
<body>
3์žฅ์˜ ์ธ๋ฑ์Šค ํŽ˜์ด์ง€
"๋กœ๊ทธ์ธ ์„ฑ๊ณต"
</body>
</html>

์ฐธ๊ณ : https://rsorry.tistory.com/188

๊ฒฐ๊ณผ)

๋กœ๊ทธ์ธ ์„ฑ๊ณต
๋กœ๊ทธ์ธ ์‹คํŒจ


2.4) ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ ์ธ์ฝ”๋”ฉ

์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ POST ๋ฐฉ์‹์˜ ํ•œ๊ธ€ ๊นจ์ง์„ ๋ฐฉ์ง€ํ•œ๋‹ค.

<%
	request.setCharacterEncoding("utf-8");
%>

<a> ํƒœ๊ทธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ GET ๋ฐฉ์‹์ด๋‹ค.


2.5) ํ†ฐ์บฃ์—์„œ GET ๋ฐฉ์‹ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์œ„ํ•œ ์ธ์ฝ”๋”ฉ ์ฒ˜๋ฆฌํ•˜๊ธฐ

ํ†ฐ์บฃ 8๋ถ€ํ„ฐ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ค์ •์ด ๋˜์–ด์žˆ๋‹ค.


3) ์š”์ฒญ ํ—ค๋” ์ •๋ณด์˜ ์ฒ˜๋ฆฌ


3.6 response ๊ธฐ๋ณธ ๊ฐ์ฒด

1) ์›น ๋ธŒ๋ผ์šฐ์ €์— ํ—ค๋” ์ •๋ณด ์ „์†กํ•˜๊ธฐ

2) ์›น ๋ธŒ๋ผ์šฐ์ € ์บ์‹œ ์ œ์–ด๋ฅผ ์œ„ํ•œ ์‘๋‹ต ํ—ค๋” ์ž…๋ ฅ

3) ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ํŽ˜์ด์ง€ ์ด๋™ํ•˜๊ธฐ

๋ฆฌ๋‹ค์ด๋ ‰ํŠธ: ์›น ์„œ๋ฒ„๊ฐ€ ์›น ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋ผ๊ณ  ์‘๋‹ตํ•˜๋Š” ๊ธฐ๋Šฅ
ex) ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธ์— ์„ฑ๊ณตํ•œ ํ›„ ๋ฉ”์ธ ํŽ˜์ด์ง€๋กœ ์ž๋™์œผ๋กœ ์ด๋™ํ•˜๋Š” ์‚ฌ์ดํŠธ

response.sendRedirect(String location)

์˜ˆ์ œ 3-19) login.jsp

<%@ page contentType="text/html; charset=utf-8" %>
<%
	String id = request.getParameter("memberId");
	if (id != null && id.equals("madvirus")) {
		response.sendRedirect("/chap03/index.jsp"); <!-- ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์ด "madvirus"๋ฉด
        "/chap03/index.jsp" ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•œ๋‹ค. -->
	} else {
%>
<html>
<head><title>๋กœ๊ทธ์ธ์— ์‹คํŒจ</title></head>
<body>
์ž˜๋ชป๋œ ์•„์ด๋””์ž…๋‹ˆ๋‹ค.
</body>
</html>
<%
	}
%>

3.7 JSP ์ฃผ์„

JSP ์ฝ”๋“œ ์ž์ฒด๋ฅผ ์ฃผ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.

<%-- ์ฃผ์„ --%>

Ch. 4 ํ•„์ˆ˜ ์ดํ•ด ์š”์†Œ

์ฑ…์˜ ๋ชฉ์ฐจ
01 JSP ์ฒ˜๋ฆฌ ๊ณผ์ •

02 ์ถœ๋ ฅ ๋ฒ„ํผ์™€ ์‘๋‹ต
2.1 page ๋””๋ ‰ํ‹ฐ๋ธŒ์—์„œ ๋ฒ„ํผ ์„ค์ •ํ•˜๊ธฐ: buffer ์†์„ฑ๊ณผ autoFlush ์†์„ฑ

03 ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํด๋” ๊ตฌ์„ฑ๊ณผ URL ๋งคํ•‘
3.1 ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํด๋”์™€ URL์˜ ๊ด€๊ณ„
3.2 ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ํด๋” ๋‚ด์—์„œ์˜ ํ•˜์œ„ ํด๋” ์‚ฌ์šฉ

04 ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ
4.1 ํ†ฐ์บฃ์— war ํŒŒ์ผ ๋ฐฐํฌํ•˜๊ธฐ 

4.1 JSP ์ฒ˜๋ฆฌ ๊ณผ์ •


4.2 ์ถœ๋ ฅ ๋ฒ„ํผ์™€ ์‘๋‹ต

1) page ๋””๋ ‰ํ‹ฐ๋ธŒ์—์„œ ๋ฒ„ํผ ์„ค์ •ํ•˜๊ธฐ: buffer ์†์„ฑ๊ณผ autoFlush ์†์„ฑ


4.3 ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ํด๋” ๊ตฌ์„ฑ๊ณผ URL ๋งคํ•‘

1) ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ํด๋”์™€ URL์˜ ๊ด€๊ณ„
2) ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ํด๋” ๋‚ด์—์„œ์˜ ํ•˜์œ„ ํด๋” ์‚ฌ์šฉ


4.4 ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ p. 110 

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ WAS(Web Application Server)์— ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‘ ๊ฐ€์ง€๋‹ค.
- ๋Œ€์ƒ ํด๋”์— ํŒŒ์ผ์„ ์ง์ ‘ ๋ณต์‚ฌ
- ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ war ํŒŒ์ผ๋กœ ๋ฌถ์–ด์„œ ๋ฐฐํฌ: 
๋กœ์ปฌ PC(๋ณธ์ธ์˜ PC)๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์˜ ํด๋”์— ๋ณต์‚ฌํ•  ๊ฒฝ์šฐ FTP์™€ ๊ฐ™์€ ํŒŒ์ผ ์ „์†ก ๊ธฐ๋Šฅ์„ ์ด์šฉํ•ด์„œ ๋ฐฐํฌํ•œ๋‹ค. 


์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„(WAS(Web Application Server)):
์›น์„ ์œ„ํ•œ ์—ฐ๊ฒฐ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™๊ณผ ๊ฐ™์ด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ,
์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด ๋†“์€ ํŒŒ์ผ


IP๋กœ ์ ‘์†ํ•˜๋ฉด ํ•ดํ‚น ์œ„ํ—˜์ด ์žˆ๋‹ค. ๋„๋ฉ”์ธ์œผ๋กœ ์ ‘์†ํ•œ๋‹ค. 


1) ํ†ฐ์บฃ์— war ํŒŒ์ผ ๋ฐฐํฌํ•˜๊ธฐ

์ดํด๋ฆฝ์Šค ๋‚ด ์ „์ฒด ํŒŒ์ผ(์—ฌ๊ธฐ์„  JSPExample)์˜ ์šฐ์ธก ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์„œ Export๋ฅผ ํด๋ฆญํ•œ๋‹ค. 

์•„๋ž˜ ์œ„์น˜๋Œ€๋กœ ์ง€์ •ํ•œ๋‹ค. 
JSPExample.war๊ฐ€ ์ €์žฅ๋œ๋‹ค.

Tomcat85w.exe๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. 

JSPExample ํŒŒ์ผ ํด๋”๊ฐ€ ์ƒ์„ฑ๋๋‹ค.

JSPExample ํด๋”๋ฅผ ๋ˆŒ๋ €๋Š”๋ฐ ์ด๋•Œ๊นŒ์ง€ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์ด ํŒŒ์ผ ํด๋” ์•ˆ์— ๋œฌ๋‹ค. ๋ฐฐํฌ๊ฐ€ ์™„๋ฃŒ๋๋‹ค.


๋‘ ๊ฐœ์˜ ํ†ฐ์บฃ์„ ๋™์‹œ์— ์‹คํ–‰ํ•  ์ˆ˜ ์—†๋‹ค. (์œˆ๋„์šฐ์šฉ, ์ดํด๋ฆฝ์Šค์šฉ)
๋นจ๊ฐ„ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์„œ ์ดํด๋ฆฝ์Šค์šฉ ํ†ฐ์บฃ์„ ๊บผ์ง„๋‹ค.

๋ฐฐํฌํ•  ๋•Œ๋Š” ์ดํด๋ฆฝ์Šค์šฉ ํ†ฐ์บฃ์„ ๋„๊ณ  war ํŒŒ์ผ์„ ์••์ถ•์‹œ์ผœ์„œ ๋ฐฐํฌํ•œ๋‹ค.
๋„๋ฉ”์ธ์ด ์—†์œผ๋ฏ€๋กœ local host๋กœ ํ•˜๋ฉด ์ง„ํ–‰๋œ๋‹ค. 

์••์ถ•ํ•˜๊ธฐ ์ฐธ๊ณ : https://mindols.tistory.com/151

์ฐธ๊ณ : https://www.w3schools.blog/how-to-create-war-file-in-eclipse


728x90
๋ฐ˜์‘ํ˜•

'๐ŸŒณBootcamp Revision 2023โœจ > HTML5, CSS3, JSP' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[58] 230322 JSP Ch. 8 ์ž๋ฐ”๋นˆ๊ณผ ์•ก์…˜ ํƒœ๊ทธ, Ch. 9 ํด๋ผ์ด์–ธํŠธ์™€์˜ ๋Œ€ํ™” 1 : ์ฟ ํ‚ค, Ch. 10 ํด๋ผ์ด์–ธํŠธ์™€์˜ ๋Œ€ํ™” 2 : ์„ธ์…˜ [K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ 58์ผ]  (0) 2023.03.22
[57] 230321 JSP Ch. 5 ๊ธฐ๋ณธ ๊ฐ์ฒด์™€ ์˜์—ญ, Ch. 6 ์—๋Ÿฌ ์ฒ˜๋ฆฌ, Ch. 7 ํŽ˜์ด์ง€ ๋ชจ๋“ˆํ™”์™€ ์š”์ฒญ ํ๋ฆ„ ์ œ์–ด [K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ 57์ผ]  (0) 2023.03.21
[56] 230320 JSP Ch. 1 ๋“ค์–ด๊ฐ€๊ธฐ, Ch. 2 ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ, Ch. 13 ์ดํด๋ฆฝ์Šค๋ฅผ ์ด์šฉํ•œ ์›น ๊ฐœ๋ฐœ [K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ 56์ผ]  (0) 2023.03.20
[8] 230106 Ch. 7 HTML๊ณผ CSS๋กœ ์›น์‚ฌ์ดํŠธ ๋งŒ๋“ค๊ธฐ: ์›น ์‚ฌ์ดํŠธ ์ž‘์„ฑ, HTML ๋ฌธ์„œ ยท CSS ํŒŒ์ผ ์ž‘์„ฑํ•˜๊ธฐ, ์™„์„ฑ๋œ ํŽ˜์ด์ง€ ๋ณด๊ธฐ [K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ 8์ผ]  (0) 2023.01.06
Comments