Spring(64)
-
Spring Validation ํผ ๋ฐ์ดํฐ ๊ฒ์ฆ Validator, @Vaild
์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋๋๋ฐ ์์ด ํผ ๋ฐ์ดํฐ ๊ฒ์ฆ์ ๋ฐ๋์ ํด์ผํ๋ ๊ณผ์ ์ค ํ๋์ด๋ค. ๋จผ์ ํด๋ผ์ด์ธํธ์์ submit ํ๊ธฐ์ ์ ๊ฒ์ฆ์ ํด์ค์ผํ๊ณ , (JavaScript) ๊ทธ ๋ค์ ์๋ฒ์์๋ ๊ฒ์ฆ์ ํด์ค์ผํ๋ค. (Servlet, jsp..) ์์ ์์๋ ๊ฐ๋จํ๊ฒ ์ด๋ ๊ฒ uid, ์์ฑ์, ์ ๋ชฉ์ ์ ๋ ฅ๋ฐ๋ ์์ ์ด๋ค. write.jsp uid(์ซ์) : ์์ฑ์(*) : ์ ๋ชฉ : writeOk.jsp uid : ${w.uid } ์์ฑ์ : ${w.name } ์ ๋ชฉ : ${w.subject } ๋์๊ฐ๊ธฐ ์ฌ๊ธฐ์ uid๋ ๋น์ด์์ผ๋ฉด ์๋๋ฉฐ ์ซ์๋ง ์ ๋ ฅํด์ผํ๋ฉฐ, ์์ฑ์ ์ญ์ ๋น์ด์์ผ๋ฉด ์๋๋๋ก ์ค์ ํ ๊ฒ์ด๋ค. 1๏ธโฃ BindingResult BindingResult ๋งค๊ฐ๋ณ์ ์ญ์ Dispatcher์์ ์๋ ์ฃผ์ ํด์ฃผ๋ ๊ฐ..
2021.11.26 -
Spring Request Parameter (@RequestParam, @ModelAttribute, @PathVariable, redirect)
์คํ๋ง์์ request parameter๋ฅผ ๋ฐ๋ ๋ค์ํ ๋ฐฉ๋ฒ์ ๋ํด ์ ๋ฆฌํ๋ค. 1๏ธโฃ request parameter ์ฒ๋ฆฌ 2๏ธโฃ GET ๋ฐฉ์/ POST ๋ฐฉ์ 3๏ธโฃ @RequestParam 4๏ธโฃ ์ปค๋งจ๋ ๊ฐ์ฒด (Bean ๊ฐ์ฒด) 5๏ธโฃ @ModelAttribute 6๏ธโฃ @PathVariable 7๏ธโฃ redirect 1. HttpServletRequest ๋งค๊ฐ๋ณ์ ํธ๋ค๋ฌ ๋ฉ์๋์์ ํ๋ผ๋ฏธํฐ๋ก HttpServletRequest๋ฅผ ๋ฐ์ ์ ์๋ค. HttpServletRequest์๋ parameter ๋๋ request ๊ด๋ จ ์ ๋ณด๋ค์ด ๋ด๊ฒจ์๋ค. ํ๋ผ๋ฏธํฐ๋ก id ๊ฐ ์ค์ 2. GET, POST ๋ฐฉ์์ผ๋ก request ๋ฐ๊ธฐ ๊ธฐ๋ณธ์ ์ผ๋ก @RequestMapping์ GET๋ฐฉ์์์ ๋์ํ๊ธฐ ๋๋ฌธ์ ์๋ต์ด ๊ฐ๋ฅํ..
2021.11.26 -
Spring @Controller, @RequestMapping
1. Controller ํด๋์ค ๊ธฐ๋ณธ์ ์ผ๋ก Controller ํด๋์ค๋ฅผ ์์ฑํ ๋๋ 1๏ธโฃ @Controller๋ฅผ ์ด์ฉํ ํด๋์ค ์์ฑ 2๏ธโฃ @RequestMapping์ ์ด์ฉํ ์์ฒญ ๊ฒฝ๋ก ์ง์ 3๏ธโฃ ์์ฒญ ์ฒ๋ฆฌ ๋ฉ์๋ (handler) ๊ตฌํ 4๏ธโฃ "๋ทฐ ์ด๋ฆ" ํน์ ModelAndView ๋ฆฌํด ์ด๋ url mapping๊ณผ ๋ฉ์๋ ์ด๋ฆ ๋ทฐ ์ด๋ฆ์ ๊ฐ์ ํ์๋ ์์ง๋ง ํท๊ฐ๋ฆด ์๋ ์์ผ๋ ํ๋จ์ ์์์ ! 2. ๋ค์ํ path,url ์์๋ณด๊ธฐ request path๋ /common ์ด๋ฉฐ context path๋ /sts10_request์ด๋ค. Servlet request URI : context path : request path : VIEW file : VIEW(JSP) url : VIEW Path : u..
2021.11.26 -
Spring Error ์์ธ ์ฒ๋ฆฌ ํ๋ ๋ฒ
Spring์ผ๋ก ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ณ ์ด๋ค ์ด์ ๋ก ์๋ฌ๊ฐ ๋ฐ์ํ ์๋ ์๋ค. ๊ทผ๋ฐ ๊ทธ๋ ๋ฐ๋ก ์๋ฌ ํ์ด์ง๋ฅผ ๋ง๋ค์ง ์๊ณ ๋ธ๋ผ์ฐ์ ์ ์๋ฌ ํ์ด์ง๋ฅผ ๋ํ๋ด๋ฉด ์ฌ์ฉ์๋ ๋นํฉ์ค๋ฌ์ธ ์ ์๋ค. ๋ฐ๋ผ์ ์์ธ ํ์ด์ง๋ฅผ ์์ฑํด์ฃผ๋ ๊ฒ์ด ์ข๋ค. ์ด๋ @ExceptionHandler ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํด์ ์ปจํธ๋กค๋ฌ์ ๋ฉ์๋์์ ์์ธ๊ฐ ๋ฐ์ํ์ ๋ ์์ธ ์ฒ๋ฆฌ๋ฅผ ํ ์ ์๋ค. ์์ฒญ ์ฒ๋ฆฌ ๊ณผ์ ์์ ์๋ฌ๊ฐ ๋ฐ์ํ์ต๋. ๋น ๋ฅธ ์๊ฐ ๋ด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋๋ก ํ๊ฒ ์ต๋๋ค. ์๋ฌ ํ์ : ์๋ฌ ๋ฉ์์ง : Home ์ด๋ฐ์์ผ๋ก ์์ฑํ๊ณ ์ ๋ฒ์ ๋ง๋ค์๋ Spring mvc ์ฌ์ฉ์ ๊ด๋ฆฌ ํ๋ก์ ํธ์์ ์ผ๋ถ๋ฌ ์๋ฌ๋ฅผ ๋ง๋ค์ด๋ดค๋ค. ์ผ๋ถ๋ฌ ์ฌ๊ธฐ๋ฅผ 1 ์ถ๊ฐํด์ sql๋ฌธ์์ ์๋ฌ๋ฅผ ๋ผ ์์ ์ด๋ค. ๊ทธ๋ฌ๋ฉด viewErrorํ์ด์ง์์ ์๋ฌ ํ์ ๊ณผ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํด์ค ๊ฒ..
2021.11.24 -
Spring MVC, Mybatis [2] ๊ฐ๋จํ ์ฌ์ฉ์ ๊ฒ์ํ ๋ง๋ค๊ธฐ
๊ทธ๋์ Spring ๊ณต๋ถ๋ฅผ ํ๋ฉด์ ํด์๋ ์ฌ์ฉ์ ๊ด๋ฆฌ ํ๋ก์ ํธ๋ฅผ ์ด์ ๊ฐ๋จํ์ง๋ง ํ๋ฉด ๊ตฌํ๊น์ง ํด์ ๋ง๋ค์ด ๋ณผ ์์ ์ด๋ค. Spring MVC Model2 ๋ฅผ ํ์ฉํด์ ํ ์์ ์ด๋ค. 1. Users ํ ์ด๋ธ Users ํ ์ด๋ธ์ userid, name, gender, city๋ก ๊ตฌ์ฑ๋์ด ์๋ค. 2. ์๋น์ค ๊ณ์ธต UserService ์ธํฐํ์ด์ค์ ์ด๋ฅผ ๊ตฌํํ UserServiceImple๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. 1๏ธโฃ UserService 2๏ธโฃ UserServicImple 3. ๋ฐ์ดํฐ ์ก์ธ์ค ๊ณ์ธต UserDAO ์ธํฐํ์ด์ค์ ์ด๋ฅผ ๊ตฌํํ UserDAOJDBC 1๏ธโฃ UserDAO 2๏ธโฃ UserDAOJDBC 4. Mapping ํ์ผ 5. MyBatis-Config ํ์ผ 6. Mapper ์ธํฐํ์ด์ค 7. ๋น ์ค์ ํ์ผ..
2021.11.24 -
Spring EL(Expression Language) ๊ณผ JSTL (Java Standard Tag Library)
1. EL (Expression Language) : EL ํํ์์ {} ๋ก ๋ฌถ๊ณ $ ๊ธฐํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค. EL์ ์ ์ฅ ๊ฐ์ฒด์ ์ถ๋ ฅ์ ๋จ์ํ ํ๋ ์ฉ๋๋ก ์ฌ์ฉ๋์ด ์ ์ฅ ๊ฐ์ฒด๋ฅผ ์ถ๋ ฅํ ๋ ์ด๋ฐ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค. - EL ํน์ง EL์ ๊ธฐ๋ณธ์ ์ผ๋ก 4๊ฐ์ง Scope(page, request, session, application)์ผ๋ก ๊ตฌ์ฑ๋์ด ๊ฐ์ฒด์ ์ ๊ทผํ์ฌ ์ถ๋ ฅ์ ์ฒ๋ฆฌํ๋ค. EL์์๋ ํด๋น๊ฐ์ด NULL์ด๊ฑฐ๋ ๊ณต๋ฐฑ์ผ ๊ฒฝ์ฐ์๋ ์๋ฌด ๋ด์ฉ๋ ํ์ํ์ง์๊ณ ์๋ฌ๋ ๋ฐ์ํ์ง ์๋๋ค. 2. EL๊ณผ ์คํฌ๋ฆฌํ ๋น๊ต -> ${param.name} -> ${greet} -> ${user} -> ${user.name} -> ${sessionScope.user.name} 2. JSTL(Java Standard Tag Li..
2021.11.23 -
Spring MVC [1] Spring MVC ๊ฐ๋ ๋ฐ ํ๊ฒฝ์ค์
1. MVC (Model-View-Controller) ํจํด MVC ํจํด์ ์ํํธ์จ์ด ๊ณตํ์์ ์ฌ์ฉ๋๋ ์ํคํ ์ฒ ํจํด์ผ๋ก MVC ํจํด์ ์ฃผ ๋ชฉ์ ์ business logic๊ณผ presentation logic์ ๋ถ๋ฆฌํ๋ ๊ฒ์ด๋ค. -> MVC ํจํด์ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ก๋ถํฐ ๋น์ง๋์ค ๋ก์ง์ ๋ถ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ์๋ก ์ํฅ์ด ์์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋๋ฐ ํจ์จ์ ์ด๋ค. Model : ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด (๋ฐ์ดํฐ, business logic ํฌํจ) View : ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ ํ๋ฉด (Presentation logic) Controller : Model ๊ณผ View ์ฌ์ด์ ์ํธ์์ฉ์ ๊ด๋ฆฌํ๋ค. 1๏ธโฃ Model ์ปดํฌ๋ํธ : ๋ฐ์ดํฐ ์ ์ฅ์(๋ฐ์ดํฐ๋ฒ ์ด์ค) ์ ์ฐ๋ํ์ฌ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๋ฐ์ดํฐ๋ ์ฌ์ฉ์์๊ฒ ์ถ๋ ฅํ ๋ฐ์ด..
2021.11.23 -
[Error] cvc-id.3: A field of identity constraint 'web-app-servlet-name-uniqueness' matched element 'web-app', but this element does not have a simple type. ์๋ฌ ํด๊ฒฐ ๋ฐฉ๋ฒ
Spring ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ณ web.xml์ DispatcherServlet์ ์ค์ ํด์ฃผ๋ ค๋๋ฐ ์ด๋ฐ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. ๊ทธ๋ฅ ๊ตฌ๊ธ๋ง ํด๋ณด๋ ์ ๋ง ๊ฐ๋จํ๊ฒ http://java.sun.com ์ http://Java.sun.com์ผ๋ก ๋ก ๋ฐ๊ฟ์ฃผ๋ ํด๊ฒฐ๋๋คใ ใ ใ ใ ใ
2021.11.23 -
Spring MyBatis [2] Mapper ์ธํฐํ์ด์ค ๊ฐ๋ , ์ค์
1. Mapper ์ธํฐํ์ด์ค : Mapper ์ธํฐํ์ด์ค๋ Mapping ํ์ผ์ ๊ธฐ์ฌ๋ SQL์ ํธ์ถํ๊ธฐ ์ํ ์ธํฐํ์ด์ค์ด๋ค. ๋ฐ๋ผ์ Mapping ํ์ผ์ ์๋ SQL์ ์๋ฐ ์ธํฐํ์ด์ค๋ฅผ ํตํด ํธ์ถํ ์ ์๋๋ก ํด์ค๋ค. 1๏ธโฃ Mapper ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ง ์์์ ๋ -> Mapper ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด, SQL์ ํธ์ถํ๋ ํ๋ก๊ทธ๋จ์ SqlSession์ ๋ฉ์๋์ ์๊ท๋จผํธ์ ๋ฌธ์์ด๋ก ์ง์ ํด์ผํ๋๋ฐ ์ด๋ ๋ฌธ์์ด๋ก ์ง์ ํ๊ธฐ ๋๋ฌธ์ ์คํ๋๋ฌธ์ ์๋ฌ๊ฐ ๋ฐ์ํ ์ ๋ ์๋ค. 2๏ธโฃ Mapper ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ ๋ -> UserMapper ์ธํฐํ์ด์ค๋ ๊ฐ๋ฐ์๊ฐ ์์ฑํ๋ฉด ๋๋ค. 2. Mapper ์ธํฐํ์ด์ค ์์ฑ 1๏ธโฃ Mapper ์ธํฐํ์ด์ค๋ฅผ ์์ฑํ๋ค. 2๏ธโฃ Mapping ํ์ผ์ namespace๋ฅผ..
2021.11.18 -
Spring MyBatis [1] MyBatis ๊ฐ๋ , MyBatis-Spring ์ปดํฌ๋ํธ ์ญํ , MyBatis-Spring ๊ฐ๋จํ ์ฌ์ฉ์ ๊ด๋ฆฌ ์์
1. MyBatis : MyBatis๋ ์๋ฐ ์ค๋ธ์ ํธ์ SQL๋ฌธ ์ฌ์ด์ ์๋ Mapping ๊ธฐ๋ฅ์ ์ง์ํ๋ ORM ํ๋ ์์ํฌ์ด๋ค. - ํน์ง 1๏ธโฃ ์ฌ์ด ์ ๊ทผ์ฑ๊ณผ ์ฝ๋์ ๊ฐ๊ฒฐํจ 2๏ธโฃ SQL๋ฌธ๊ณผ ํ๋ก๊ทธ๋๋ฐ ์ฝ๋์ ๋ถ๋ฆฌ 3๏ธโฃ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๊ตฌํ ๊ฐ๋ฅ (JAVA, C#, NET, RUBY) 2. MyBatis ์ฃผ์ ์ปดํฌ๋ํธ -MyBatis3์ ์ฃผ์ ์ปดํฌ๋ํธ์ ์ญํ 1๏ธโฃ MyBatis ์ค์ ํ์ผ : ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ ์ฃผ์ ์ ๋ณด๋ Mapping ํ์ผ์ ๊ฒฝ๋ก ๋ฑ ๊ณ ์ ๋ ํ๊ฒฝ์ ๋ณด๋ฅผ ์ค์ ํ๋ค. 2๏ธโฃ SqlSessionFactoryBuilder : MyBatis ์ค์ ํ์ผ์ ๋ฐํ์ผ๋ก SqlSessionFactory๋ฅผ ์์ฑํ๋ค. 3๏ธโฃ SqlSessionFactory : SqlSession์ ์์ฑํ๋ค. 4๏ธ..
2021.11.17 -
Spring AOP[3] @Aspect ์ด๋ ธํ ์ด์ ์ ์ด์ฉํ AOP ๊ตฌํ, Advice ์ ์ํ๋ ์ด๋ ธํ ์ด์ ์ข ๋ฅ, Aspect ํด๋์ค ์์ฑ ๋ฐ ํ ์คํธ
1. Spring AOP ๊ตฌํ ๋ฐฉ๋ฒ 1๏ธโฃ XML ๊ธฐ๋ฐ์ POJO ํด๋์ค๋ฅผ ์ด์ฉํ AOP ๊ตฌํ : ๋ถ๊ฐ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ Advice ํด๋์ค๋ฅผ ์์ฑํ๊ณ , XML ์ค์ ํ์ผ์ ์ ์ด์ฉํด์ Aspect๋ฅผ ์ค์ ํ๋ค. (Advice์ Pointcut์ ์ค์ ํจ.) 2๏ธโฃ @Aspect ์ด๋ ธํ ์ด์ ์ ์ด์ฉํ AOP ๊ตฌํ โ : @Aspect ์ด๋ ธํ ์ด์ ์ ์ด์ฉํด์ ๋ถ๊ฐ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ Aspect ํด๋์ค๋ฅผ ์์ฑํ๋ค. Aspect ํด๋์ค์๋ Advice๋ฅผ ๊ตฌํํ๋ ๋ฉ์๋์ Pointcut์ ํฌํจํ๋ค. ๊ทธ๋ฆฌ๊ณ XML ์ค์ ํ์ผ์ ์ ์ค์ ํ๋ค. 2. Aspect ํด๋์ค ์ ์ธ ๋ฐ ์ค์ ํ๊ธฐ : Aspect ํด๋์ค์๋ 4๊ฐ์ง ์ ํ(Before, AfterReturning, AfterThrowing, After)์ Advice์ Poi..
2021.11.15 -
Spring AOP [2] Advice, AOP ์ค์ ๋ฐ ํ ์คํธ, PointCut ํํ์
1. Spring AOP ๊ตฌํ ๋ฐฉ๋ฒ 1๏ธโฃ XML ๊ธฐ๋ฐ์ POJO ํด๋์ค๋ฅผ ์ด์ฉํ AOP ๊ตฌํ : ๋ถ๊ฐ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ Advice ํด๋์ค๋ฅผ ์์ฑํ๊ณ , XML ์ค์ ํ์ผ์ ์ ์ด์ฉํด์ Aspect๋ฅผ ์ค์ ํ๋ค. (Advice์ Pointcut์ ์ค์ ํจ.) 2๏ธโฃ @Aspect ์ด๋ ธํ ์ด์ ์ ์ด์ฉํ AOP ๊ตฌํ : @Aspect ์ด๋ ธํ ์ด์ ์ ์ด์ฉํด์ ๋ถ๊ฐ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ Aspect ํด๋์ค๋ฅผ ์์ฑํ๋ค. Aspect ํด๋์ค์๋ Advice๋ฅผ ๊ตฌํํ๋ ๋ฉ์๋์ Pointcut์ ํฌํจํ๋ค. ๊ทธ๋ฆฌ๊ณ XML ์ค์ ํ์ผ์ ์ ์ค์ ํ๋ค. 2. Advice ์ข ๋ฅ 1๏ธโฃ Aroud Advice : Target์ ๋ฉ์๋๊ฐ ํธ์ถ๋๊ธฐ ์ด์ (Before) ์์ ๊ณผ ์ดํ (After) ์์ ์ ๋ชจ๋ ์ฒ๋ฆฌํด์ผํ ํ์๊ฐ ์๋ ๋ถ๊ฐ ๊ธฐ๋ฅ์ ์ ์ํ..
2021.11.15