์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ์ฝ๋ฉ
- Python
- ๋ฐ์ํ
- ๋ง์ผ๋ด๊ฐ์ธ์์๋ค์์ฐ๋ค๋ฉด
- ์๋ฐ์คํฌ๋ฆฝํธ
- ๋ผํ๋ผ์ค์๋ง๋
- ์ฑ
- K๋ฐฐํฐ๋ฆฌ
- ๋ฆฌ์กํธ
- K๋ฐฐํฐ๋ฆฌ๋ ๋ณผ๋ฃจ์
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ํ๋ก๊ทธ๋๋ฐ
- ์๋ฐ
- html
- Java
- database
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์นํผ๋ธ๋ฆฌ์ฑ
- ๋ ์
- ํ์ด์ฌ
- JavaScript
- ์ํ
- ComputerScience
- ์ค๋ผํด
- ๊น๋ฏธ๊ฒฝ์๋งํ์์
- ์ปดํจํฐ๊ณผํ
- ๊ฐ๋ฐ
- ์ค๋ธ์
- css
- ์นํ์ด์ง๋ง๋ค๊ธฐ
- Today
- Total
JiYoung Dev ๐ฅ
[JSP/Servlet] JSP ๋ด์ฅ๊ฐ์ฒด(HttpServletResponse) & ์ฟ ํค(Cookie) (2023.05.17) ๋ณธ๋ฌธ
[JSP/Servlet] JSP ๋ด์ฅ๊ฐ์ฒด(HttpServletResponse) & ์ฟ ํค(Cookie) (2023.05.17)
Shinjio 2023. 5. 19. 09:39๐ JSP ๋ด์ฅ๊ฐ์ฒด - HttpServletResponse
๐ sendRedirect()
๋ธ๋ผ์ฐ์ (ํด๋ผ์ด์ธํธ) ์ฃผ์์ฐฝ์ ์์ฑ๋ ๊ฒฝ๋ก
>> ๋ธ๋ผ์ฐ์ (ํด๋ผ์ด์ธํธ)๊ฐ ๊ทธ ๊ฒฝ๋ก์ ์ง์ ์์ฒญ์ ํ๋ค! ๋ผ๋ ์๋ฏธ
์ฐ๋ฆฌ๋ Ex03redirect๋ก ์์ฒญํจ
์ต์ข ์ฃผ์์ฐฝ์๋ Ex03createInput.html์ด ๋ธ
์ฆ, ์ต์ข ์ ์ผ๋ก ๋ธ๋ผ์ฐ์ (ํด๋ผ์ด์ธํธ)๊ฐ Ex03createInput.html์ ์์ฒญ!!
โ๏ธ sendRedirect์ ํ๋ก์ธ์ค
์๋ฒ๋ ์ด๋๋ก ์์ฒญํด์ผํ๋์ง ๊ฒฝ๋ก๋ฅผ ์๋ต
ํด๋ผ์ด์ธํธ๋ ์๋ต๋ฐ์ ๊ฒฝ๋ก๋ก ์์ฒญ
์์ฒญ๊ณผ ์๋ต์ด 2๋ฒ์ฉ ์ผ์ด๋จ!โจโจ
์์ฒญ์ request๊ฐ์ฒด๋ฅผ ๊ฐ์ง๊ณ ์ฌ์ฉ ๊ฐ๋ฅ
1๋ฒ์์ ์ฌ์ฉํ request๊ฐ์ฒด์ 3๋ฒ์์ ์ฌ์ฉํ request๊ฐ์ฒด๋ ์ด๋ฆ๋ง ๊ฐ์ ๋ฟ ์๋ก ๋ค๋ฅธ ๊ฐ์ฒด์
์ด ๋์ ์๋ก ๊ฐ(๋ฐ์ดํฐ)์ ๊ณต์ ํ์ง ์์
์ฆ, 1๋ฒ์์ ์ฌ์ฉํ ๊ฐ์ฒด๋ ์ฌ์ฉํ ๊ฒ์ํ ์ ๋ณด ๋ฐ์ดํฐ๋ฅผ ๋ด๊ณ ์์. ๊ทธ๋ฌ๋ 3๋ฒ์์ ์ฌ์ฉํ request ๊ฐ์ฒด๋ ์ฌ์ฉ์๊ฐ ๊ฒ์ํ ๋ฐ์ดํฐ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์ง ์์!!!
์๋ต์ resonse ๊ฐ์ฒด๋ฅผ ๊ฐ์ง๊ณ ์ฌ์ฉ๊ฐ๋ฅ
2๋ฒ๊ณผ 4๋ฒ์์ ์ฌ์ฉํ๋ reponse ๊ฐ์ฒด๋ ์๋ก ๋ค๋ฅด๋ค!
๐ forward
๐ Redirect vs Forward
โ๏ธ ๋ฆฌ๋ค์ด๋ ํธ๋ฐฉ์
โ๏ธ foward๋ฐฉ์
์ต์ข ์ ์ผ๋ก ์ด๋ํ ํ์ด์ง์ ๊ฒฝ๋ก๋ ํด๋ผ์ด์ธํธ๊ฐ ์ ์ ์๋ค
๋จ์ํ ํ์ด์ง ์ด๋์์๋ ๋ฆฌ๋ค์ด๋ ํ ๋ฐฉ์
๋๊ฒจ์ผ ํ๋ ๋ฐ์ดํฐ๊ฐ ์๋ ๊ฒฝ์ฐ foward ๋ฐฉ์ ํน์ ์ฟผ๋ฆฌ์คํธ๋ง ๋ฐฉ์
Rendering
์๋ฒ๊ฐ ์๋ตํด์ฃผ๋ ๋ฆฌ์์ค(html, js, css ๋ฑ)๋ฅผ ๊ฐ์ง๊ณ ๋ธ๋ผ์ฐ์ ํ๋ฉด์ ํํํด์ฃผ๋ ์์
→ ๊ทธ๋ฆผ์ ๊ทธ๋ฆฌ๋ ์์
< Rendering์ ์ข ๋ฅ >
SSR(Server Side Rendering) ↔ CSR(Client Side Rendering)
์๋ฒ์์ ๋ ๋๋ง ์ฒ๋ฆฌ ํด๋ผ์ด์ธํธ์์ ๋ ๋๋ง ์ฒ๋ฆฌ
SSR
- ์๋ฒ์์ ์ด๋ฏธ ๋ง๋ค์ด์ง ์ ์ ์นํ์ด์ง(html)๋ฅผ ๋ถ๋ฌ์์ ํ๋ฉด์ ๋ ๋๋ง ํ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๋ค์ด ๋ฐ์
- ์ฅ์ : ์ฒซํ์ด์ง๋ฅผ ๋ก๋ฉํ๋ ์๋๊ฐ CSR์ ๋นํด์ ๋น ๋ฅด๋ค.
- ๋จ์ : ํ์ด์ง ์ด๋์, ์ฌ์ดํธ ์กฐ์์ ์๋๊ฐ ๋ค์ ๋๋ฆผ
> ์๋ฒ์์ ์ด๋ฏธ ๋ ๋ ๊ฐ๋ฅํ ์ํ๋ก html์ ํด๋ผ์ด์ธํธ์ ์ ๋ฌํ๊ธฐ ๋๋ฌธ์ JS๊ฐ ๋ค์ด๋ก๋ ๋๋ ๋์ ์ฌ์ฉ์๋ ๋ ๋๋ง๋ ํ๋ฉด์ ๋ณผ ์ ์์
- ex. jsp
CSR
- ๋น HTML ํ์ผ ์์ ๋ชจ๋ ๋ก์ง์ด ๋ด๊ธด js ํ์ผ์ด ์กด์ฌ. ๋ฐ๋ผ์ js์ ๋ชจ๋ ๋ค์ด๋ก๋ ๋ฐ์ ํ์์ผ ํ๋ฉด์ ๋ณด์ฌ์ค ์ ์์. ๊ทธ๋ฌ๋ ํ๋ฉด์ ๋ด๊ณผ ๋์์ ์ฌ์ดํธ ์กฐ์์ด ๊ฐ๋ฅํจ.
- ์ฅ์ : ํ์ด์ง ์ด๋์ SSR์ ๋นํด ๋น ๋ฅด๋ค. & ์๋ฒ ํธ๋ํฝ ๊ฐ์
- ๋จ์ : ์ฒซํ์ด์ง ๋ก๋ฉํ๋ ์๋๊ฐ SSR์ ๋นํด ๋ค์ ๋๋ฆฌ๋ค.
- ex. react, vue ๋ฑ
์ฐธ๊ณ ์์.
https://youtu.be/iZ9csAfU5Os
๐์ฟ ํค์ ์ธ์
๐ HTTP ํน์ง
HTTP์ ๋น์ฐ๊ฒฐ์ฑ๊ณผ ๋ฌด์ํ์ ํน์ฑ์ผ๋ก ์ธํด ์ฌ์ฉ์์ ์ํ๋ฅผ ์ ์งํ ์ ์์.
์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฟ ํค(Cookie)์ ์ธ์ (Session)์ด ์กด์ฌ
HTTP์ ํน์ฑ๊ณผ ๋ฌด๊ดํ๊ฒ(๋น์ฐ๊ฒฐ์ฑ, ๋ฌด์ํ) ๋ก๊ทธ์ธ, ์ฅ๋ฐ๊ตฌ๋ ๋ฑ์ ์ฌ์ฉ์์ ์ํ๋ฅผ ์ ์งํ๊ธฐ ์ํด ์ฟ ํค์ ์ธ์ ์ ์ฌ์ฉํจ!
๐ ์ฟ ํค(Cookie)
๋จน์๋ ํ์ ์ด ๋จ์์๋ค >> ์น์์ ์ฌ์ฉํ๋ ์ฟ ํค๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฌ์ฉํ๋ฉด ํ์ ์ด ๋จ๋๋ค.
์ฟ ํค ์์ ์ฌ์ฉ์๊ฐ ์ ์งํ๊ณ ์ถ์ดํ๋ ์ํ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ค.
์ฟ ํค๋ ํด๋ผ์ด์ธํธ ์ปดํจํฐ์ ์ ์ฅ๋์ด ์๋ค.
์ฟ ํค๋ฅผ ํ์ฉํ์๊ฒ ์ต๋๊น? --> ์ฐ๋ฆฌ PC์ ์ ์ฅํด์ผํ๋๊น ํ์ธ
์ ์ฅ๋ ํ์ผ์ ์ฐ๋ฆฌ PC์์ ๋ณผ ์ ์๋ค.
์ฟ ํค์ ์ ์ฅ๋์ด ์๋ ์ ๋ณด : name, value, expires/Max-age(๋ง๋ฃ๊ธฐ๊ฐ) ์ธ
session ์ด๋ผ๊ณ ๋์ด ์์ผ๋ฉด ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ซ์ผ๋ฉด ์ฟ ํค๊ฐ ์ฌ๋ผ์ง (์ธ์ ์ฟ ํค)
โ๏ธ ์ฟ ํค ๋์ ๋ฐฉ์
์์ฒญ์ ๋ฐ๊ณ ์๋ต์ ํด์ค๋ ์์ฑ๋ ์ฟ ํค๋ฅผ ํจ๊ป ์ ๋ฌํด์ค
ํจํท์ ํค๋๋ถ๋ถ์ ์ฟ ํค ์ ์ฅ
ํด๋ผ์ด์ธํธ๋ ์น ๋ธ๋ผ์ฐ์ . ์น ๋ธ๋ผ์ฐ์ ๋ง๋ค ์ฟ ํค๋ ๋ค๋ฅด๋ค.
์ฟ ๊ธฐ์ ๊ฐ์ ์จ์ผํ ๋ ์์ฒญํ ๋ ํจํท์ ์ฃ์ด์ ๊ฐ์ด ์์ฒญ
์๋ฒ์์ ์ฟ ํค ํ์ธํ์ฌ ์ฟ ํค๋ฅผ ์์ ํด์ผ ํ๋ฉด ์๋ฒ์์ ์์ ์งํ. ์์ ๋ ์ ๋ณด๋ฅผ ํค๋์ ํฌํจ์์ผ ์๋ต
โ๏ธ ์ฟ ํค ์ฌ์ฉ ์์
์ผํ๋ชฐ ์ฅ๋ฐ๊ตฌ๋
ํ์ ์ฐฝ(์ค๋ ํ๋ฃจ ์ด์ง ์์)
โ๏ธ ์ฟ ํค ์ฌ์ฉ ์ฅ๋จ์
์๋ตํ๋ ๊ณผ์ ์ ์ฌ์ฉ์์ ๋ํ ์ ๋ณด๊ฐ ๋ด๊ฒจ์์.
์๋ตํ๋ ๊ณผ์ ์ ๋๊ตฐ๊ฐ๊ฐ ๋ณผ ์๋ ์์. ===> ๋ณด์์ ์ํ์ฑ
๋ธ๋ผ์ฐ์ ๋น 300๊ฐ๊น์ง. ํ์ฉ์ฉ๋ ๋ฒ์ด๋ ๊ฒฝ์ฐ ๊ฐ์ฅ ์ค๋๋ ์ฟ ํค ์ญ์ ํ๋ ๋ฑ์ ๋ฐฉ๋ฒ์ผ๋ก ์ ๋ฐ์ดํธ
JSESSIONID ์ธ์ ์ฟ ํค : ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ ์์์ ์ผ๋ก ์๋ฒ๊ฐ ๋ฐ๊ธ
โ๏ธ ์ฟ ํค ์์ฑ & ์ฌ์ฉ & ์ญ์
์๋ฒ์์ ์ฟ ํค ์์ฑ ํ ํด๋ผ์ด์ธํธ๋ก ์ ๋ฌ
์ฟ ํค ๊ฐ์ฒด( Cookie(String(์ฟ ํค ๋ค์), String(์ฟ ํค ๊ฐ) ) ์์ฑ
ํด๋ผ์ด์ธํธ๋ก ์ฟ ํค ์ ์ก
response.addCookie(์ฟ ํค๋ค์)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
//-- ์ฟ ํค ์์ฑ
//1. ์ฟ ํค ๊ฐ์ฒด ์์ฑ : Cookie(String("name"),String("value"))
Cookie cookie = new Cookie("test","testcookie");
//2. ์์ฑ๋ ์ฟ ํค์ ๋ง๋ฃ๋ ์ง๋ฅผ ์ค์ (์ด๋จ์)
cookie.setMaxAge(60*60*24*365); //1๋
๋์ ์ ์ง
//3. ์๋ฒ์์ ์์ฑ๋ ์ฟ ํค๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ์ ์ก(response)
response.addCookie(cookie);
response.addCookie(new Cookie("name","์ ์ง์"));
%>
<a href="Ex02GetCookie.jsp">์ฟ ํคํ์ธ</a>
</body>
</html>
ํด๋ผ์ด์ธํธ์ ์ ์ฅ๋ ์ฟ ํค ๊ฐ์ ธ์ค๊ธฐ
request.getCookies();
getName() - ์ฟ ํค ๋ค์ ๋ถ๋ฌ์ค๋ ๋ฉ์๋
getvalue() - ์ฟ ํค ๊ฐ ๋ถ๋ฌ์ค๋ ๋ฉ์๋
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
//-- ์ ์ฅ๋ ์ฟ ํค ๊ฐ์ ธ์ค๊ธฐ
//ํด๋ผ์ด์ธํธ์ ์ ์ฅ๋ ์ฟ ํค๋ฅผ ์๋ฒ๋ก ๋ณด๋ด๊ธฐ (request)
Cookie[] cookies = request.getCookies();
for(Cookie c : cookies){
//์ฟ ํค์ name, value ํ๋ฉด์ ์ถ๋ ฅ
out.print(c.getName() + " : " + c.getValue() + "<br>");
}
%>
<a href="Ex03removeCookie.jsp">์ฟ ํค์ญ์ </a>
</body>
</html>
์ฟ ํค ์ญ์ ํ๊ธฐ
์ญ์ ํ๊ณ ์ถ์ ์ฟ ํค์ ๋ค์๊ณผ ๋์ผํ๊ฒ ์ฟ ํค ์์ฑ ํ ๋ง๋ฃ๊ธฐ๊ฐ 0์ผ๋ก ์ค์ → ํด๋ผ์ด์ธํธ๋ก ์ ์ก
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
//-- ์ฟ ํค ์ญ์
//1. ์ฟ ํค ์์ฑ (์ญ์ ํ๊ณ ์ถ์ ์ฟ ํค์ name๊ณผ ๊ฐ์ name์ ๊ฐ์ง ์ฟ ํค ์์ฑ)
// - value๋ ๋ฌ๋ผ๋ ๋จ
Cookie cookie = new Cookie("name","");
//2. ๋ง๋ฃ๊ธฐ๊ฐ ์ค์ (0s)
cookie.setMaxAge(0);
//3. ์๋ฒ์์ ์์ฑ๋ ์ฟ ํค๋ฅผ ํด๋ผ์ด์ธํธ๋ก ์ ์ก
response.addCookie(cookie);
%>
<a href="Ex02GetCookie.jsp">์ฟ ํค ํ์ธ</a>
</body>
</html>
'full stack > Back-End' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JSP/Servlet] Maven (2023.05.22) (0) | 2023.05.22 |
---|---|
[JSP/Servlet] Web MVC (2023.05.19) (0) | 2023.05.19 |
[JSP/Servlet] ์ธ์ (session) (2023.05.18) (0) | 2023.05.19 |
[JSP/Servlet] Scope (2023.05.18~19) (0) | 2023.05.19 |
[JSP/Servlet] ์ ์ธ๋ฌธ, ์ง์์, ๋ด์ฅ๊ฐ์ฒด (2023.05.16) (0) | 2023.05.16 |