티스토리 뷰

한화시스템 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 사용한다.

일시적으로 연결(무연결성 해결!)시켜 상태값을 보낸다(무상태성 해결!).

아이디 : user01 / 비밀번호 : pass01
이런 식으로 결과를 받는다.

 

화면에 출력까지 하고 싶다!

하나의 서블릿 객체가 너무 많은 일을 하므로 

특임을 하는 서블릿 객체를 만들어서 원래 상태값(id,pwd)를 넘겨줘서

화면을 출력하게 만들자.

 

똑같이 로그인하면

결과를 이렇게 받게되고....
화면까지 잘 받게 된다.

 

그러나 문제는...!!

새로고침을 하면 

 

이렇게 DB까지 매번 갔다가 온다...

이게 insert면 끔찍하다!!ㅋㅋㅋㅋㅋ

 

해결하기 위해서는 redirect() 사용하자!

 

2. redirect()

쿼리스트링(너무 많은 데이터 X)으로 파라미터를 넘겨서 리다이렉션 시킨다.

 

 

2가지 방법이 있다.

 

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

 

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

짜자잔!!!! get 요청을 받으면 naver 사이트로 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 노랭이!

 

 

최대한 잘 지켜보자!!! 파이팅!!!

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
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
글 보관함