JSP์์๋ ๊ฐ์ฒด๋ฅผ ์ ์ธํ์ง ์๊ณ ๋ ๊ฐ์ฒด๊ณผ ์ฐ๊ด๋ ๋ฉ์๋๋ค์ ํจ๊ป ์ฌ์ฉํ ์ ์๋ ๊ฐ์ฒด๋ค์ด ์๋ค. ์ด๋ฅผ Implicit Instance(๊ธฐ๋ณธ๊ฐ์ฒด , ๋ด์ฅ๊ฐ์ฒด) ๋ผ๊ณ ํ๋ค.
์ข ๋ฅ๋ฅผ ์ ๋ฆฌํด๋์ ๋งํฌ >> Implict Instance
์ด ์ค์์ ์ค๋์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ด ๋๋ request ๋ํด์ ์ ๋ฆฌํ๋ ค๊ณ ํ๋ค.
1. Request
request ๊ธฐ๋ณธ๊ฐ์ฒด๊ฐ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ๋ค.
ํด๋ผ์ด์ธํธ(์น ๋ธ๋ผ์ฐ์ )์ ๊ด๋ จ๋ ์ ๋ณด ์ฝ๊ธฐ ๊ธฐ๋ฅ
์๋ฒ์ ๊ด๋ จ๋ ์ ๋ณด ์ฝ๊ธฐ ๊ธฐ๋ฅ
ํด๋ผ์ด์ธํธ๊ฐ ์ ์กํ ์์ฒญ ํ๋ผ๋ฏธํฐ ์ฝ๊ธฐ ๊ธฐ๋ฅ
ํด๋ผ์ด์ธํธ๊ฐ ์ ์กํ ์์ฒญ ํค๋ ์ฝ๊ธฐ ๊ธฐ๋ฅ
ํด๋ผ์ด์ธํธ๊ฐ ์ ์กํ ์ฟ ํค ์ฝ๊ธฐ ๊ธฐ๋ฅ
์์ฑ ์ฒ๋ฆฌ ๊ธฐ๋ฅ
์ฌ๊ธฐ์ ์ฟ ํค ์ฝ๊ธฐ ๊ธฐ๋ฅ๊ณผ ์์ฑ ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ ์ง๊ธ ์ ๋ฆฌํ๊ธฐ์ ์์ค์ด ๋์์ ๋์ค์ ์ ๋ฆฌํ๋๋ก ํ์.
1-1. Request ๊ธฐ๋ฅ ( ํด๋ผ์ด์ธํธ ์ ๋ณด ๋ฐ ์๋ฒ ์ ๋ณด ์ฝ๊ธฐ )
request ๊ธฐ๋ณธ ๊ฐ์ฒด๋ ์น ๋ธ๋ผ์ฐ์ (ํด๋ผ์ด์ธํธ)๊ฐ ์ ์กํ ์ ๋ณด๋ฅผ ์ฝ์ ์ ์๊ณ , ์๋ฒ์ ์ ๋ณด๋ฅผ ์ฝ์ด์ฌ ์ ์๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ๋ค์ request๊ฐ์ฒด์ ๋ฉ์๋๋ฅผ ํตํด์ ๊ตฌํ ์ ์๋ค.
๋ฉ์๋ | ๋ฆฌํด ํ์ | ์ค๋ช |
getRemoteAddr() | String | ์น์๋ฒ์ ์ฐ๊ฒฐํ ํด๋ผ์ด์ธํธ์ IP์ฃผ์๋ฅผ ๊ตฌํ๋ค. |
getContentLength() | long | ํด๋ผ์ด์ธํธ๊ฐ ์ ์กํ ์์ฒญ ์ ๋ณด์ ๊ธธ์ด๋ฅผ ๊ตฌํ๋ค. ์ ์ ์๋ ๊ฒฝ์ฐ -1์ ๋ฆฌํด. |
getCharacterEncoding() | String | ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ ์ ๋ณด๋ฅผ ์ ์กํ ๋ ์ฌ์ฉํ ์บ๋ฆญํฐ์ ์ธ์ฝ๋ฉ์ ๊ตฌํ๋ค. (utf-8, euc-kr ๋ฑ) |
getContentType() | String | ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ ์ ๋ณด๋ฅผ ์ ์กํ ๋ ์ฌ์ฉํ ์ปจํ ํธ์ ํ์ ์ ๊ตฌํ๋ค. |
getProtocol() | String | ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ํ๋กํ ์ฝ์ ๊ตฌํ๋ค. (์/ http:// -> http , ftp:// -> ftp) |
getMethod() | String | ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์ ๋ณด๋ฅผ ์ ์กํ ๋ ์ฌ์ฉํ ๋ฐฉ์์ ๊ตฌํ๋ค. (get, post, delete ๋ฑ) |
getRequestURI() | String | ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์์ฒญํ URL์์ ๊ฒฝ๋ก๋ฅผ ๊ตฌํ๋ค. |
getContextPath() | String | JSPํ์ด์ง๊ฐ ์ํ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ์ปจํ ์คํธ ๊ฒฝ๋ก(๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก)๋ฅผ ๊ตฌํ๋ค. |
getServerName() | String | ์ฐ๊ฒฐํ ๋ ์ฌ์ฉํ ์๋ฒ ์ด๋ฆ์ ๊ตฌํ๋ค. |
getServerPort() | int | ์๋ฒ๊ฐ ์คํ ์ค์ธ ํฌํธ ๋ฒํธ๋ฅผ ๊ตฌํ๋ค. |
์๋ฅผ ๋ค๋ฉด
http://localhost:8080/Notice/index.jsp
์ด URL์์ ์ถ์ถ๋๋ ์ ๋ณด๋ค์
request.getServerName() -> localhost
request.getServerPort() -> 8080
request.getRequestURI() -> Notice/index.jsp
์ด๋ฐ์์ด ๋๋ค.
1-2 request ๊ธฐ๋ฅ ( HTML ํผ๊ณผ ์์ฒญ ํ๋ผ๋ฏธํฐ์ ์ฒ๋ฆฌ )
JSP์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ๊ธฐ๋ฅ ์ค์ ํ๋๋ ์น ๋ธ๋ผ์ฐ์ ํผ์ ์ ๋ ฅํ ๊ฐ์ ์ฒ๋ฆฌํ๋ ๊ฒ. ์๋ฅผ ๋ค์ด, ํฐ์คํ ๋ฆฌ ๋ธ๋ก๊ทธ์ ๊ธ์ ์ฌ๋ฆฌ๋ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด๋ณด๋ฉด ์ ๋ชฉ, ๋ณธ๋ฌธ ๋ด์ฉ์ ์ ๋ ฅํ๊ณ ํ์ํ๋ฉด ํ๋ ์ ๋ ฅํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ผ๋ก <๋ฐํ> ์ด๋ผ๋ ๋ฒํผ์ ๋๋ฅด๋ฉด ํฌ์คํ ์ด ๋๋ค. ์ด๋ ์ ๋ ฅํ ์ ๋ชฉ, ๋ณธ๋ฌธ ๋ด์ฉ๊ณผ ๊ฐ์ ์ ๋ณด๋ ์์ฒญ ํ๋ผ๋ฏธํฐ๋ก ์ ์ก๋๋ค. request ๊ธฐ๋ณธ ๊ฐ์ฒด๋ ํด๋ผ์ด์ธํธ(์น ๋ธ๋ผ์ฐ์ )๊ฐ ์ ์กํ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฝ์ด์ฌ ์ ์๋ ๋ฉ์๋๋ฅผ ์ ๊ณตํ๊ณ ์๋ค.
๋ฉ์๋ |
๋ฆฌํด ํ์ |
์ค๋ช |
getParameter(String name) |
String |
์ด๋ฆ์ด name์ธ ํ๋ผ๋ฏธํฐ์ ๊ฐ์ ๊ตฌํ๋ค. ์กด์ฌํ์ง ์์ ๊ฒฝ์ฐ null ๋ฆฌํด. |
getParameterValues(String name) |
String[] |
์ด๋ฆ์ด name์ธ ๋ชจ๋ ํ๋ผ๋ฏธํฐ์ ๊ฐ์ ๋ฐฐ์ด๋ก ๊ตฌํ๋ค. ์กด์ฌํ์ง ์์ ๊ฒฝ์ฐ null ๋ฆฌํด |
getParameterNames() |
java.util.Enumeration |
์น ๋ธ๋ผ์ฐ์ ๊ฐ ์ ์กํ ํ๋ผ๋ฏธํฐ์ ์ด๋ฆ์ ๊ตฌํ๋ค. |
getParameterMap() |
java.util.Map |
์น ๋ธ๋ผ์ฐ์ ๊ฐ ์ ์กํ ํ๋ผ๋ฏธํฐ์ ๋งต์ ๊ตฌํ๋ค. (๋งต - <ํ๋ผ๋ฏธํฐ ์ด๋ฆ, ๊ฐ> ) |
1-3 request.setCharaterEncoding("์บ๋ฆญํฐ์ ");
์ด๋ HTTPํ๋กํ ์ฝ์ ์ ์ก ๋ฐฉ์์ ์กฐ๊ธ ๋ค๋ค์ผ ํ๋๋ฐ ์์ ๋ฉ์๋๋ก ์ธ์ฝ๋ฉ์ ํ๋ ๊ฒ์ post๋ฐฉ์์์ ๋ฐ์ดํฐ์์ญ์ ๋ด์ฉ์ด๋ค. GET๋ฐฉ์์ ํด๋น๋์ง ์๋๋ฐ ๊ทธ ์ด์ ๋ ์ ๋ฉ์๋๋ HTTPํ๋กํ ์ฝ์ ๋ฐ์ดํฐ ์์ญ์ ์ธ์ฝ๋ฉ ํ๊ธฐ ๋๋ฌธ์ GET๋ฐฉ์์ฒ๋ผ ๋ฐ์ดํฐ๋ฅผ URI ๋ค์ ๋ถ์ด๋ ๊ฒ์ ํด๋น๋์ง ์๋๋ค. ๊ทธ๋ผ URL์ ์ด๋ป๊ฒ ์ธ์ฝ๋ฉ์ด ๋ ์ง ์ดํด๋ณด์.
GET ๋ฐฉ์ ์ด์ฉ ์ ํ๋ผ๋ฏธํฐ ์ ์ก ๋ฐฉ๋ฒ |
์ธ์ฝ๋ฉ ๊ฒฐ์ |
<a> ํ๊ทธ์ ๋งํฌ ํ๊ทธ์ ์ฟผ๋ฆฌ ๋ฌธ์์ด ์ถ๊ฐ |
์น ํ์ด์ง ์ธ์ฝ๋ฉ ์ฌ์ฉ |
HTML ํผ(Form)ํ๊ทธ์ method ์์ฑ๊ฐ์ GET์ผ๋ก ์ง์ ํ์ฌ ์ ์ก |
์น ํ์ด์ง ์ธ์ฝ๋ฉ ์ฌ์ฉ |
์น ๋ธ๋ผ์ฐ์ ์ ์ฃผ์์ ์ง์ ์ฟผ๋ฆฌ ๋ฌธ์์ด ํฌํจํ URL ์ ๋ ฅ |
์น ๋ธ๋ผ์ฐ์ ๋ง๋ค ๋ค๋ฆ |
๊ทธ๋ผ GET๋ฐฉ์์ ํ๋ผ๋ฏธํฐ๋ ์ธ์ฝ๋ฉ์ด ๋ถ๊ฐ๋ฅํ ๊น? ๊ทธ๊ฑด ์๋๋ค. ํฐ์บฃ์์๋ ๋๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค. ์ด๋ ๋ฒ์ 6๋ถํฐ ์ ์ฉ๊ฐ๋ฅํ ๊ฒ์ด๋ค.
- [ํฐ์บฃ์ค์น๋๋ ํฐ๋ฆฌ]/conf/server.xml ํ์ผ์์ <Connector>์ useBodyEncodingForURI ์์ฑ์ ๊ฐ์ true๋ก ์ง์ ํ๋ ๋ฐฉ๋ฒ (๊ธฐ์กด์ ์๋ ์์ฑ์ด๋ผ๋ฉด ์๋ก ๊ธฐ์ )
- [ํฐ์บฃ์ค์น๋๋ ํฐ๋ฆฌ]/conf/server.xml ํ์ผ์์ <Connector>์ URIEncoding ์์ฑ์ ๊ฐ์ ์ํ๋ ์บ๋ฆญํฐ์ ์ผ๋ก ์ง์ ํ๋ ๋ฐฉ๋ฒ(๊ธฐ์กด์ ์๋ ์์ฑ์ด๋ผ๋ฉด ์๋ก ๊ธฐ์ )
์ฒซ๋ฒ์งธ ๋ฐฉ๋ฒ์ useBodyEncodingForURI ์์ฑ์ ๊ฐ์ true๋ก ์ค์ ํ๋ฉด request.setCharacterEncoding์ด GET๋ฐฉ์์๋ ๋จนํ๊ธฐ ๋๋ฌธ์ ๋ฉ์๋๋ฅผ ํตํด์ ์ํ๋ ์บ๋ฆญํฐ ์ ์ผ๋ก ์ค์ ํ ์ ์๋ค.
๋๋ฒ์งธ ๋ฐฉ๋ฒ์ ๋ฐ๋ก ์ง์ ์ํ๋ ์บ๋ฆญํฐ์ ์ผ๋ก ์ง์ ํ์ง๋ง ์ด ๊ฒฝ์ฐ์๋ request.setCharacterEncoding์ด ๋จนํ์ง ์๋๋ค.
1-4 ์์ฒญ ํค๋ ์ ๋ณด์ ์ฒ๋ฆฌ
์น ๋ธ๋ผ์ฐ์ ๋ HTTP ํ๋กํ ์ฝ์ ๋ฐ๋ผ์ ์์ฒญ ์ ๋ณด๋ฅผ ์น ์๋ฒ์ ์ ์กํ๋ค. JSP์ request ๊ธฐ๋ณธ ๊ฐ์ฒด๋ ์ด๋ฌํ ํค๋ ์ ๋ณด๋ฅผ ์ฝ์ด์ฌ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ ์์ผ๋ฉฐ, ์ด ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋ฉ์๋๋ ๋ค์๊ณผ ๊ฐ๋ค.
๋ฉ์๋ |
๋ฆฌํด ํ์ |
์ค๋ช |
getHeader(String name) |
String |
์ง์ ํ ์ด๋ฆ์ ํค๋ ๊ฐ์ ๊ตฌํ๋ค |
getHeaders(String name) |
java.util.Enumeration |
์ง์ ํ ์ด๋ฆ์ ํค๋ ๋ชฉ๋ก์ ๊ตฌํ๋ค. |
getHeaderNames() |
java.util.Enumeration |
๋ชจ๋ ํค๋์ ์ด๋ฆ์ ๊ตฌํ๋ค |
getIntHeader(String name) |
int |
์ง์ ํ ํค๋์ ๊ฐ์ ์ ์ ๊ฐ์ผ๋ก ์ฝ์ด์จ๋ค. |
getDataHeader(String name) |
long |
์ง์ ํ ํค๋์ ๊ฐ์ ์๊ฐ ๊ฐ์ผ๋ก ์ฝ์ด์จ๋ค.(์ด ๋ ์๊ฐ์ 1970๋ 1์ 1์ผ ์ดํ๋ก ํ๋ฌ๊ฐ 1/1000์ด ๋จ์์ ๊ฐ์ ๊ฐ์ง๋ค.์?) |