스프링 mvc 요청 전달 및 방향 변경
1.RequestDispatcher.forward 방법은 요청을 같은 웹 응용 프로그램의 구성 요소인 HttpServletResponse에만 전달할 수 있습니다.sendRedirect는 현재 응용 프로그램의 다른 자원뿐만 아니라 같은 사이트의 다른 응용 프로그램의 자원도 리셋할 수 있습니다. 심지어 절대 URL을 사용하여 다른 사이트의 자원도 리셋할 수 있습니다.sendRedirect의 경우 "/"로 시작하는 URL은 전체 웹 사이트에 대한 루트 디렉터리입니다.forward의 경우 전달된 URL이'/'으로 시작하면 현재 웹 응용 프로그램에 대한 루트 디렉터리입니다.
2. sendRedirect가 브라우저에 대한 응답은 다른 URL에 대한 접근 요청을 다시 보내는 것입니다. forward는 서버 측 내부에서 요청을 다른 자원에 전송합니다. 브라우저는 요청만 보내고 응답 결과를 얻었습니다.
3. forward의 호출자와 피호출자 간에 같은request 대상과response 대상을 공유하는데 그들은 같은 방문 요청과 응답 과정에 속한다.sendRedirect의 호출자와 피호출자는 각자의 request와response 대상을 사용하고 두 개의 독립된 접근 요청과 응답 과정에 속한다
리디렉션 요청은redirect:로 시작하고, 전송 요청은forward:로 시작합니다.
예제는 다음과 같습니다.
@RequestMapping(value="/users")
@Controller
public class UserController {
@RequestMapping(value="/queryuser",method = RequestMethod.GET)
public String queryuser(Model model) throws Exception {
return "forward:/users/uc";
}
@RequestMapping(value="/uc",method = RequestMethod.GET)
public String quer(Model model) throws Exception {
return "redirect:/#/home";
}
@RequestMapping(value = "/save", method = RequestMethod.GET)
public ModelAndView saveUser(HttpServletRequest request, HttpServletResponse response) throws Exception {
ModelAndView mv = new ModelAndView("forward:/users/uc");// forward
// ModelAndView mv = new ModelAndView("redirect:/#/home");//redirect
return mv;
}
}
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.