다른 컨트롤러에 있는 do 경로로 이동

2021. 7. 5. 06:16spring

 

BoardController
@RequestMapping("/getBoardList.do")
public String getBoardList(BoardVO vo, Model model) {
vo.setRegDate(new Date(System.currentTimeMillis()));
if(vo.getSearchCondition() == null) vo.setSearchCondition("TITLE");
if(vo.getSearchKeyword() == null) vo.setSearchKeyword("");
if(vo.getSearchCondition().equals("TITLE")) {
model.addAttribute("boardList", boardService.getBoardListT(vo));
} else if(vo.getSearchCondition().equals("CONTENT")) {
model.addAttribute("boardList", boardService.getBoardListC(vo));
}

model.addAttribute("page", vo.getPage());

return "/board/"+"getBoardList.jsp"; // View �̸� ����
}
LoginContoller
@RequestMapping(value = "/login.do", method = RequestMethod.POST)
public String login(UserVO vo, UserDAO userDAO, HttpSession session, Model model) {
if(vo.getId().equals("")) {
vo.setId("없는아이디");
}
UserVO user = userDAO.getUser(vo);
if (user != null) {
session.setAttribute("userName", user.getName());
return "redirect:getBoardList.do";
} else
model.addAttribute("incolect","아이디 혹은 비밀번호가 틀렸습니다.");
return "/board/"+"login.jsp";
}

아마도 그냥 ***.do로 이동시 현재 컨트롤러내에서 매핑 주소를 찾게되는 것으로 생각된다..

 

따라서 스트링 반환값에 redirect:를 해주면 해당 경로로 리다이렉트 처리를 해줘서 해당 주소를 직접 입력해서 가는 것과 같은 효과를 얻게되어 다른 컨트롤러라도 찾게되는 것으로 이해하는 중..

 

또 리다이렉트 처리시 장점이 매핑 주소가 직접 입력한 주소로 가는 것이 아니라 해당 주소로 바로 표기되기 때문에 주소를 가리는 데도 도움이 되는 듯 해서 같은 컨트롤러 내라도 do로 제어를 이동할 경우엔 전부 리다이렉트 처리를 해주었다.

 

jsp배울땐 jsp 태그로 sendRedirect 처리시 제어를 두번하게 되서 서버에 과부하를 줄 수도 있다고 하는데 이것도 같은 것인지는 모르겠다... 브라우저에서 뒤로가기 목록을 봤을 때 기존 주소가 없는걸 봐선 아닌 것 같기도 하고 애초에 do로 가는 매핑 같은 경우는 jsp파일을 거치는게 아니라 서버단에서 처리 후 최종적으로 jsp파일을 띄우는 것이라 요청이 2번 들어올 것 같지는 않다고 이해 하는 중..