출처: https://bumcrush.tistory.com/182 [맑음때때로 여름]

1단계 – client의 요청을 받을 DispatcherServlet 을 web.xml 파일에 설정

 

ContextLoaderListener

- 디스패쳐서블릿의 부모(모든서블릿에 공통적용) / 디스패쳐서블릿 여러개 설정시 필수로 리스너 설정

 

DispatcherServlet / 서블릿매핑

- url패턴의 / 로 해줌. 보통 학원 예제에서는 .do로 많이 나온 부분

/ <- 로 요청되는 모든 client 의 요청을 DispatcherServlet이 처리하도록 요청

/ 이때 servlet-context.xml 이라는 이름의 Spring 설정 파일을 사용하도록 설정

 

2단계 – 컨트롤러 구현 및 설정 추가 하기 

 

컨트롤러 구현

@Controller – Spring MVC의 controller 를 구현한 클래스로 지정

@RequestMapping –/hello 라는 url값으로의 요청을 처리할 메소드 지정

 

설정파일에 등록 / 생략가능(여기선생략함)

servlet-context.xml 

 

package com.aia.firstspring.controller;

import java.util.Calendar;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;


//컨트롤 클래스라고 알려주는 어노테이션 > 이걸 해주어야 handler mapping에 등록
@Controller 
public class HelloController {
	
	// 이 메서드는 프론트컨트롤러 쪽으로 Viewname을 반환해야 한다.
	// 반환 타입은 ModelAndView를 이용해서 반환하자.
	@RequestMapping("/hello")
	public ModelAndView hello() {
		ModelAndView mav = new ModelAndView();
		
		// prefix suffix를 제외한 이름 /WEB-INF/views/member/hello.jsp -> member/hello
 		mav.setViewName("member/hello");
 		mav.addObject("greeting", greeting());
		
		return mav;
	}

	private String greeting() {
		String result = "안녕!";
		
		int nowTime = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
		if(nowTime>=6 && nowTime <= 10) {
			result="좋은 아침";
		} else if(nowTime >= 12 && nowTime<=15) {
			result="맛점";
		} else if(nowTime >=18 && nowTime<=22) {
			result="굿밤";
		}
		
		return result;
	}

}

 

 

3단계 – 설정파일에 viewResolver 설정 추가하기

이부분이 viewResolver

Context 설정 추가

/ namespace에서 context 추가 필수

/ 빈 설정

/ 기본패키지를 컨트롤러로 연결시켜줌

 

 

3.5단계 -  필요하다면 핸들러매핑(의존성주입)


4단계 – JSP를 이용한 View 영역의 코드 작성 


5단계 – 실행

 

우리가 보던 인터넷 사이트처럼 주소가 깔끔해짐 .jsp 이런거 없어졌다!

 

 

 

 

 

 

+ Recent posts