๐๏ธ์ํํธ์จ์ด/๐java & Servlete & JSP

์๋ฐ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ (๋์ด๋ ์คํ)
๋์ด๋๋ ํ์ธ๋ฐ, ์๋ฐ ์ฒ์์ ๊ฐ๋ ์ก๋๋ฐ ํ์ฉํ๋ ๋ฌธ์ ๋ค์ด๋ค. ์ด๋ ต์ง ์์ผ๋ ์๊ฐ๋ ๋๋ง๋ค ํ๋์ฉ ๊ตฌํํด๋ดค๋ค. ๋ฌธ์ ๋ชฉ๋ก 1. ํ์ฌ๋ชธ๋ฌด๊ฒ์ ๋ชฉํ๋ชธ๋ฌด๊ฒ๋ฅผ ๊ฐ๊ฐ ์ ๋ ฅ ๋ฐ๊ณ , ์ฃผ์ฐจ ๋ณ ๊ฐ๋๋ชธ๋ฌด๊ฒ๋ฅผ ์ ๋ ฅ ๋ฐ์ ๋ชฉํ ๋ฌ์ฑ ์, ์ถํ ๋ฉ์ธ์ง๋ฅผ ๋์ฐ๋ ํ๋ก๊ทธ๋จ์ ๊ตฌํํ์์ค. (๊ฒฐ๊ณผํ๋ฉด-๋ค์๊ณผ ๊ฐ์ด ๋ํ๋ด๊ธฐ) 2. ์ ์ N์ ์ ๋ ฅ๋ฐ์ N * N ๋ฐฐ์ด์ ๋ค์๊ณผ ๊ฐ์ด ์ซ์๋ฅผ ์ ์ฅํ๊ณ ์ถ๋ ฅํ์์ค. 3. ์๋์ ๊ฐ์ด ํ์๋ค์ ์ฑ์ ์ ๋ณด๊ฐ ๋ฌธ์์ด๋ก ์ ์ธ๋์ด ์์ ๋ ๊ฐ ์ฑ์ ๋ณ ํ์ ์๋ฅผ ์ถ๋ ฅํ์์ค. String score = “A,A,B,C,D,A,C,D,D,D,F” 4. 8์๋ฆฌ ์ ์๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ฐ๋ณต๋ฌธ์ ํ์ฉํ์ฌ, ์ ๋ ฅ๋ฐ์ ์ ์์ ํฉ์ ๊ตฌํ์ฌ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. 5. ์ ์ n์ ์ ๋ ฅ๋ฐ์, 1, 2, 4, 7, 11 ..
![[Spring] ์คํ๋ง ์ฌ์ฉ๋ฒ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk0PI0%2FbtrlepNovYV%2FTeaSLCs7YEfiw49iRwgvxK%2Fimg.png)
[Spring] ์คํ๋ง ์ฌ์ฉ๋ฒ
Preference ํญ์์ ์คํํด์ผํ ๊ฒ๋ค 1.์๋ฐ ์ค์น ํ์ธ 2. tomcat ์๋ฒ ์ฐ๊ฒฐ ์ํ ํ์ธ edit์ ํตํด ์ค์ ์ค์น๋ ๋๋ ํ ๋ฆฌ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค 3.์๋ maven ์ ๋ณ๋์ ํ๋ก๊ทธ๋จ์ด๋ค Apache Maven ์ ์๋ฐ์ฉ ํ๋ก์ ํธ ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ์ ๋๋ค. ์๋๋ Maven์ด ํ๋ก์ ํธ๋ฅผ ๋ง๋๋ ๊ฒ์ด๋ค. ์ดํด๋ฆฝ์ค๋ ๋ณ๋์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ ํ์์์ด ๋ฐ๋ก ์คํ๊ฐ๋ฅํ๋๋ก maven(๋ฉ์ด๋ธ)์ ํฌํจํ๊ณ ์์ต๋๋ค. maven์ ๋ฌด์์ ํ๋๊ฐ? ํ๋ก์ ํธ๋ฅผ ์์ํ๋ ๊ฒ์์๋ถํฐ ์ต์ข ์ ์ผ๋ก ํ๋ก๊ทธ๋จ์ ์ ๋ฐ์ ์ธ ๋ฐฐ์น(deploy)๊น์ง์ ์์ ์ ์ผ๊ด์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ ๋๋ค. Spring(์คํ๋ง)์์ pom.xml ์ผ๋ก์ ์๋ฐ ํ๋ก์ ํธ ๋น๋๋ฅผ ์๋ํํด์ฃผ๋ ๋น๋ ํด์ ๋๋ค. ํผ ํ์ผ์ ์ค์ ์ ํ๋ฉด, ์ด๊ฒ์ ์ํด ๊ด๋ฆฌ๊ฐ ..

