2023.03.29 기록

2023. 3. 29. 21:45TIL(Today I Learned)

@WebServlet에서 경로를 두 개 설정하려면 

@WebServlet({"/home", "/main"}) 이렇게 설정하면 된다. 

 

포워딩과 리다이렉트의 차이

1. 동작하는 방식이 다르다.

 

포워딩 방식

- 포워딩 방식 : 크롬 브라우저에서 톰캣한테 요청을 보낼 때, 요청은 서블릿이 받아서 처리한다. 

예를 들어, 클라이언트는 한번 요청을 하고 톰캣 내부에서 자체적으로 jsp로 연결한다.

 

반면, 리다이렉트는 서블릿이 처리를 다 한 다음에 다른 jsp에 요청하라고 알려준다.

그러면 클라이언트는 응답받은 내용대로 새로운 곳에 요청을 다시 보낸다. 

요청을 받은 측에서 다시 응답을 한다. 

 

즉, 리다이렉트는 요청이 두 개 생겨서 서블릿이 작업을 다 하고 나서 리퀘스트에 값을 담아놨지만 그 값은

jsp가 처리할 req, resp에 상관없는 별개의 요청 객체이기 때문에 서블릿 측에서 req, resp에 담아봤자 jsp는 서블릿의 req, resp에 접근할 수 없다.

 

그렇기에 서블릿의 req, resp 객체에 들어있는 값들을 꺼내오지 못하는 것이다. 

 

포워딩 방식은 서블릿에서 처음 req, resp 객체를 만들어준다. 그 후에 서블릿이 jsp에게 권한을 위임하고 그 req, resp 객체가 넘겨진다. 같은 객체를 이용하는 것이다. 

 

리다이렉트 방식

req, resp 객체는 일회성이고 리다이렉트 방식으로 받았을 때 연결이 안되기 때문에  session을 사용한다.

 

session을 이용하면 톰캣 내부에 어떤 공간을 이용하여 그 데이터들을 담을 수 있다.

'TIL(Today I Learned)' 카테고리의 다른 글

2023.04.06 기록  (0) 2023.04.06
2023.04.05 기록  (0) 2023.04.05
2023.03.30 기록  (0) 2023.03.31
2023.03.27 기록  (0) 2023.03.27
2023.03.23 기록  (0) 2023.03.23