์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- ComputerScience
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- JavaScript
- ์ค๋ผํด
- Python
- ์ฑ
- html
- database
- css
- ์นํ์ด์ง๋ง๋ค๊ธฐ
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ๊น๋ฏธ๊ฒฝ์๋งํ์์
- ์ปดํจํฐ๊ณผํ
- ํ์ด์ฌ
- ๊ฐ๋ฐ
- ์ฝ๋ฉ
- K๋ฐฐํฐ๋ฆฌ๋ ๋ณผ๋ฃจ์
- ์ค๋ธ์
- ์๋ฐ์คํฌ๋ฆฝํธ
- ๋ฆฌ์กํธ
- ๋ ์
- K๋ฐฐํฐ๋ฆฌ
- ๋ง์ผ๋ด๊ฐ์ธ์์๋ค์์ฐ๋ค๋ฉด
- ์นํผ๋ธ๋ฆฌ์ฑ
- Java
- ๋ผํ๋ผ์ค์๋ง๋
- ์ํ
- ์๋ฐ
- ๋ฐ์ํ
- ํ๋ก๊ทธ๋๋ฐ
- Today
- Total
JiYoung Dev ๐ฅ
[JSP/Servlet] ๋ฐ์ดํฐ ์ ์ก GET/POST(2023.05.12) ๋ณธ๋ฌธ
Quiz. ์ด์ํ ์ ์ฐพ์๋ณด๊ธฐ
์ฃผ์์ฐฝ์ ํจ์ค์๋๊ฐ ๋ ธ์ถ๋จ
์์ธ : get ๋ฉ์๋ ๋ฐฉ์์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ. get ๋ฉ์๋ ๋ฐฉ์์ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฐ์ด ์ฃผ์์ฐฝ์ ๋ ธ์ถ๋จ
๐ HTTP ์์ฒญ ๋ฉ์๋
์น ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ )๊ฐ ์น ์๋ฒ์ ์์ฒญํ๋ ์๋น์ค ์ฒ๋ฆฌ ๋ฐฉ์ ์ง์
์์ ์์ฒญ ๋ฉ์๋ ์์๋ ์ฝ์์ ๋๋์ผ๋ก ๊ผญ ์์ ๊ฒ์ ๊ผญ ๋ฐ๋ผ์ผํ๋ ๊ฒ์ ์๋์ง๋ง ๊ฐ๋ฐ์๋ค ๊ฐ์ ๊ท์น๊ณผ ๊ฐ์
๊ธฐ๋ฅ๋ค์ด ํน์ ์์ฒญ์ ํ์ ๋์ด ์์ง ์์ง๋ง ๋ฌด์์ ์์ฒญํ๋์ง ์๊ธฐ ์ฝ๊ฒ ํ๊ธฐ์ํด ์์ ๊ฐ์ด ๊ตฌ๋ถํ์ฌ ์ฌ์ฉํจ
์ฝ์ด๋ณด๊ธฐ!
๐ GET
โ URI / URL
ํจํท(packet)
๋คํธ์ํฌ๋ฅผ ํตํด ์ ์กํ๊ธฐ ์ฝ๋๋ก ์๋ฅธ ๋ฐ์ดํฐ์ ์ ์ก ๋จ์
ํจํท์ ๋ฐ์ดํฐ ์ ์ก์์ ์ก์ ์ธก๊ณผ ์์ ์ธก์ ์ํ์ฌ ํ๋์ ๋จ์๋ก ์ทจ๊ธ๋์ด ์ ์ก๋๋ ์งํฉ์ฒด๋ก, ๋ถํ ๋ ๊ฐ๊ฐ์ ํจํท์๋ ๋ณ๋์ ๋ฒํธ๊ฐ ๋ถ์ฌ์ง๊ณ ๋ชฉ์ ์ง์ ์ธํฐ๋ท ์ฃผ์๊ฐ ๊ธฐ๋ก๋๋ฉฐ, ์๋ฌ ์ฒดํฌ ๋ฐ์ดํฐ๋ ํฌํจ๋จ
ํจํท์ ๊ตฌ์กฐ : head + body
++ ํจํท์๋ ์์ ์ ๋ณด๋ ๋ค์ด์๋ค.
>> ํจํท์ ์์๋๋ก ๋ณด๋ด๋๊ฒ ์๋๋ผ ํจํท์ ํ๋ฒ์ ๋คํธ์ํฌ์์ผ๋ก ๋ฟ๋ฆผ
>> ํจํท๋ค์ด ์๋ฒ๋ก ๋์ฐฉํ์ ๋ ์์๊ฐ ๋ค์ฃฝ๋ฐ์ฃฝ์ด๋์ด ๋์ฐฉ๋ ์ ์์
>> ํจํท์ ํฌํจ๋์ด ์๋ ์์๋ฅผ ๊ฐ์ง๊ณ ์ฌ์กฐํฉํ์ฌ ์ฌ์ฉ
- ์ ์กํ๋ ๋ฐ์ดํฐ ๊ธธ์ด์ ํ๊ณ
๋ธ๋ผ์ฐ์ ๋ง๋ค ์ฃผ์์ฐฝ์ ์ธ ์์๋ ๊ธธ์ด๋ฅผ ์ ํํ๊ณ ์์.
์ ๋ ฅํ ๊ฐ์ด ์ต๋๊ธธ์ด๋ฅผ ๋์ด๊ฐ๋ฉด ์ฃผ์๊ฐ ์๋ฆด ์ ์์
๋ฐ๋ผ์ ๋ณด๋ด๋ ๊ธธ์ด๊ฐ ๊ธธ ๋ get ๋ฐฉ์์ ๋ง์ง ์์
- ์บ์ฑํ ์ ์์
<์บ์(Cache)>
์ปดํจํฐ์ ์ฑ๋ฅ์ ํฅ์์ํค๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๋ฉ๋ชจ๋ฆฌ๋ก ์์ฃผ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ค์ ๊ธฐ์ต
Cache๋ ์์ฃผ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ ๊ฐ์ ๋ฏธ๋ฆฌ ๋ณต์ฌํด ๋๋ ์์ ์ฅ์๋ฅผ ๊ฐ๋ฆฌํด
์บ์๋ ์ ์ฅ ๊ณต๊ฐ์ด ์๊ณ ๋น์ฉ์ด ๋น์ผ ๋์ ๋น ๋ฅธ ์ฑ๋ฅ์ ์ ๊ณตํจ
<์น์บ์(Web Cache)>
์ฌ์ฉ์(Client)๊ฐ ์น ์ฌ์ดํธ(Server)์ ์ ์ํ ๋ ์ ์ ์ปจํ ์ธ (์ด๋ฏธ์ง, JS, CSS ๋ฑ)์ ํน์ ์์น์ ์ ์ฅํ์ฌ ์น ์๋ฒ์ ํด๋น ์ปจํ ์ธ ๋ฅผ ๋งค๋ฒ ์์ฒญํ์ฌ ๋ฐ๋ ๊ฒ์ด ์๋ ํน์ ์์น์์ ๋ถ๋ฌ์ด์ผ๋ก์จ ์ฌ์ดํธ ์๋ต์๊ฐ์ ์ค์ด๊ณ ์๋ฒ ํธ๋ํฝ ๊ฐ์ ํจ๊ณผ๋ฅผ ๋ณผ ์ ์์
์๋ตํ๋ ๋ฐ์ดํฐ๊ฐ ์์, ์ด๋ฏธ์ง, ์์ฑ ํ์ผ๊ณผ ๊ฐ์ด ํฌ๊ธฐ๊ฐ ํฐ ๋ฐ์ดํฐ๋ค์ผ ๋ ์์ฒญํ ๋๋ง๋ค ์๋ต์ ๋ฐ๊ฒ ๋๋ฉด ์๋ฒ์ ๋ถํ๊ฐ ๋ฐ์ํจ. ๋ฐ๋ผ์ ์์ฃผ ํ๋ ์์ฒญ์ผ ๋๋ ์๋ฒ๋ก๋ถํฐ ๋ฆฌ์์ค๋ฅผ ๊ฐ์ ธ์ค๊ณ ๋ฆฌ์์ค๋ฅผ ํด๋ผ์ด์ธํธ pc์ ์ ์ฅํด ๋์. ์ด๋ ๊ฒ ํ๋ฉด ๋๊ฐ์ ์์ฒญ์ ํ์ ๋ ๊ทธ ๋ฆฌ์์ค๋ฅผ ์๋ฒ์์ ๋ค์ ๊ฐ์ ธ์ค๋๊ฒ ์๋๋ผ pc์ ์ ์ฅ๋ ๋ฆฌ์์ค๋ฅผ ๊ฐ์ ธ์์ ์. ์ด๋ ๊ฒ ํ๋ฉด ํจ์ฌ ๋น ๋ฅด๊ณ ์๋ฒ์ชฝ์ ๋ถํ๊ฐ ์ค์ด๋ฆ.
<์บ์ฑ>
์บ์ฑ ์์ญ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ ์ ๊ทผํ๋ ๋ฐฉ์
๐ POST
- ๋ณด์์ ๊ฐํ๋ค >> GET์ ๋นํด ๊ฐํ๋ค๋ ๋ป!
โ Query String โจ
url?name=value&name2=value2&...
get๋ฐฉ์์ผ ๋ query String ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํจ
์์์ ์ผ๋ก Query String์ผ๋ก ๋ง๋ค์ด์ ์ ๋ฌํ ์๋ ์์
๐ GET/POST ์ค์ต
GET ๋ฐฉ์์ผ ๋๋ ํ๊ธ์ด ์ ์์ ์ผ๋ก ์ถ๋ ฅ๋์ง๋ง, POST ๋ฐฉ์์ผ ๊ฒฝ์ฐ์๋ ์ ์์ ์ผ๋ก ์ถ๋ ฅ์ด ์๋จ
์ด์ : ๋ฉ์๋์ ๋ฐ๋ผ์ ์ธ์ฝ๋ฉํ๋ ๋ฐฉ๋ฒ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ
package com.smhrd.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/Ex02")
public class Ex02 extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// GET๊ณผ POST์ ๋ฐ๋ฅธ ํ๊ธ ์ธ์ฝ๋ฉ ๋ฐฉ์
// 1) POST : ํจํท์ BODY ๋ถ๋ถ์ ๋ฐ์ดํฐ๊ฐ ์ค์ด์ ธ์ ์ ์ก๋จ
// >> ํจํท์ด ๋์ด์ฌ๋๋ง๋ค(์์ฒญ์ด ๋ค์ด์ฌ๋๋ง๋ค) ์ธ์ฝ๋ฉ ๋ฐฉ์ ์ง์
// >> request.setCharacterEncoding("UTF-8");
// >> ๊ผญ getParameter ์์ ์์ฑํด์ผ ํจ!
// >> ์๋ฐ๋ ์์์ ์๋๋ก ์์ฐจ์ ์ผ๋ก ์คํ๋๋ฏ๋ก!
// 2) GET : URL์ ์ค์ด์ ธ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํจ
// >> URI๋ฅผ ์ธ์ฝ๋ฉํด์ค์ผ ํจ!
// >> Server(Tomcat9) / server.xml > URIEncoding=UTF-8 ์ง์
request.setCharacterEncoding("UTF-8"); //*์์น: getParameter ํธ์ถ ์ด์ !
String name = request.getParameter("name");
System.out.println(name);
response.setContentType("text/html; charset=UTF-8;"); //์๋ต๋ฐ์ดํฐ ํ์(์ธ์ฝ๋ฉ๋ฐฉ์) ์ง์
PrintWriter out = response.getWriter(); // ํ
์คํธ ์ถ๋ ฅ ์คํธ๋ฆผ
out.print(name); // ์คํธ๋ฆผ์ ํตํด ํ
์คํธ ์ถ๋ ฅ
}
}
๐ GET ์ธ์ฝ๋ฉ ๋ฐฉ์
๐ POST ์ธ์ฝ๋ฉ ๋ฐฉ์
๋ฐ์ดํฐ๋ฅผ ํจํท์ ๋ฐ๋์ ํฌํจํด์ ์์ฒญ (์ฆ, ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ๋๋ง๋ค ์ธ์ฝ๋ฉ ํ์)
** POST ๋ฐฉ์์ผ๋ก ์์ฒญ์ ๋งค๋ฒ ์ธ์ฝ๋ฉ ๋ฐฉ์์ ์ง์ ํด์ฃผ์ด์ผ ํจ
** getParameter๋ก ๊ฐ์ ๊ฐ์ ธ์ค๊ธฐ ์ ์ ์ธ์ฝ๋ฉ ๋ฐฉ์์ ๋จผ์ ์ง์ ํด์ฃผ์ด์ผ ํจ
๐ request.getParameter() vs request.getParameterValues()
getParamenter()๋ ์ฌ๋ฌ๊ฐ์ ํ๋ผ๋ฏธํฐ ์ค์์ ํ๋์ ๊ฐ๋ง ๊ฐ์ง๊ณ ์ฌ ์ ์์
>> ๋ฐ๋ผ์ checkbox ํ์ ์ผ ๊ฒฝ์ฐ์๋ ๋ค๋ฅธ ์์ฑ์ ์ฌ์ฉ
ํ๋ ์ด์์ ๊ฐ์ ๊ฐ์ ธ์ฌ ๋๋ getParameterValues() ์ฌ์ฉ
getParameterValues()์ ๋ฐํํ์ ์ String[]
package com.smhrd.servlet;
import java.io.IOException;
import java.util.Arrays;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/Ex03")
public class Ex03 extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String job = request.getParameter("job");
String gender = request.getParameter("gender");
// String hobby = request.getParameter("hobby");
String[] hobby = request.getParameterValues("hobby");
System.out.println(job);
System.out.println(gender);
System.out.println(Arrays.toString(hobby));
}
}
โป check box ์ radio์ ๊ธฐ๋ณธ๊ฐ : on
>> value๋ฅผ ์์ฑํ์ง ์์ผ๋ฉด on์ ๋ฐํ
โ ์ค์ต
package com.smhrd.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/Ex04")
public class Ex04 extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String id = request.getParameter("id");
String pw = request.getParameter("pw");
String gender = request.getParameter("gender");
String blood = request.getParameter("blood");
String birth = request.getParameter("birth");
String color = request.getParameter("color");
String text = request.getParameter("text");
response.setContentType("text/html; charset=UTF-8;"); //์๋ต๋ฐ์ดํฐ ํ์(์ธ์ฝ๋ฉ๋ฐฉ์) ์ง์
PrintWriter out = response.getWriter(); // ํ
์คํธ ์ถ๋ ฅ ์คํธ๋ฆผ
out.print("์์ด๋ : " + id);
out.print("<br>๋น๋ฐ๋ฒํธ : " + pw);
if(request.getParameter("pwcheck").equals(pw)) {
out.print("<br>๋น๋ฐ๋ฒํธ๊ฐ ์ผ์นํฉ๋๋ค.");
}else {
out.print("<br>๋น๋ฐ๋ฒํธ๊ฐ ์ผ์นํ์ง ์์ต๋๋ค.");
}
out.print("<br>์ฑ๋ณ : " + gender);
out.print("<br>ํ์กํ : " + blood);
out.print("<br>์์ผ : " + birth);
out.print("<br>");
String[] hobby = request.getParameterValues("hobby");
out.print("์ทจ๋ฏธ : ");
for(int i = 0 ; i < hobby.length ; i++) {
out.print(hobby[i] + " ");
}
out.print("<br>์ข์ํ๋ ์ : " + color);
out.print("<br>๋จ๊ธฐ๊ณ ์ถ์ ๋ง : " + text);
}
}
'full stack > Back-End' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JSP/Servlet] Scope (2023.05.18~19) (0) | 2023.05.19 |
---|---|
[JSP/Servlet] ์ ์ธ๋ฌธ, ์ง์์, ๋ด์ฅ๊ฐ์ฒด (2023.05.16) (0) | 2023.05.16 |
[JSP/Servlet] JSP ํ์์ฑ๊ณผ ํน์ง, ๊ตฌ์ฑ์์ (2023.05.15) (0) | 2023.05.15 |
[JSP/Servlet] Servlet ๊ฐ์, ๋ฐ์ดํฐ ์ ์ก (2023.05.10) (0) | 2023.05.12 |
[JSP/Servlet] Server์ Servlet ๊ฐ์ (2023.05.09) (0) | 2023.05.09 |