JSTL EL MVC(feat.Java)
์๋ ํ์ธ์ ๊ณต๋ถํ๋ ์ ์ด์ ๋๋ค. Java ์ MVC ๊ทธ๋ฆฌ๊ณ JSTL EL ์ด ์ด๋ป๊ฒ ์์ฉํ๋ ์๋ฆฌ์ธ์ง ๊ณต๋ถํด๋๋ก ํฉ์๋ค Java : ์คํฌ๋ฆฝํธ ๋ถ๋ถ - ํด์ํด์ฃผ๋ Tomcat - ์ต์ข ๊ฒฐ๊ณผ ๋ ๋๋ง์ JSP JSTL -JSP์์ ๋ง๋ค์ด ๋์ ํ๊ทธ - ์ด๋ฏธ ๋ง๋ค์ด์ ธ์๋ ํ๊ทธ๋ฅผ ์ด์ฉํ๋ ๊ฒ - ๋ผ์ด๋ธ๋ฌ๋ฆฌ - MVN (Maven ) Repository ์์ ํ์ํ API๋ฅผ ๊ฒ์์ ํด์, ์ง์ ๋ค์ด๋ก๋๋ฅผ ํ ์ ์๊ณ , dependency๋ฅผ ๋ณต์ฌํ ์ ์์ต๋๋ค - ํด๋น ์ฝ๋๋ฅผ dependency์ ๋ณต์ฌ ๋ถ์ฌ๋ฃ๊ธฐ๋ฅผ ํ์ฌ ๊ด๋ฆฌ๋ฅผ ์ํํฉ๋๋ค ๋งํฌ : https://mvnrepository.com/repos/central jar ํ์ผ ์์น๋ Dynamic Project๋ฅผ ๋ง๋ค๊ณ WebContent์์ Web-INF์์ ํด๋น..

MVC ํจํด ๊ณต๋ถํ๊ธฐ 1
ํ๋ก๊ทธ๋จ ๋ก๋๋งต! ๋ฌผ๋ก http ์น ๊ธฐ๋ฐ ๊ธฐ์ ์ ์ค์ํด์, ๊ธฐ๋ณธ ๋ฒ ์ด์์ ์ฒ ์ ํ ํ์ตํด์ผํ๋ค! jsp . servlet ์ ํตํด ๊ฐ๋ ์ ํ์คํ ์ก์๋๊ณ , ๋์ค์ spring์ ๋ฐฐ์ฐ๊ฒ ๋๋ฉด,
์ปดํ์ผ, ์ปดํ์ผ๋ฌ, ์๋ฐ ์คํฌ๋ฆฝํธ, ์๋ฐ, jsp, servlet ์ฉ์ด ์ ๋ฆฌ
์ฉ์ด์ ๋ฆฌ 1. ์ปดํ์ผ compile ์ปดํจํฐ๊ฐ ์คํํ ์ ์๋ ๊ธฐ๊ณ์ด ์ฝ๋๋ก ๋ณํํ๋ ๊ณผ์ ์ ์ปดํ์ผ ๊ณผ์ ์ด๋ผ๊ณ ํ๋ค 2. ์ปดํ์ผ๋ฌ compiler ์ปดํ์ผ์ ์ ๋ดํ๋ ์ํํธ์จ์ด๋ฅผ ์ปดํ์ผ๋ฌ๋ผ๊ณ ํ๋ค ์ปดํจํฐ์์๋ ๊ฐ ์ธ์ด๋ง๋ค ์ ์ฉ ์ปดํ์ผ๋ฌ๊ฐ ์๋ค -> ํน๋ณํ ์๋ฐ๋ ์์ค ํ๋ก๊ทธ๋จ์ ํ์ฅ์๊ฐ .java ์ด๊ณ , ์๋ฐ ์ ์ฉ ์ปดํ์ผ๋ฌ์ ์ํด .class ํ์ผ๋ก ์ปดํ์ผ๋๋ฉฐ, ํด๋์ค ํ์ผ์ ์๋ฐ ๊ฐ์ ๊ธฐ๊ณ์ ์ํด ์คํ๋๋ค 3. ์๋ฐ์ ์๋ฐ์คํฌ๋ฆฝํธ ๊ทธ๋ฆฌ๊ณ JSP , Servlet ์๋ฐ๋ ์์ฉ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ๋๋ฐ ์ฌ์ฉ๋๋ ๋๋ฃจ๋๋ฃจ ์ฐ์ด๋ ์ธ์ด์ด์ง๋ง, ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ปดํ์ผ ๊ณผ์ ์์ด HTML ํ์ด์ง์ ์์ค ํํ๋ก ๋ด์ฅ๋์ด ์น ๋ธ๋ผ์ฐ์ ์ ์ํด ๋ฒ์ญ๋์ด ์คํ๋๋ ์คํฌ๋ฆฝํธ ์ธ์ด์ด๋ค. ์น ๋ธ๋ผ์ฐ์ ์์ ํค๋ ๋ง์ฐ์ค ์ ๋ ฅ์ ๋ฐ์ ๋ฉ๋ด๋ฅผ..

