HttpServlet
HttpServlet은 Java의 Servlet API 에서 제공하는 클래스다.
HTTP 프로토콜을 사용하여 웹 요청을 처리하기 위한 기본적인 메커니즘을 제공한다.
HttpServletRequest
클라이언트의 HTTP의 요청을 나타내는 인터페이스다.
서버는 HttpServletRequest를 통해 클라이언트로부터 받은 쿠키를 읽을 수 있다.
HttpServletResponse
클라이언트에게 HTTP 응답을 보내는데 사용되는 인터페이스다
setStatus() 메서드를 사용하여 HTTP 응답의 상태코드를 설정할 수 있다. ex) 200, 300.. 등등
쿠키등을 클라이언트에게 보낼 수 있다.
HttpServlet로 서버와 클라이언트끼리 데이터를 소통하는 방식은 Http의 헤더와 바디로 소통이 이루어진다.
HttpServletRequest로 클라이언트의 요청을 처리하고 HttpServletResponse를 통해 응답한다.
공부를 하는데 계속 헷갈렸다.
HttpServletResponse에서 어떻게 쿠키를 만들어서 클라이언트한테 보낼 수 있는 거지?
HttpServletRequest에서 어떻게 쿠키를 읽어서 쿠키의 키 값으로 분류를 할 수 있는 거지?
HttpServletResponse로 쿠키를 전달하는 방법
Cookie cookie = new Cookie("key", "value");
response.addCookie(cookie);
// 여기서 response는 HttpServletResponse
쿠키는 기본적으로 Map과 비슷하게 Key, Value로 구분되어 있다.
Key는 쿠키가 어떤 쿠키인지 구분할 때 쓰이고 Value에는 개발자가 정해논 값들이 들어간다.
HttpServletRequest로 쿠키를 읽는 방법
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
if ("CookieName".equals(cookie.getName())) {
String value = cookie.getValue();
// ...
}
}
}
// 여기서 request는 HttpServletRequest
클라이언트에서 서버에 쿠키를 보낼 때, 클라이언트가 갖고 있는 모든 쿠키를 보내기에 getCookies()라는 메소드를 이용하여 Cookie 배열에 담아줘야 한다.
근데 클라이언트가 갖고 있던 쿠키가 없으면 로직을 수행할 필요가 없으니 cookies != null 을 해주는 것이다.
이 부분 중요하다 쿠키 배열의 null 체크를 꼭 해줘야 한다.
향상 for문으로 cookies를 cookie 객체가 돌고
if문으로 쿠키의 Key 값을 분류하는데 cookie.getName() 메서드를 활용하여 분류 해주고 원하는 로직을 만들면 된다.
'TIL' 카테고리의 다른 글
TIL 2023-11-15 JWT 검증 과정에서 일어나는 문제 해결 과정 (1) | 2023.11.15 |
---|---|
TIL 2023-11-13 Session과 JWT 뭐가 더 좋을까? (2) | 2023.11.13 |
TIL 2023-11-09 nullable = false 설정 했는데도 빈 값이 들어갈 때 (0) | 2023.11.09 |
TIL 2023-11-08 영속성 컨텍스트, Jpa의 트랜잭션 (0) | 2023.11.08 |
TIL 2023-11-07 Bean과 IoC 컨테이너 (0) | 2023.11.07 |