java

jsp์™€ ์„œ๋ธ”๋ฆฟ๋ฐฉ์‹

dev_summer 2020. 10. 28. 16:42

 

์ž๋ฐ”์ฝ”๋“œ์™€ html๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

 

jsp - (์ž๋ฐ”+html) ์ฝ”๋”ฉ์€ ์ƒ๋Œ€์ ์œผ๋กœ ์‰ฌ์šฐ๋‚˜ ํ˜‘์—…์ด ํž˜๋“ฌ.

์„œ๋ธ”๋ฆฟ - ์ž๋ฐ”์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค๊ณ  out.print(html์ฝ”๋“œ)ํ•จ. ์ฝ”๋”ฉ์ด ์–ด๋ ต๋‹ค

 

๋ชจ๋ธ 1๋ฐฉ์‹ : ๋ทฐ๊ฐ€ ๋ทฐ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹ ๋‹จ)์ฃผ์†Œ๋ฅผ ๋ฐ›๋Š” ํ•˜๋‚˜์˜ ์ค‘์žฌ์ž๊ฐ€ ์—†์–ด์„œ ํŒŒ์ผ๋ช…์ด ๋งŽ์•„์ง€๋ฉด ๋ณต์žกํ•˜๋‹ค. ํ•„์š”ํ•œ ์ฝ”๋“œ๊ฐ€ ํ•˜๋‚˜์˜ ํŽ˜์ด์ง€์— ์กด์žฌํ•œ๋‹ค.

 

๋ชจ๋ธ2๋ฐฉ์‹(MVC):

๋‘๊ฐ€์ง€์˜ ์žฅ์ ์„ ์„ž์Œ

ํ•˜๋‚˜์˜ ์„œ๋ธ”๋ฆฟ ํŒŒ์ผ์„ ๋งŒ๋“ฌ. ์ปจํŠธ๋กค๋Ÿฌ(=๋ผ์šฐํ„ฐ, ์„œ๋ธ”๋ฆฟ์œผ๋กœ ์ž‘์„ฑ) ์ฟผ๋ฆฌ์ŠคํŠธ๋ง์„ ํŒŒ์‹ฑํ•˜์—ฌ ์›ํ•˜๋Š” ํŽ˜์ด์ง€๋กœ ๋ผ์šฐํŒ…(ํ˜ธ์ถœ)ํ•จ. ํ˜ธ์ถœ๋ฐ›์€ ๋ทฐ๋Š” JSP๋กœ ๊ตฌํ˜„

์ฆ‰ ์„œ๋ธ”๋ฆฟ์€ ์ง„์ž…๋กœ๋กœ ์‚ฌ์šฉ ์ง„์ž…ํ•˜์—ฌ ํ•„์š”ํ•œ ํŽ˜์ด์ง€๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ํ•„์š”ํ•œํŽ˜์ด์ง€๋Š” JSP๋กœ ๊ตฌํ˜„๋จ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ํ†ตํ•ด ๋ทฐ๋กœ ๊ฐ€๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ฌ๊ณ  ๊ฐˆ์ˆ˜์žˆ๋‹ค. ์ปจํŠธ๋กค๋Ÿฌ์— DB๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ์ปจํŠธ๋กค๊ฐ€๋Šฅํ•จ. ๊ทธ๋ ‡์ง€์•Š์œผ๋ฉด ๊ฐ ๋ทฐ์— DB๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ์–ด์•ผํ•œ๋‹ค. ์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋””๋น„์—์„œ ๋ฐ›์€ ๊ฒฐ๊ณผ๊ฐ’์„ ์ž๋ฐ”๋กœ์ง์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์—ฌ ๊ฒฐ๊ณผ๊ฐ’๋งŒ ๋ฟŒ๋ ค์คŒ

 

 

JSP : java๋กœ์ง, DB์ปค๋„ฅ์…˜, ์†Œ์Šค์ฝ”๋“œ, html(css,js) ์ด ํ˜ผ์žฌ๋˜์–ด ์‚ฌ์šฉ๋˜์—ˆ์ง€๋งŒ, ๋ชจ๋ธ2๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ด€์‹ฌ์‚ฌ๋ฅผ ๋ถ„๋ฆฌํ• ์ˆ˜ ์žˆ๋‹ค. JSPํŒŒ์ผ์€ html๋งŒ, ์„œ๋ธ”๋ฆฟ์€ ์ปจํŠธ๋กค๋Ÿฌ, ์ž๋ฐ”ํŒŒ์ผ์€ ๋กœ์ง์ด ์กด์žฌ, JSPํŒŒ์ผ์€ ์ž๋ฐ”ํŒŒ์ผ์—์„œ ์—ฐ์‚ฐํ•œ ๊ฒฐ๊ณผ๊ฐ’๋งŒ์„ ๋ฐ›์•„์™€ ๋ฟŒ๋ ค์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค.

 

 

 

 

 

 