jsp servlet
servlet ์๋ธ๋ฆฟ์ server+ applet ์ ํฉ์ฑ์ด์ด๋ค ์๋ฒ์์ ์คํด์ค๋๋ applet์ด๋ผ๋ ์๋ฏธ๋ก ์๋ฐ๋ฅผ ์ด์ฉํ์ฌ ์น์์ ์คํ๋๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ ๊ธฐ์ ์ด๋ค ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์ธ์ด๋ก php, asp ๋ฑ ๋ง๋ค ํ์ง๋ง ์์ฆ ๋ง์ ๊ธฐ์ ์์ ์ฌ์ฉํ๋ ๊ฒ์ jsp&sevlet์ด๋ค ์ด๋ ๋ค๋ฅธ ์น ๊ธฐ์ ์ ๋นํด ๋น ๋ฅธ ์๋ต์ ํด ์ค ์ ์๋ค๋ ์ฅ์ ์ด ์๊ธฐ ๋๋ฌธ์ด๋ค ์๋ธ๋ฆฟ์ ์๋ฐ ํด๋์ค ํํ์ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๋งํ๋ค ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์๋ฐ ํด๋์ค๊ฐ ์คํ๋๋๋ก ํ๊ธฐ ์ํด์๋ javax.servlet.http ํจํค์ง์์ ์ ๊ณตํ๋ HttpServlet ํด๋์ค๋ฅผ ์์๋ฐ์ ๊ตฌํํด์ผ ํ๋ค HttpServlet ํด๋์ค๋ฅผ ์์ ๋ฐ์ ๋ง๋ ์๋ธ ํด๋์ค๋ฅผ ์๋ธ๋ฆฟ ํด๋์ค๋ผ๊ณ ํ๋ค ์๋ธ๋ฆฟ ๋ํ ์๋ฐ ํ๋ก๊ทธ๋จ..

