๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€

(135)
์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์˜ ๊ด€๊ณ„ Spring Quick Start(์ฑ…)์˜ Day4 class03 ์„ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ์•„์ฃผ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค! characterEncoding org.springframework.web.filter.CharacterEncodingFilter encoding EUC-KR characterEncoding *.do contextConfigLocation classpath:applicationContext.xml org.springframework.web.context.ContextLoaderListener dispatcher org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:dispatche..
intelliJ ํ†ฐ์บฃ ์„œ๋ฒ„๋กœ ์‹คํ–‰ํ•˜๊ธฐ 1. add Configuration Template์—์„œ Tomcat Server > Local Warning์ด ๋œจ๋Š”๋ฐ ์˜†์— ๋นจ๊ฐ„ ์ „๊ตฌ๋กœ Fix ๋ถ€๋ถ„์„ ๋ˆ„๋ฅด๋ฉด war์™€ war:exploded๊ฐ€ ๋œฌ๋‹ค. ๋ฐ‘์— ๊ฒƒ์„ ํด๋ฆญํ•œ๋‹ค. Application context์— "/๋ธŒ๋ผ์šฐ์ €์—์„œํ˜ธ์ถœ๋˜๊ธธ์›ํ•˜๋Š”ํ”„๋กœ์ ํŠธ์ด๋ฆ„" ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. 2. ์ด๋ ‡๊ฒŒ ์„ค์ •์„ ๋‹ค ํ•˜๊ณ  ์ ์šฉํ•˜๋ฉด Run button(์ดˆ๋ก์ƒ‰ ์„ธ๋ชจ ๋ฒ„ํŠผ)์ด ํ™œ์„ฑํ™”๋œ๋‹ค. ๋ˆŒ๋Ÿฌ๋ณด์ž!
IntelliJ๋กœ, Spring ํ”„๋กœ์ ํŠธ(maven) ์ƒ์„ฑํ•˜๊ธฐ ๐Ÿ’ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ 1. maven์˜ webapp์œผ๋กœ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•œ๋‹ค. maven์„ ์ด์šฉํ•˜์—ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ pom.xml ํŒŒ์ผ๊ณผ webapp ๋””๋ ‰ํ† ๋ฆฌ ๋ฐ‘์— webapplication ์„ค์ •์„ ์œ„ํ•œ web.xml ํŒŒ์ผ์ด ์ƒ์„ฑ๋œ๋‹ค. 2. pom.xml์— ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. ์Šคํ”„๋ง 5.3.2๋กœ ์ž‘์„ฑํ–ˆ๋˜ pom.xml์€ ์—ฌ๊ธฐ์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 16๋ฒˆ์งธ ์ค„ ์ดํ›„ (properties)๋กœ ๋ณต๋ถ™ํ•ด์ค€๋‹ค. ๋ฐ‘์— ๋ฒ„ํŠผ ํด๋ฆญํ•˜๋ฉด reload ๋œ๋‹ค. 3. Spring MVC ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. ๋ฃจํŠธํด๋” ์šฐํด๋ฆญ ํ›„ > Add Frameworks Support > Spring MVC ํ•˜๋ฉด webapp directory์— applicationContext.xml์™€ dispatcher-servlet...
IntelliJ Add Framework Support์— Spring์ด ๋ณด์ด์ง€ ์•Š์„ ๋•Œ IntelliJ Add Framework Support์— Spring์ด ๋ณด์ด์ง€ ์•Š์„ ๋•Œ ์ฆ‰, ๋ฐ‘์— ๋ถ€๋ถ„์ด ๋ณด์ด์ง€ ์•Š์„ ๋•Œ๋Š” File > Project Structure (ctrl + alt + shift + s) ์— ๋“ค์–ด๊ฐ€์„œ Facets > Spring ํด๋ฆญ > ์‚ญ์ œ๋ฒ„ํŠผ ๋ˆ„๋ฅด๊ธฐ ๋‹ค์‹œ Add Framework Support์— ๋“ค์–ด๊ฐ€๋ฉด Spring ๊ด€๋ จ ๋ฉ”๋‰ด๋“ค์ด ์ƒ๊ธด ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
์–ด๋…ธํ…Œ์ด์…˜์„ ์ ์šฉํ•œ Spring MVC ๊ฒŒ์‹œํŒ ๊ฐœ๋ฐœ Spring Quick Start(์ฑ…)์˜ Day4 class01~02 ์‹ค์Šต์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๊ธฐ๋กํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ์‹ค์Šตํ•œ ์ฝ”๋“œ์˜ ๋งํฌ์ž…๋‹ˆ๋‹ค. 1. ์ปจํŠธ๋กค๋Ÿฌ ๊ฐ์ฒด์— @Controller ๋“ฑ๋กํ•˜๊ธฐ @Controller๋กœ ๋“ฑ๋ก๋œ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์Šค์บ”๋˜๊ธฐ ์œ„ํ•ด ์Šคํ”„๋ง ์„ค์ • ํŒŒ์ผ(webapp/WEB-INF/presentation-layer.xml)์— ์œผ๋กœ ํŒจํ‚ค์ง€ ์œ„์น˜๋ฅผ ์ง€์ •ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์ปจํŠธ๋กค๋Ÿฌ ํด๋ž˜์Šค์— @Component๋ฅผ ์ƒ์†ํ•œ @Controller๋ฅผ ๋“ฑ๋กํ•œ๋‹ค. 2. @RequestMapping ์‚ฌ์šฉํ•˜๋ฉด์„œ Controller ํ†ตํ•ฉํ•˜๊ธฐ @RequestMapping ์Šคํ”„๋ง์—์„œ๋Š” @RequestMapping์„ ์ด์šฉํ•˜์—ฌ HandlerMapping ์„ค์ •์„ ๋Œ€์ฒดํ•œ๋‹ค. HandlerMapping ์€ ์ด์ „์— ์Šคํ”„๋ง ์„ค์ • ํŒŒ์ผ์—์„œ ์ง€..
๊ฒ€์ƒ‰๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฐ์ฒด: HttpSession, HttpServletRequest, ModelAndView ์Šคํ”„๋ง MVC๋ฅผ ์ ์šฉํ•˜์—ฌ Controller๋ฅผ ์ž‘์„ฑํ•˜๋˜ ์ค‘ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•ด๋‘๋Š” ๊ฐ์ฒด์— ๋Œ€ํ•ด์„œ ์ด์•ผ๊ธฐํ•ด๋ณด๋ ค ํ•œ๋‹ค. import javax.servlet.http.HttpSession; HttpSession๋Š” ํด๋ผ์ด์–ธํŠธ ๋ธŒ๋ผ์šฐ์ € ํ•˜๋‚˜๋‹น ํ•˜๋‚˜์”ฉ ์„œ๋ฒ„ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์„ฑ๋˜์–ด ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ์ •๋ณด๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์„ธ์…˜์— ๋งŽ์€ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜๋ฉด ๋ ์ˆ˜๋ก ์„œ๋ฒ„์— ๋ถ€๋‹ด์„ ์ค„ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค. import javax.servlet.http.HttpServletRequest; ๊ทธ๋ž˜์„œ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋Š” HttpServletRequest์— ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ๋งž๋‹ค. HttpServletRequest๋Š” ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์œผ๋กœ ์ƒ์„ฑ๋๋‹ค๊ฐ€ ์‘๋‹ต๋ฉ”์„ธ์ง€๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋กœ ์ „์†ก๋˜๋ฉด ์ž๋™์œผ๋กœ ์‚ญ์ œ๋˜๋Š” ์ผํšŒ์„ฑ ๊ฐ์ฒด์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์„œ๋ฒ„์— ๋ถ€๋‹ด์„ ..
์Šคํ”„๋ง ์ธ์ฝ”๋”ฉ ์„ค์ • ์Šคํ”„๋ง์—์„œ๋Š” ์ธ์ฝ”๋”ฉ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด CharacterEncodingFilter ํด๋ž˜์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค. web.xml ํŒŒ์ผ์— CharacterEncodingFilter๋ฅผ ๋“ฑ๋กํ•˜๋ฉด ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์— ๋Œ€ํ•ด์„œ ์ผ๊ด„์ ์œผ๋กœ ์ธ์ฝ”๋”ฉ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. [web.xml ์ค‘] characterEncoding org.springframework.web.filter.CharacterEncodingFilter encoding EUC-KR characterEncoding *.do ๋Š” ๊ณผ ๊ฑฐ์˜ ๋น„์Šทํ•œ ํ˜•ํƒœ๋กœ ๋“ฑ๋กํ•œ๋‹ค.
WEB-INF/action-servlet.xml ํŒŒ์ผ ์ด๋ฆ„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ• action org.springframework.web.servlet.DispatcherServlet action *.do web.xml์—์„œ servlet-name์ด action์ด๋ผ์„œ "WEB-INF/action-servlet.xml"์ด ๊ธฐ๋ณธ์ ์ธ DispatcherServlet ์„ค์ • ํŒŒ์ผ์ด๋‹ค. DispatcherServlet์˜ ์„ค์ • ํŒŒ์ผ ์ด๋ฆ„์„ ๋ฐ”๊พธ๊ณ  ์‹ถ๋‹ค๋ฉด action org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/config/presentation-layer.xml action *.do init-param์œผ๋กœ contextConfigLocation ์ง€์ •ํ•˜๊ณ  /WEB-INF/config/์›ํ•˜๋Š”_ํŒŒ์ผ_์ด๋ฆ„ ..
Spring MVC๋ฅผ ์ ์šฉํ•œ ๊ฒŒ์‹œํŒ ๊ฐœ๋ฐœ Spring Quick Start(์ฑ…)์˜ Day3 class05~07 ์‹ค์Šต์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๊ธฐ๋กํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ์‹ค์Šตํ•œ ์ฝ”๋“œ์˜ ๋งํฌ์ž…๋‹ˆ๋‹ค. 1. DispatcherServlet ๋“ฑ๋ก WEB-INF/web.xml ํŒŒ์ผ์— ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์ œ๊ณตํ•˜๋Š” DispatcherServlet ๋“ฑ๋กํ•˜๊ธฐ ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ".do" ์š”์ฒญ์ด ์žˆ์–ด์•ผ DispatcherServlet ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. [web.xml] action org.springframework.web.servlet.DispatcherServlet action *.do 2. ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ ๊ตฌ๋™ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์œผ๋กœ DispatcherServlet ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค. DispatcherServlet์€ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ ์ฒ˜๋ฆฌ์— ํ•„์š”ํ•œ HandlerMa..
EL & JSTL ๋ž€? EL: Expression Language JSP 2.0์—์„œ ์ƒˆ๋กœ ์ถ”๊ฐ€๋œ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋กœ์„œ, ๊ธฐ์กด์˜ ํ‘œํ˜„์‹์„ ๋Œ€์ฒดํ•˜๋Š” ํ‘œํ˜„์–ธ์–ด์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด session์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ JSP ํ™”๋ฉด์— ์ถœ๋ ฅํ•  ๋•Œ, ๊ธฐ์กด์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ํ‘œํ˜„ํ–ˆ๋‹ค๋ฉด, EL์„ ์ด์šฉํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ${userName} ์•„๋ž˜์˜ ์ฝ”๋“œ์—์„œ ๊ฐ„๊ฐ„ํžˆ ${ } ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ’์„ ์“ฐ๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. [ getBoard.jsp ] ๊ธ€ ์ƒ์„ธ Log-out ์ œ๋ชฉ ์ž‘์„ฑ์ž ${board.writer } ๋‚ด์šฉ ${board.content } ๋“ฑ๋ก์ผ ${board.regDate } ์กฐํšŒ์ˆ˜ ${board.cnt } ๊ธ€๋“ฑ๋ก ๊ธ€์‚ญ์ œ ๊ธ€๋ชฉ๋ก JSTL: JSP Standard Tag Library JSP ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๋‹ค ๋ณด๋ฉด ..