meta๊ฐ€ ์‹ค์ œ ๋ฐฐํฌ๋˜๋Š” ๊ณณ (org.eclipse.wst.server.core/tmp0/wtpwebapps/์‹คํ•ธ์‹œ์ผฏ๋˜ ์„œ๋ฒ„ํŒŒ์ผ)

๋‹ค๋ฅธ๊ณณ์€ ๊ทธ์ € ์ž‘์—…๊ณต๊ฐ„์ผ ๋ฟ

 

๊ฒŸ : ์ฃผ์†Œ ๋ถˆ๋Ÿฌ์ฃผ์„ธ์š”

ํฌ์Šคํ„ฐ : ๋”ธ๋ ค๊ฐ€๋Š”๊ฑฐ

 

import.javax.setverlet ~~ java๊ฐ€ ์•„๋‹Œ javax๋Š” ํ†ฐ์บฃ์ด ๊ฐ€์ง€๊ณ ์˜จ ํด๋ž˜์Šค๋“ค์ด๋‹ค. ๊ธฐ๋ณธ ํ•„๋“œํŒจ์Šค๋˜์–ด์žˆ์Œ. ๋‹ค๋ฅธ๊ณณ์—์„œ ์ž„ํฌํŠธํ• ๋•Œ ๋”ฐ๋กœ ์„œ๋ฒ„๋ฅผ ๋งŒ๋“  ํ›„ ๋”ฐ๋กœ ๋นŒ๋“œํŒจ์Šค add library -> ์„œ๋ฒ„ -> ์•„ํŒŒ์น˜

 

context path : ServerํŒŒ์ผ์˜ source์˜ ๋งจ ๋งˆ์ง€๋ง‰context path

 

 

 

 

 

 

์›น๋ธŒ๋ผ์šฐ์ € -> ์›น์„œ๋ฒ„(์•„ํŒŒ์น˜) -> ์›น์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„(์™€์Šค) -> ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ

 

- ํ†ฐ์บฃ์ด ๋ฉ”์ธ์„ ๋“ค๊ณ ์žˆ๋‹ค.(๊ฐœ๋ฐœ์ž๋Š” ๋ฉ”์ธ์„ ์ปจํŠธ๋กคํ•˜์ง€ ๋ชปํ•จ. ํ†ฐ์บฃ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€์•„๋‹ˆ๊ณ  ํ”„๋ ˆ์ž„์›Œํฌ์ด๊ธฐ๋•Œ๋ฌธ์—)

- ์„œ๋ฒ„๋Š” responesํ›„ ์—ฐ๊ฒฐ์„ ๋Š๊ธฐ๋•Œ๋ฌธ์— ์ •๋ณด๊ฐ€ ๋‚จ์•„์žˆ์ง€์•Š๋‹ค. ์ด ์ •๋ณด๋ฅผ ๊ธฐ์–ตํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋ฒ„๋Š” ์„œ๋ธ”๋ฆฟ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์Šค๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑ, ์„œ๋ธ”๋ฆฟ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค. ๊ทธ ์Šค๋ ˆ๋“œ์™€ ๊ณ„์† ์—ฐ๊ฒฐ๋˜์–ด ํ˜ธ์ถœ ํ•จ

- ์‚ฌ์šฉ์ž๊ฐ€ ์„œ๋ฒ„๋ฅผ ํ˜ธ์ถœํ• ๋•Œ ์„œ๋ธ”๋ฆฟ๊ฐ์ฒด๊ฐ€ ๋งŒ๋“ค์–ด์ง€๊ณ  ์‚ฌ์šฉ์ž์™€ ํ†ต์‹ ํ•˜๋Š” ์Šค๋ ˆ๋“œ๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ํ˜ธํˆดํ• ๋•Œ๋งˆ๋‹ค ๋งŒ๋“ค์–ด์ง„ ์Šค๋ ˆ๋“œ์™€ ํ†ต์‹ ํ•œ๋‹ค ๋ฌดํ•œํ˜ธ์ถœ! ํŠน์ • ์‹œ๊ฐ„์ด ์ง€๋‚˜๊ฐ€๊ฑฐ๋‚˜ ์„œ๋ธ”๋ฆฟ์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ๊ฐ•์ œ๋กœ desrory ํ•˜๋ฉด ๊ทธ๋•Œ ์‚ญ์ œ๋œ๋‹ค.

 

 

 

