-
[ model2 ] 내부이동과 리다이렉션카테고리 없음 2022. 7. 2. 23:34
하루입니다.
내부이동(forward)과 리다이렉션은 뭐가 다를까요
리다이렉션
상태코드 302. url 바뀐다.
데이터를 변경할 때 ㅡ 수정, 추가, 삭제할 때 사용한다.
궁금점 : 왜 내부이동 안 시키지
이유 1.
속성에 담을 값이 없음. 메소드로 치면 void다. 조회는 List든 Array든 객체든 조회된 값을 필요로 하는 jsp로 전달해야 한다. 얘는 전달할 값이 없다. 그래서 변경된 값을 보여주는 list나 detail화면 같은 걸 redirect 시키는 것이다.
이유 2.
반복되는 데이터 변경을 막기 위해서. 이게 더 큰 이유같긴 함. 만약 내부이동 된다면 누군가 악의적으로 혹은 실수로 데이터 변경을 마구 했을 때 올바르지 않은 데이터값이 될 수 있다고 한다.
내부이동
데이터를 조회할 때 사용한다. url 안 바뀜.
클라이언트로부터 요청이 오면 요청객체와 응답객체가 생긴다.
데이터 조회 요청이 왔다고 할 때, controller를 사용해 데이터를 조회하고, 조회된 데이터를 요청객체의 속성에 setAttribute("name", 변수명) 과 같은 형태로 담는다. 요청객체는 값을 담고 다시 frontController로 갔다가 -> return된 jsp화면으로 옮겨간다.
jsp화면에서는 el을 사용해 ${표현식 }과 같은 형태로 값을 조회할 수 있다.
요청객체의 속성에 값 담아 전달한다는 걸 기억할 것!
엄청 헷갈렸는데 글로 적으니까 정리가 되는군요 ^.^ model2에서는 포워딩과 리다이렉트의 구분이 중요하다고 했으니 잘 구분해 공부해야겠다.
감사합니다좋은하루되세요