Recent Posts
Recent Comments
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
Tags
- Shamir
- zero knowledge proof
- CC
- ํฌํ ์ต
- ์ค๋ฏธ๋ฅด
- haze #ํ ์ํ๋ก #tensorflow #ai
- ๋์์ธ
- Adobe
- graph 3 coloring
- ๋ธ๋ก๊ทธ_์ด์ _๊ณํ๋ณด๋ค_์ง๊ธ_ํด์ผํ ๊ฒ_๋_๋ง์์_์ ์ง์์
- ์ด๋๋น
- ์์ ๋น๋ฐ ๋ถ์ฐ
- UX
- ๋น๋ฐ ๋ถ์ฐ ๊ธฐ๋ฒ
- #์ํธํ์ด๋ก
Archives
- Today
- Total
For Beginners
[Backend] Servlet, JSP์ ๊ธฐ๋ณธ ์ง์ ๋ณธ๋ฌธ
728x90
๐ Web Architecture
๐ ํด๋ผ์ด์ธํธ↔์น ์๋ฒ
ํด๋ผ์ด์ธํธ์ ์น ์๋ฒ ์ฌ์ด์์๋ ์์ฒญ๊ณผ ์๋ต์ด ์ด๋ฃจ์ด์ง๋ค.
1. ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ )์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ํ์ฌ ์น ์๋ฒ๋ก ์์ฒญ(request)
2. ์น ์๋ฒ์์ ํด๋ผ์ด์ธํธ์ ์ ์์ ์ฒ๋ฆฌํ๋ค.
...
3. ์๋ฒ์ ์ ๋ณด๋ฅผ ๋ฐ์ ์๋ต(response)๋ฅผ ํ์ฌ ํด๋ผ์ด์ธํธ์ ์ ๋ฌํ๋ค.
๐ ์น ์๋ฒ↔์ดํ๋ฆฌ์ผ์ด์ ์๋ฒ
์น ์๋ฒ์์ ํด๋ผ์ด์ธํธ ์ ์์ด ์ฒ๋ฆฌ๋๋ฉด, ํด๋ผ์ด์ธํธ์๊ฒ์ ๋ฐ์ ๋ฐ์ดํฐ๋ ๋๋น์ ์ ์ฅํ๊ณ , ๋๋น์์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด์์ ์๋ตํ ๋ด์ฉ์ ์น ์๋ฒ์ ์ ๋ฌํ์ฌ์ผ ํ๋ค.
๊ทธ ๊ณผ์ ์ ์ดํ๋ฆฌ์ผ์ด์ ์๋ฒ์์ ๋ด๋นํ๋ค.
์ฌ๋๋ค์ ์น๊ณผ ์ดํ๋ฆฌ์ผ์ด์ ์๋ฒ๋ฅผ ๋ถ๋ฆฌํ์ง ์๊ณ ๋์์ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ๋ฐฉ๋ฒ์ ์ฐพ์๋๋ฐ,
๊ทธ๋ ๊ฒ ๋ฑ์ฅํ ๊ฒ์ด WAS์ด๋ค.
WAS(Web Application Server)๋ ๊ธฐ์กด ์น ์๋ฒ์ ๋ค๋ฅด๊ฒ ๋์ ์ธ ์๋ฒ ์ฝํ ์ธ ๋ฅผ ์ด์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ผ๋ก ์ ์๋์๋ค.
์๋๋ ๋๋ถ๋ถ์ ์ฐ์ฐ์ ํ๋ก ํธ์์ ์ํํ์๋๋ฐ, ๋๋น, ํด๋ผ์ฐ๋์ ๋ฐ์ ์ผ๋ก ์ฐ์ฐ ์ฒ๋ฆฌ ์๋๊ฐ ๋นจ๋ผ์ ธ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ํ๋ฉด์ผ๋ก ์ฌ์ฉํ๊ณ , ์๋ฒ์์ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ํํ๋ ๋ฐฉ์์ผ๋ก ๋ฐ๋์ด ๊ฐ๋ฉฐ ๋ฑ์ฅํ์๋ค.
๐ ์ดํ๋ฆฌ์ผ์ด์ ์๋ฒ↔๋ฐ์ดํฐ๋ฒ ์ด์ค
์ดํ๋ฆฌ์ผ์ด์ ์๋ฒ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ ์ถ๊ฐ, ์ ๋ฐ์ดํธ, ์ญ์ ํ๊ณ
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ ์กฐํํ์ฌ ๋ค์ ํด๋ผ์ด์ธํธ๋ก ์ ๋ฌํ ์ ์๋๋ก ํ๋ค.
๐ ์๋ธ๋ฆฟ(Servlet)์ด๋?
์๋ฐ ์๋ธ๋ฆฟ์ ์๋ฐ๋ฅผ ์ฌ์ฉํ์ฌ ์น ํ์ด์ง๋ฅผ ๋์ ์ผ๋ก ์์ฑํ๋ ์๋ฒ์ธก ํ๋ก๊ทธ๋จ์ด๋ค.
์น ์๋ฒ์ ์ฑ๋ฅ์ ํฅ์์ํค๊ณ , JSP์ ๋น์ทํ ์ ์ด ์์ง๋ง,
์๋ธ๋ฆฟ์ ์๋ฐ ์ฝ๋ ์์ HTML ์ฝ๋๋ฅผ ํฌํจ
JSP๋ HTML ์ฝ๋ ์์ ์๋ฐ์ฝ๋๋ฅผ ํฌํจ
๐ ์๋ธ๋ฆฟ์ ๋์
1. ๋ฐ์ดํฐ๋ฅผ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์ป๋๋ค.
2. ๋ฐ์ดํฐ๋ฅผ ๋ก์ง์ ๋ฐ๋ผ ๊ฐ๊ณตํ๋ค.
3. ์๋ต ํ์ด์ง๋ฅผ ์์ฑํ๋ค.(์๋ต ํ์ด์ง๋ก ๋๊ธด๋ค)
๐ ์๋ธ๋ฆฟ API
MyServlet > HttpServlet > GenericServlet > Servlet
๐ ์๋ธ๋ฆฟ ์๋ช ์ฃผ๊ธฐ(LifeCycle)
main ๋ฉ์๋๊ฐ ์์
ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ํ๊ฒ ๋๋ฉด ์๋ธ๋ฆฟ ๊ฐ์ฒด๋ ์ต์ด ํ๋ฒ๋ง ์์ฑ๋๊ณ , ์ด๊ธฐํ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์์ฒญ์ด ์ด๋ฃจ์ด์ง ๋๋ง๋ค ์๋น์ค ๋ฉ์๋๋ง ๋ฐ๋ณตํ๋ค.
์๋ธ๋ฆฟ ๊ฐ์ฒด๊ฐ ํ์ ์๊ฒ ๋๋ฉด ์ ๊ฑฐํ๋ ์ผ๊น์ง ์งํํ๋ค.
* ๋จ, ์๋ธ๋ฆฟ ์ฝ๋๊ฐ ์์ ๋๋ฉด ๋ค์ ์์ฑ๋๊ณ , ์ด๊ธฐํ๋๋ค.
๐ Get ๋ฐฉ์๊ณผ Post ๋ฐฉ์์ ์ฐจ์ด
GET | POST | |
ํน์ง | ๋ฐ์ดํฐ๊ฐ URL ๋ค ์ฟผ๋ฆฌ์คํธ๋ง์ผ๋ก ์ ์ก | body์ ์ ๋ ฅ ์คํธ๋ฆผ ๋ฐ์ดํฐ๋ก ์ ๋ฌ |
์ฅ์ | ๋น ๋ฅด๋ค | ๋ฐ์ดํฐ ๊ธธ์ด ์ ํ ์๋ค ์ต์ํ์ ๋ณด์ |
๋จ์ | ๋ฐ์ดํฐ ์์ ์ ํ(๋ธ๋ผ์ฐ์ ๋ง๋ค ๋ค๋ฆ) ๋ณด์์ด ์๋จ |
๋ฐ์ดํฐ์ ์์ด ๊ฐ๋ค ๊ฐ์ ํ๋ฉด, GET ๋ณด๋ค ๋๋ฆฐ ์๋ |
๐ URI ๋ถ์
* ํ๋จ์ ๋งํฌ๋ ๋ด๊ฐ ์ง๊ธ ๊ธ์ ์ฐ๊ณ ์๋ ๋งํฌ๋ฅผ ๊ทธ๋๋ก ๋ณต์ฌํ ๊ฒ์ด๋ค.
๐ ์๋ฐ ์๋ฒ ํ์ด์ง(JSP)๋?
์๋ฐ ์๋ฒ ํ์ด์ง(JSP: Java Server Page)๋ HTML ๋ด์ ์๋ฐ ์ฝ๋๋ฅผ ์ฝ์ ํ์ฌ ์น ์๋ฒ์์ ๋์ ์ผ๋ก ์น ํ์ด์ง๋ฅผ ์์ฑํ์ฌ ์น ๋ธ๋ผ์ฐ์ ์ ๋๋ ค์ฃผ๋ ์ธ์ด์ด๋ค.
์คํ ์ ์๋ฐ ์๋ธ๋ฆฟ์ผ๋ก ๋ณํ๋ ํ ์คํ๋๋ฏ๋ก ์๋ธ๋ฆฟ๊ณผ ๊ฑฐ์ ์ ์ฌํ๋ค.
๐ JSP์ ๋์
1. JSP๊ฐ ์๋ธ๋ฆฟ ์๋ฐ ํ์ผ๋ก ๋ณํ๋จ
2. ์๋ธ๋ฆฟ ํด๋์ค ์ปดํ์ผ์ด ์ด๋ฃจ์ด์ง
3. ์๋ธ๋ฆฟ ํด๋์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋จ
4. ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์์ฒญ ๋ฐ์(request)
5. ๋ฐ์ดํฐ๋ฅผ ๋ก์ง์ ๋ฐ๋ผ ๋ณํ
6. ๋ณํ๋ ๋ฐ์ดํฐ๋ฅผ ์๋ต(response)
๐ JSP์ ์ฉ๋ฒ
1. ์ ์ธ
<%! ๋ฉค๋ฒ ๋ณ์์ ๋ฉ์๋๋ฅผ ์์ฑํ๋ ๋ถ๋ถ%>
2. ์คํฌ๋ฆฝํธ๋ฆฟ
<% ํด๋ผ์ด์ธํธ ์์ฒญ ์ ๋งค๋ฒ ํธ์ถ๋๋ ์์ญ %>
3. ํํ์
<%= ๋ธ๋ผ์ฐ์ ์ ์ถ๋ ฅํ ๋ฐ์ดํฐ %>
4. ์ฃผ์
<%-- ์ฃผ์ํ ๋ถ๋ถ -->
* html ์ฃผ์์ ๊ฒฝ์ฐ, ๋ธ๋ผ์ฐ์ ์์์ html ์ฝ๋๋ฅผ ํตํด ์ด๋ ๊ฐ๋ฅํ์ง๋ง, JSP์ ์ฃผ์์ ์๋ธ๋ฆฟ์ผ๋ก ๋ณํ๋๋ฉด์ ๊ฐ์ ธ์ค์ง ์์ผ๋ฏ๋ก ๋ธ๋ผ์ฐ์ ์์์ ์ด๋ํ ์ ์๋ค.
๐ JSP ์ง์์
1. ํด๋น ํ์ด์ง๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ๊ฒ์ธ์ง์ ๋ํ ์ ๋ณด ์ ๊ณต
<%@ page attr1="val1" .... %>
2. ํน์ jsp ํ์ผ์ ํ์ด์ง์ ํฌํจ
<%@ include file="/hello.jsp" %>
3. ์ปค์คํ ํ๊ทธ, JSTL ์ด์ฉ ์ ์ฌ์ฉ
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
๐ JSP ์ง์์ ์์ฑ ์ ๋ฆฌ
์์ฑ | ๊ธฐ๋ณธ๊ฐ | ์ค๋ช |
language | java | ์คํฌ๋ฆฝํธ ์ธ์ด ์ง์ |
info | JSP ํ์ด์ง ์ค๋ช | |
contentType | text/html;charset=ISO-8859-1 | ๋ฌธ์ ์งํฉ ์ง์ (๋ธ๋ผ์ฐ์ ) |
pageEncoding | ISO-8859-1 | ๋ฌธ์ ์งํฉ ์ง์ (JSP ํ์ด์ง) |
import | ์๋ฐ ํจํค์ง, ํด๋์ค ์ง์ | |
session | true | ์ธ์ ์ฌ์ฉ ์ ๋ฌด |
errorPage | ์๋ฌ ์ ์ฒ๋ฆฌ๋ ํ์ด์ง ์ง์ | |
isErrorPage | false | ์ด ํ์ด์ง๊ฐ ์๋ฌ ์ฒ๋ฆฌ ํ์ด์ง์ธ์ง |
buffer | 8KB | ๋ฒํผ์ ํฌ๊ธฐ |
autoflush | true | ๋ฒํผ ์๋ ์ ์ก ์ฌ๋ถ |
isThreadsafe | true | ๋ฉํฐ ์ค๋ ๋ ์ฌ๋ถ |
extends | javax.servlet.jsp.HttpJspPage | ํด๋์ค ์์ ๋ณ๊ฒฝ |
๐ JSP ๊ธฐ๋ณธ ๊ฐ์ฒด
๊ฐ์ฒด ๋ช | ํ์ | ์ค๋ช |
request | javax.servlet.http.httpServletRequest | ์ฌ์ฉ์ ์ ๋ ฅ ์ ๋ณด(ํด๋ผ์ด์ธํธ ์ ๋ณด) ์ฝ๊ธฐ ์ ์ฌ์ฉ |
response | javax.servlet.http.httpServletResponse | ์๋ต ์ฒ๋ฆฌ |
pageContext | javax.servlet.jsp.PageContext | ๊ธฐ๋ณธ ๊ฐ์ฒด ์ป์ ๋, forward, include |
session | javax.servlet.http.HttpSession | ํด๋ผ์ด์ธํธ ์ธ์ ์ ๋ณด ์ฒ๋ฆฌ |
application | javax.servlet.ServletContent | ์ดํ๋ฆฌ์ผ์ด์
์ฒ๋ฆฌ ๊ด๋ จ ์ ๋ณด ๋ ํผ๋ฐ์ค (์ฌ์ค์ ํ๋ก์ ํธ๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.) |
out | javax.servlet.jsp.JspWriter | output ์คํธ๋ฆผ ์ฒ๋ฆฌ |
config | javax.servlet.ServletConfig | ์ด๊ธฐํ ํ๊ฒฝ |
page | java.lang.Object | ์ฐธ์กฐ ๋ณ์ |
exception | java.lang.Exception | ์ค๋ฅ ์ ๋ณด |
๐ set, get
๋ฉ์๋ | ์ค๋ช |
setAttribute(name, value) | name์ด๋ผ๋ ๊ณณ์ value ๋ฐ์ดํฐ set |
getAttribute(name) | ์์ฑ ๊ฐ ์์ผ๋ฉด get ์์ผ๋ฉด null |
getAttributeNames() | ์์ฑ๋ค์ ์ด๋ฆ๋ค์ Enumeration ํํ๋ก get |
removeAttribute(name) | ํด๋น ์์ฑ์ ์ญ์ |
'2021๋ ์๋ฃ > WEB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[WEB] ๋ฐฑ์๋ ์ํ ๋๋น ์ ๋ฆฌ (0) | 2021.03.31 |
---|---|
[Backend] JSP, ์ธ์ ์ ๊ธฐ๋ณธ ์ง์ (0) | 2021.03.30 |
[JSP] ์น ๊ตฌ์กฐ์ ๋ฐฑ์๋ ๊ธฐ์ด - 2 (0) | 2021.03.29 |
[JSP] ์น ๊ตฌ์กฐ์ ๋ฐฑ์๋ ๊ธฐ์ด - 1 (0) | 2021.03.29 |
[FrontEnd] ์ํ ๋๋น์ฉ ์๋ฃ ์ ๋ฆฌ ๋งํฌ (0) | 2021.03.20 |
Comments