* 스프링 MVC를 이용하여 웹 어플리케이션을 개발하는 과정
1. 클라이언트의 요청을 받을 DispatcherServlet을 web.xml 파일에 설정한다.
2. 클라이언트의 요청을 처리할 컨트롤러를 작성한다.
3. ViewResolver를 설정한다. ViewResolver는 컨트롤러가 전달한 값을 이용해서 응답 화면을 생성할 뷰를 결정한다.
4. JSP나 Velocity 등을 이용하여 뷰 영역의 코드를 작성한다.
5. 실행
단계1. DispatcherServlet 설정
web.xml
----------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>tutorialSpring</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!-- end -->
</web-app>
*.do로 들어오는 클라이언트의 요청을 DispatcherServlet이 처리하도록 설정한다.
DispatcherServlet은 WEB-INF/ 디렉토리에 위치한 [서블릿이름]-servlet.xml 파일을 스프링 설정 파일로 사용한다.
**스프링 구성요소인 Controller(.java). ViewResolver(-.xml), View(.jsp)
단계2. 컨트롤러 구현 및 설정 추가
/tutorialSpring/src/springapp/web/HelloController.java
-----------------------------------------------------------------------------------------------------------------
package springapp.web;
import java.util.Calendar;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HelloController {
@RequestMapping("/hello.do")
public ModelAndView hello() {
ModelAndView mav = new ModelAndView();
mav.setViewName("hello");
mav.addObject("greeting", getGreeting());
return mav;
}
private String getGreeting() {
int hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
if (hour >= 6 && hour <= 10) {
return "좋은 아침입니다.";
} else if (hour >= 12 && hour <= 15) {
return "점심 식사는 하셨나요?";
} else if (hour >= 18 && hour <= 22) {
return "좋은 밤 되세요";
}
return "안녕하세요";
}
}
단계3. 설정파일에 ViewResolver 설정 추가
dispatcher-servlet.xml
----------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<bean id="helloController" class="springapp.web.HelloController" />
<!-- 뷰를 설정하는 방법(jsp의 위치들을 설정해주는 것) -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/" />
<property name="suffix" value=".jsp" />
</bean>
<!-- end -->
</beans>
단계4. 뷰코드 구현
hello.jsp
-----------------------------------------------------------------------------------------------------------------
<%@ page language="java" contentType="text/html; charset=EUC-KR"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>인사</title>
</head>
<body>
인사말: <strong>${greeting}</strong>
</body>
</html>
단계5. 실행