jsp ์ฃผ์
html ์ ์์ฑํ๋ค๊ฐ ์ค๋ช ์ ๋ง๋ถ์ด๋ ค๋ ๊ฒฝ์ฐ, ํ๊ทธ ์ฌ์ด์ ๊ธฐ์ ํ๋ค jsp ์ฃผ์๋ฌธ์์๋ ์ด๋ฐ์์ผ๋ก ๋ํ๋ธ๋ค ์คํฌ๋ฆฝํธ๋ฆฟ ๋ด๋ถ์์๋ // ์ด๋ฐ์์ผ๋ก ์ฃผ์์ฒ๋ฆฌ ํ๋ค ๋ ์ฃผ์๋ฌธ์ ํน์ง ๊ณตํต์ : html์ ์ฃผ์๋ฌธ๊ณผ jsp์ ์ฃผ์๋ฌธ์ ์คํ์ ์๋ฌด๋ฐ ์ํฅ์ ์ฃผ์ง ์๋๋ค ์ฐจ์ด์ : html ์ฃผ์๋ฌธ์ ์น ์ปจํ ์ด๋๊ฐ ๊ทธ๋๋ก ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋ธ ํ, ๋ธ๋ผ์ฐ์ ๋ ์ด ๋ถ๋ถ์ ์ฃผ์์ผ๋ก ์ฒ๋ฆฌํ๋ค. jsp ์ฃผ์๋ฌธ์ ๋ธ๋ผ์ฐ์ ์ ๋ณด๋ด์ง์ง ์์ ๊ณต๊ฐ๋์ง ์๋๋ค &TIP html ์ฃผ์๋ฌธ๊ณผ jsp ์ฃผ์๋ฌธ์ ์ ์ ํ๊ฒ ์ฌ์ฉ๋์ด์ผ ํ๋ค jsp ๋ฌธ์ฅ์ ๋ํ ์ฃผ์์ด๋ผ๋ฉด ์ด๋ฅผ jsp ์ฃผ์๋ฌธ์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ด ๋ฐ๋์งํ๋ค. jsp ๋ฌธ์ฅ์ ๋ํ ์ฃผ์ ์ฒ๋ฆฌ๋ฅผ html ์ฃผ์์ผ๋ก ์ฒ๋ฆฌํ๋ค๋ฉด ํด๋ผ์ด์ธํธ๊ฐ ์์ค๋ณด๊ธฐ๋ฅผ ์ํํ ๊ฒฝ์ฐ jsp ์์ค๋ ๊ณต๊ฐ๋์ง ์๋๋ฐ ๊ทธ์..

JSP ๊ธฐ๋ณธ 2
์ง์์, ์ ์ธ๋ฌธ, ์คํฌ๋ฆฝํธ๋ฆฟ, ํํ์, ์ฃผ์ ์ค๋ช ์ฐธ๊ณ : ์ฃผ์ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ ์์ ๋ด์ฉ์ ํ๋จ์ ๋ด์ฉ์ด๋ ๊ฒน์น๋ฏ๋ก ์ญ์ ํด์ค๋ค. ๊ฒฐ๊ณผ๊ฐ์ ๋ค์๊ณผ ๊ฐ๋ค. ์ฝ๋ ์ค๋ช ์ง์์(Directive) ํ๊ทธ ์ฌ์ด์ ์ค๋ ์ฝ๋์ด๋ค. ์ฃผ๋ก ํ์ด์ง ์ง์์์ด๋ฉด์, ๋ฌธ์ํ์ ๊ณผ ์ธ์ฝ๋ฉ์ ์ค์ ํด์ฃผ์๊ณ , contenttype์ธ์ฝ๋ฉ์ jspํ์ผ์ html ๋ฌธ์๋ก ๋ณํํ ๋ ์ ์ฉ๋๋ ์ธ์ฝ๋ฉ์ด๋ค. ์์ฆ์ ์ ๋์ฝ๋๋ฅผ ์ฃผ๋ก ์ฌ์ฉํด์ utf-8 ์ ์ ์ง๋ง, ํ๊ธ์ euc-kr๋ ๊ฐ๋ฅํ๋ฏ๋ก. ๋ค์๊ณผ ๊ฐ์ด ์ค์ ํ๋ค. jsp์ฝ๋๊ฐ ์ฌ์ฉ๋๋ ๋ถ๋ถ์ html ์์ ๊ณต๋ฐฑ์ผ๋ก ์ฒ๋ฆฌ๋๋ค. trimDirectiveWhitepaces ์ ์ค์ ํ๋ฉด ๊ณต๋ฐฑ์ ์ ๊ฑฐํ ์ ์๋ค. import ๋ ์๋ฐ์ ์๋๊ธฐ๋ฅ์ด๋ค. ์ ์ธ๋ฌธ(Directives) ํ๊ทธ ์ฌ์ด์ ์ค๋ ์ฝ๋ ์..

