@RequestMapping("/output.do")
public ModelAndView outputPage(@RequestParam HashMap<String, String> params) {
System.out.println(params);
ModelAndView mv = new ModelAndView();
mv.setViewName("output");
mv.addObject("measureDate", "2024-01-11");
return mv;
}입력/출력 보여주거나 값 전달을 위한 코드
// **HttpServletRequest**
request 값은 ? : <%= request.getParameter("measureDate") %> <br>
// **ModelAndView**
ModelAndView 값은 ? : ${measureDate}
💡 값을 전달 하기 위한 2가지 방법
- HttpServletRequest
request 객체는 jsp페이지에서 사용할 수 있는 기본 객체 중 하나 이기 때문에 선언하지 않아도, HttpServletRequest 의 값을 사용할 수 있다. (기본 객체는 request, response, pageContext, session, application, out, config, page, exception이 있다.)
- input 요소 name 값으로 전달
- ModelAndView
컨트롤러가 처리한 결과 데이터와 해당 데이터를 보여줄 뷰에 대한 정보를 담아서 전달한다. View 에서는 el 로 값을 불러올 수 있다.
- 메서드에서 ModelAndView 를 통해 ViewName과 addObject로 뷰와 데이터 전달!

package com.portfolio.www.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class LoginController {
@RequestMapping("/loginPage.do")
public String loginPage() {
return "login";
}
}![]() | ![]() |
|---|
💡mvc:resources
- src
- main
- webapp
- resources
- css
- style.css
- js
- script.js
- img
- logo.png
WebContent → “/”(루트 경로) Deploy 되면 루트 경로로 지정되어 있다.
만약 mvc:resources를 지우고 새로고침을 한다면…
<tip. 캐시 비우기 및 강력 새로고침>

프로젝트에서 시작을 하면 index.html → [index.do] 호출→ index.do의 영역은 servlet의 영역이고 uri가 url-pattern에 정의 된 기준으로 받아지게 된다.

실제로 서블릿 파일들은 servlet-mapping으로 정해져 있으니까 js, css 같은 정적(static)파일은 찾아 갈 수 있게 따로 “mvc:resources(static 파일을 찾아 가기 위한 태그)”로 지정했다.
<link rel="stylesheet" href="./resources/css/style.css">
// href 경로에서 처음에 "./" 의 경우 현재위치에서 찾아가게 된다.