티스토리 뷰
한화시스템 BEYOND SW 캠프 9기 36일차
2024.08.07_수
forward 및 redirect

서블릿 1과 2는 연결되어 있지 않다. 서로 어떤 상태인지 모른다. → 무상태성(stateless) → 무상태성 해결하기 위해 forward 사용(잠깐 연결)해서 서블릿 1이 2한테 상태값을 보낸다. → 요청 및 응답 후 끊긴다. → 무연결성(connectless)
insert인 경우 새로고침하면 계속 insert 된다! 그걸 해결하기 위해 redirect() 사용!
1. forward()

- 서블릿 1과 2는 연결되어 있지 않다(무연결성, connectless),
서로 어떤 상태인지 모른다.(무상태성, stateless)
- 두 가지를 해결하기 위해 forward 사용한다.
일시적으로 연결(무연결성 해결!)시켜 상태값을 보낸다(무상태성 해결!).


화면에 출력까지 하고 싶다!
하나의 서블릿 객체가 너무 많은 일을 하므로
특임을 하는 서블릿 객체를 만들어서 원래 상태값(id,pwd)를 넘겨줘서
화면을 출력하게 만들자.
똑같이 로그인하면


그러나 문제는...!!
새로고침을 하면

이렇게 DB까지 매번 갔다가 온다...
이게 insert면 끔찍하다!!ㅋㅋㅋㅋㅋ
해결하기 위해서는 redirect() 사용하자!
2. redirect()

2가지 방법이 있다.

<다른 웹 사이트로 redirect 테스트>

다른 웹 사이트로 redirect 테스트를 누르면

이런 식으로 리다이렉트 된다...신기하다...
<다른 서블릿으로 redirect 테스트>
아예 새로운 객체가 생성되고 request가 아예 새로 생성이 되는 거라
파라미터를 쿼리스트링으로 넘겨야 넘어가진다.


getAttribute는 새로운 주머니가 생긴 거라 test라 해도 나오는 값이 없다.
getParameter는 위에서 쿼리스트링으로 보낸 파라미터를 받는 값이다.

forward VS redirect
- forward -
request나 response 객체를 유지하며 요청 처리
request와 attribute 를 활용하여 다음 서블릿으로 값을 넘겨줄 수 있다.
- redirect -
클라이언트(브라우저)가 새로고침을 할 때마다 처음 요청하는 서블릿을 다시 호출하게 하고 싶지 않을 때
쿼리스트링 형태로 parameter의 개념(또는 쿠키나 세션 활용)을 활용하여 값을 넘겨줌
3. cookie


4. session

- 세션 클러스터링 -
요청을 받으면 서버가 여러 개이기 때문에 세션이 서버에 국한되면 다른 서버로 요청이 들어가면
해당 서버에 세션이 없기 때문에 세션만 따로 뺴야한다.


5. Filter

Filter는 서블릿 앞에 오고, 전처리 및 후처리를 진행한다.
Filter를 사용하는 몇 가지 이유는...
1. log: 요청에 있는 값들을 꺼내 log 찍어볼 수 있다.
2. 인코딩
3. 암호화 → 인증, 인가 (유효성 검사)
4. Time
최근에 이해가 잘 안되서 녹화 영상을 보면 거의 하루 수업만 듣는 거고..
다른 공부를 못해서 최대한 집중해서 들을려고 했는데 너무 어려워서 결국 다시 또 복습영상을 보게 되었다.
내일부터는 집중해서 수업 들어보자.
다시 들으면 확실히 이해하는데 도움되고 좋은데 시간이 너무 아깝다.
그 시간을 낭비하지 않게 하기 위해 집중력 있게 수업을 들어야겠다.
완벽하게 이해하지 못하면 그 부분만 들으면 되니까 다 듣지 말자...
그리고 위 처럼 쉬는 시간에 배웠던 것 바로 적어보려고 했는데...
쉬는 시간 10분도 너무 짧고 이해가 잘 안가는 순간부터 밀려서 이 방법은 보류를 해야할 것 같다.
앞으로의 나의 계획은
출퇴근 시 지하철에서 아이패드로 SQLD 문제 풀면서 공부!
일찍 도착해서는 자바 공부부터!
쉬는 시간 및 점심 시간 같이 자투리 시간은 코테!
수업 끝나고 나서 바로 복습!
(추가로 프로젝트 회의 및 실행)
집 도착해서는 운동하고 SQLD 노랭이!
최대한 잘 지켜보자!!! 파이팅!!!
'한화시스템 > 회고' 카테고리의 다른 글
[038] 스프링 IOC, DI...드디어 시작인가 보다!! (0) | 2024.08.10 |
---|---|
[037] Spring Framework(legacy) 이게 뭔말이다냐??? (0) | 2024.08.08 |
[035] Servlet 쉽지 않네... && 프로젝트 특강 (0) | 2024.08.06 |
한화시스템 BEYOND SW 캠프 9기 7주차 회고 (0) | 2024.08.04 |
[033] JDBC 연결 오류... / 오랜만에 푼 알고리즘 문제가..? (0) | 2024.08.02 |