response , request ํ• ๋•Œ charset ์„ค์ •์„ utf-8๋กœ ๋ฐ”๊ฟˆ(์ง๋ ฌํ™”)

- request.setCharacterEncoding("utf-8");

- response.setContentType("text/html;charset=utf-8");

 

์—ฌ๊ธฐ์„œ text/html์€ mimeํƒ€์ž…, ์•„๋ž˜์—์„œ ํ™•์ธํ•จ.

 

 

 

 

 

https://developer.mozilla.org/ko/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types

 

 

-์‚ฌ์šฉ์ž๊ฐ€ ๋ฆฌํ€˜์ŠคํŠธํ•˜๋ฉด ์•„ํŒŒ์น˜๋Š” jspํŒŒ์ผ์ธ๊ฐ€๋ฅผ ํ™•์ธํ•˜๊ณ  ํ†ฐ์ผ“์œผ๋กœ ๋„˜๊น€. ํ†ฐ์ผ“์˜ ์ œ์ผ์ฒ˜์Œ์€ ๋””์ŠคํŒจ์ฒ˜๊ฐ€ ์–ด๋–ค ์„œ๋ธ”๋ฆฟ์ธ์ง€ ํ™•์ธํ•œ์ง€ ์ผ๋‹จ์€ ๋‹ค ๋‚š์•„์ฑ„ ํ™•์ธํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋””์ŠคํŒจ์ฒ˜(web.xml) ์—์„œ ์ธ์ฝ”๋”ฉ์„ ์ฒ˜๋ฆฌํ•˜๋ฉด ๊ฐ๊ฐ์˜ ์„œ๋ธ”๋ฆฟ์— ์ธ์ฝ”๋”ฉ์„ค์ •์„ ํ•˜์ง€์•Š์•„๋„๋œ๋‹ค. ํ†ฐ์บฃ์˜ ๋ฌธ์ง€๊ธฐ ๋””์ŠคํŒจ์ฒ˜ web.xml

 

 

 

 

 

-web.xmlํŒŒ์ผ ๋งŒ๋“ค์–ด์คŒ

(tip/xmlํŒŒ์ผ์€ ํƒœํฌ์˜ ๊ทœ์น™์ด์—†์ง€๋งŒ ์—ด๋ฉด ๋‹ซ์•„์•ผํ•จ. JS->JAVA๋กœ ๋„˜๊ธธ๋•Œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋กœ ์ž๋ฐ”๋กœ ๋„˜๊ธธ ์ˆ˜ ์žˆ๋‹ค. ํ†ต์‹ ์„ ์œ„ํ•œ ์ค‘๊ฐ„๋ฐ์ดํ„ฐ์ด๋‹ค.ํŒŒ์ผ์ด ๋ฌด๊ฑฐ์šด ๋‹จ์ ์ด ์žˆ์–ด ์š”์ฆ˜์€ json("key" : value,...์˜ )์„ ์‚ฌ์šฉํ•œ๋‹ค.)

 

 

 

* JSP request ํ•œ๊ธ€์„ค์ •

 

1. web.xmlํŒŒ์ผ์€ ํ†ฐ์ผ“์— ๋“ค์–ด์™€์„œ ๋‚ด ํ”„๋กœ์ ํŠธ๊ฐ€ ์‹คํ–‰๋˜๊ธฐ ์ „์—

๊ฐ€์žฅ ๋จผ์ € ์‹คํ–‰๋˜๋Š” ํ•„ํ„ฐ๋ง ํŒŒ์ผ(๋ฌธ์ง€๊ธฐ)

UTF-8 ์„ธํŒ…์„ ํ•˜๋ฉด ๋œ๋‹ค

 

 

2. ํ†ฐ์บฃ์„œ๋ฒ„์— ์žˆ๋Š” web.xmlํŒŒ์ผ์€ ํŠน์ •ip๋“ฑ์„ ์ฐจ๋‹จํ• ์ˆ˜์žˆ๊ณ  ๋‚ด ํ”„๋กœ์ ํŠธ๋กœ ์˜ค๋ฒ„๋ผ์ด๋“œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

WebContent/WEB-INF/web.xml

=>WEB-INF ์™ธ๋ถ€์—์„œ ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€ํ•˜๋‹ค(๋ณด์•ˆํด๋”)

 

 

 

