public static void main(HttpServletRequest request){
int s_year = Integer.parseInt(request.getParameter("year"));
int s_month = Integer.parseInt(request.getParameter("month"));
int s_date = Integer.parseInt(request.getParameter("date"));
}이렇게 하면 HttpServletRequest가 url에 있는 파라미터들을 인식해서 값을 가져올 수 있는데 스프링은 이렇게 받지 않아도 알아서 인식과 형변환도 할 수 있다.public static void main(int year, int month, int date){
int s_year = year;
int s_month = month;
int s_date = date;
}원하는 데이터타입으로 적어놓으면 알아서 형변환까지 된다.
public static void main(int year, int month, int date, Model model){}model.addAttribute("year", year);${}로 해서 보낸 변수명으로 값을 받으면 된다.<h1>${year}년 ${month}월 ${date}일 ${yoil}요일입니다. </h1>@Controller
public class Ex05_1_YoilTellerMVC {
@RequestMapping("/getYoil5") //localhost:8080/app/getYoil5?year=2023&month=10&date=24
public static String main(int year, int month, int date, Model model) throws Exception {
// 1. 입력
/** 위 main에서 year, month, date 받기. (변수명과 파라미터명 같게 설정해야 함. )
* 메인에서 바로 매게변수로 받기 때문에 입력쪽에서 따로 해야할 일이 없다.
형변환도 자동으로 됨.
* */
// 2. 연산
/** 자바에서 기본으로 제공하는 Calendar 클래스. 추상클래스라서 new를 이용한 인스턴스화 불가
* getInstance() 는 인스턴스를 만들어줌 (new 랑 비슷한애)
* new 로 만드는 것과 차이점: 최초에 할당된 메모리를 재사용 하느냐(getInstance) 못하느냐(new)의 차이
* */
Calendar cal = Calendar.getInstance(); // 추상클래스라서 new 못쓰고 getInstance() 메소드 이용해서 사용
cal.set(year, month-1, date);
int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK); // 1~7 사이의 숫자로 나옴
char yoil = " 일월화수목금토".charAt(dayOfWeek); // 주 중에 몇번째 일 {"","일","월","화","수","목","금","토"}
// 3. 모델(Model)에 담기
//왼쪽 "year"은 jsp파일에 보낼 변수명, 오른쪽 year은 현재 java파일에서 사용하고 있는 변수
model.addAttribute("year", year);
model.addAttribute("month", month);
model.addAttribute("date", date);
model.addAttribute("yoil", yoil);
// 4. 출력(view)
return "Ex05_1_YoilTeller";
// webapp > WEB-INF > views 폴더 안에 있는 jsp파일.
// .jsp라고 적지 않아도 된다.
}
}
출력부분에 .jsp라고 적지 않아도 되는 이유는

이 파일에

위와같이 입력되어있어서 생략이 가능한 것이다.
VO 만들기
public class Ex07_2_MyDate {
private int year;
private int month;
private int day;
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
public int getMonth() {
return month;
}
public void setMonth(int month) {
this.month = month;
}
public int getDay() {
return day;
}
public void setDay(int day) {
this.day = day;
}
@Override
public String toString() {
return "Ex07_2_MyDate [year=" + year + ", month=" + month + ", day=" + day + "]";
}
}
main에 VO 매개변수로 받기.
public String main(Ex07_2_MyDate mydate, Model model){
jsp에서 VO 사용하기.
java : model.addAttribute("mydate", mydate);
jsp : <h1>${mydate.getYear()}년 ${mydate.getMonth()}월 ${mydate.getDate()}일입니다. </h1>