JSP ๊ธฐ์ด (feat.์ง์์)
JSP๋ html ๊ณผ ๊ฐ์ด ์ฌ์ฉํ๋ฉด ๊ทธ ๋น์ ๋ฐํ๋ค. ๊ทธ ์ ์, ์ง์์๋ผ๋ ๊ฐ๋ ์ ์ตํ์ผ ํ๋ค. 1. ์ง์์(Directive) JSP ํ์ด์ง๊ฐ ์คํ๋ ๋ ํ์ํ ์ ๋ณด๋ฅผ JSP ์ปจํ ์ด๋์๊ฒ ์๋ฆฌ๋ ์ญํ ์ ์ํํ๋ค. ์์ฑ ๊ฐ ๊ธฐ๋ณธ๊ฐ ์์ info ํ ์คํธ ์์ info="Copyright ~~~" ccontentType Mimeํ์ , ๋ฌธ์ ์งํฉ contentType = "text/html; charset = ISO-8859-1" contentType = "text/html; charset = utf-8" info ์์ฑ : ํ์ด์ง๋ฅผ ์ค๋ช ํ๋ ๋ด์ฉ์ ์ ์ ccontentType : ํ์ด์ง์ ์ถ๋ ฅ ํํ๋ฅผ mime(multi-purpose internet mail extension)ํ์์ผ๋ก ๋ธ๋ผ์ฐ์ ์๊ฒ ์๋ฆผ ๋ง์์ด..
![[Servlet] ์๋ธ๋ ์ด๋?](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcf0spf%2FbtreRSu1Ru3%2Fu7tiKvjdA2bN2UnnGWsCMK%2Fimg.png)
[Servlet] ์๋ธ๋ ์ด๋?
์, ์๋ธ๋ ์ ์ ํด์ผํ ๊น? ๋ฐ๋ก ๋ฐฑ์๋ ๊ฐ๋ฐ, MVC ๋ชจ๋ธ ๊ตฌํํ๊ธฐ ์ํด์ ๋ผ๊ณ ํ๋ฉด ๋๋ค. ์ด๋๋ ์ดํด๊ฐ ํ๋๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. 1. ์๋ธ๋ฆฟ์ด๋ ๋ฌด์์ธ๊ฐ? ํด๋ผ์ด์ธํธ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ํด๋ผ์ด์ธํธ์๊ฒ ์ ์กํ๋ Servlet ํด๋์ค์ ๊ตฌํ ๊ท์น์ ์งํจ ์๋ฐ ํ๋ก๊ทธ๋จ" (ํด๋ผ์ด์ธํธ์ HTTP ์์ฒญ์ ๋ํด ํน์ ๊ธฐ๋ฅ์ ์ํ, HTML๋ฌธ์๋ฅผ ์์ฑ๋ฑ์ ์๋ต์ ํ๋ ์ธํฐ๋ท ์๋ฒ ํ๋ก๊ทธ๋จ) #ํด๋ผ์ด์ธํธ= ์ฌ์ฉ์ = ๋ณดํต์ ์ฌ๋๋ค ๋์ ์ฝํ ์ธ ๋ฅผ ์์ฑํ๊ธฐ ์ํ ํ๋์ ๊ธฐ์ ?? # ์ฐธ์กฐ ์๋ธ๋ฆฟ์ ๋จ์ ์ธํฐํ์ด์ค๋ ํด๋์ค ๊ฐ์ ๊ฒ์ด ์๋๋๋ค. ์ฌ์ค ์ด ๋ง์ ์กฐ๊ธ์ ๊ฑฐ์ง๋ง(?)์ด ์์ฌ์๋๋ฐ์. ๋ค์์ ๋ ๋์ค๋, ์กฐ๊ธ๋ง ๊ธฐ๋ค๋ ค์ฃผ์ธ์. ์ง๊ธ์ ๊ทธ์ ๋์ ์ฝํ ์ธ ๋ฅผ ์์ฑํ๊ธฐ ์ํ ํ๋์ ๊ธฐ์ ์ด๋ผ๊ณ ์๊ฐํด์ฃผ์ธ์. ์ฌ์ค..