3. ์‹ค์ œ ์„ธํŒ…ํ•˜๋Š” ๋ฐฉ๋ฒ•

(๋ฆฌํ€˜์ŠคํŠธ ์ „์—ญ์„ค์ •, ๋ฆฌ์Šคํฐ์Šค๋Š” ์‘๋‹ตํ•˜๋Š” ๊ณณ์— ๋‹ค ์„ค์ • ํ•ด์ค˜์•ผํ•จ.)

-----------------------------web.xml---------------------------------------------

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="3.1"

xmlns="http://xmlns.jcp.org/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaeehttp://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">



<filter>

<filter-name>Set Character Encoding</filter-name>

<filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>

<init-param>

<param-name>encoding</param-name>

<param-value>utf-8</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>Set Character Encoding</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

--------------------------------------------------------------------------------------

 

<url-pattern>/*</url-pattern>

- *์€ ๋ชจ๋‘~~๋ฅผ ํฌํ•จํ•˜๊ณ  /cos* ๋“ฑ์œผ๋กœ๋„ ์„ค์ • ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

 

 

* JSP respones ํ•œ๊ธ€์„ค์ •

1. MIME ํƒ€์ž…์„ ์ฐธ๊ณ ํ•ด์„œ ํ•„์š”ํ•œ ๊ณณ๋งˆ๋‹ค ์„ค์ •

2. ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

response.setContentType("text/html;charset=utf-8");

 

 

 

 

 

@WebServlet("/cos")

์›๋ž˜๋Š” XML๋กœ ๊ฑธ์—ˆ๋Š”๋ฐ ์ž๋ฐ”1.5 ๋ฒ„์ „๋ถ€ํ„ฐ ์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ ํ•œ์ค„๋งŒ ๊ฑธ๋ฉด ๋œ๋‹ค.

 

์–ด๋ ค์›ก

 

 

 

์ •๋ฆฌ

1. web.xml ์€ ๋ฌธ์ง€๊ธฐ, ํ•„ํ„ฐ๋ง

2. http://localhost:8000/์ปจํ…์ŠคํŠธํŒจ์Šค/cos // cos๋Š” ์„œ๋ธ”๋ฆฟ ์–ด๋…ธํ…Œ์ด์…˜ ์ด๋ฆ„ ULI ๋ฐฉ์‹

http://localhost:8000/์ปจํ…์ŠคํŠธํŒจ์Šค/home.html // ULI๋ฐฉ์‹

3. ์ปจํ…์ŠคํŠธ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ• ํ™•์ธํ•˜๊ธฐ

4. ํฌํŠธ๋ณ€๊ฒฝ๋ฐฉ๋ฒ• ํ™•์ธํ•˜๊ธฐ

5. view -> view๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์‚ฌ์šฉ ํ•˜์ง€์•Š์Œ.

v->์ปจํŠธ๋กค๋Ÿฌ->v๋ฅผ ํ†ตํ•ด ํ˜ธ์ถœํ•จ. ํŽ˜์ด์ง€ ํ˜ธ์ถœ์€ ๋ฌด์กฐ๊ฑด ์ปจํŠธ๋กค๋Ÿฌ(์„œ๋ธ”๋ฆฟ)์„ ํ†ตํ•ด

 

 

 

 

ํฌํŠธ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•

servers ์˜ web.xml์˜ ๊ธฐ์กด ํฌํŠธ๋ฒˆํ˜ธ ์ฐพ์•„์„œ ์ˆ˜์ • ํ›„ ๋‹ค์‹œ ์„œ๋ฒ„๋ฅผ ์—ด๋ฉด ํฌํŠธ๋ฒˆํ˜ธ๊ฐ€ ๋ณ€๊ฒฝ๋œ๋‹ค.

0~1023:์ž˜์•Œ๋ ค์ง„ํฌํŠธ well-Known ํฌํŠธ๋กœ ์ด ์™ธ๋Š” ํฌํŠธ๋ฒˆํ˜ธ ์ž์œ ๋กญ๊ฒŒ ์„ค์ • ํ• ์ˆ˜ ์žˆ๋‹ค.

 

'java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

jsp ๊ธฐ์ดˆ  (0) 2020.10.30
JSP ๊ธฐ๋ณธ๊ตฌ์กฐ  (0) 2020.10.30
์ฟผ๋ฆฌ์ŠคํŠธ๋ง  (0) 2020.10.28
JSP-์‹œ์ž‘ํ•˜๊ธฐ(2)  (0) 2020.10.28
JSP-์‹œ์ž‘ํ•˜๊ธฐ(1)  (0) 2020.10.28