Spring MVC
1. 허접하지만 스프링의 MVC2는 못할망정 MVC 를 해보기 위한 프로젝트 하나를 생성합니다.
Eclipse 의 FILE > new > other > WEB > Dynamic Web Project
를 선택합니다.
그럼 아래와 같은 창이 뜨는데.... projec name 에 본인이 쓰고 싶은 이름을 쓰세요.
"난 보통 날짜를 즐겨 씁니다 " ^^;
Target Runtime 에 tomcat 이 잘 잡혔는지 확인합니다
2, 흐름은 ...
1. 클라이언트 ------------> DispacherServlet 에게 URL 처리 요청 을 합니다
2. DispacherServlet ----->HandlerMapping 에게 URL과 매핑되는 Controller 검색을 합니다
3. DispacherServlet ----->Controller 에게 처리를 요청합니다
4. Controller ----------------->DispacherServlet 에게 ModelAndView 를 리턴해줍니다
5. DispacherServlet ----->ViewResolver 에게 컨트롤러의 실행결과를 보여줄 VIEW를 검색합니다
6. DispacherServlet ----->VIEW 에게 응답을 출력합니다.
적고 보니 어렵죠?
3. 내가 만들어야 할 파일은 즉 4개 뿐입니다.
VIEW 인 HELLO.JSP,
model Web.XML , dispatcher-servelt.xml
controller HelloController.java
이 4개의 파일을 만들거예요.
1. WEB-INF/web.xml 을 만듭니다 (서블릿 매핑정보를 추가!)
2. [서블릿이름]-servlet.xml 파일을 만듬
3.
package joke00.controller;
4.
1. 허접하지만 스프링의 MVC2는 못할망정 MVC 를 해보기 위한 프로젝트 하나를 생성합니다.
Eclipse 의 FILE > new > other > WEB > Dynamic Web Project
를 선택합니다.
그럼 아래와 같은 창이 뜨는데.... projec name 에 본인이 쓰고 싶은 이름을 쓰세요.
"난 보통 날짜를 즐겨 씁니다 " ^^;
Target Runtime 에 tomcat 이 잘 잡혔는지 확인합니다
2, 흐름은 ...
1. 클라이언트 ------------> DispacherServlet 에게 URL 처리 요청 을 합니다
2. DispacherServlet ----->HandlerMapping 에게 URL과 매핑되는 Controller 검색을 합니다
3. DispacherServlet ----->Controller 에게 처리를 요청합니다
4. Controller ----------------->DispacherServlet 에게 ModelAndView 를 리턴해줍니다
5. DispacherServlet ----->ViewResolver 에게 컨트롤러의 실행결과를 보여줄 VIEW를 검색합니다
6. DispacherServlet ----->VIEW 에게 응답을 출력합니다.
적고 보니 어렵죠?
3. 내가 만들어야 할 파일은 즉 4개 뿐입니다.
VIEW 인 HELLO.JSP,
model Web.XML , dispatcher-servelt.xml
controller HelloController.java
이 4개의 파일을 만들거예요.
1. WEB-INF/web.xml 을 만듭니다 (서블릿 매핑정보를 추가!)
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
</web-app>
*.htm 으로 들어오는 클라이언트의 요청을 DispatcherServlet 으로 처리하도록 설정<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
</web-app>
2. [서블릿이름]-servlet.xml 파일을 만듬
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
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-2.0.xsd">
<!-- BeanNameUrlHandlerMapping: 클라이언트의 요청 url과 동일한 이름을 갖는 빈을 컨트롤러로 사용하도록 매핑 -->
<bean id="beanNameUrlMapping"
class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
<bean id="HandlerMapping"
class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
<bean name="/hello.htm"
class="joke00.controller.HelloController" />
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
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-2.0.xsd">
<!-- BeanNameUrlHandlerMapping: 클라이언트의 요청 url과 동일한 이름을 갖는 빈을 컨트롤러로 사용하도록 매핑 -->
<bean id="beanNameUrlMapping"
class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
<bean id="HandlerMapping"
class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
<bean name="/hello.htm"
class="joke00.controller.HelloController" />
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
3.
package joke00.controller;
import java.util.Calendar;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
import org.springframework.web.servlet.mvc.AbstractController;
public class HelloController extends AbstractController{
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception
{
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 "안녕하세요";
}
}
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception
{
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 "안녕하세요";
}
}
4.
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Hello MVC 패턴</title>
</head>
<body>
인사말 : <strong>${greeting}</strong>
pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Hello MVC 패턴</title>
</head>
<body>
인사말 : <strong>${greeting}</strong>
<%-- 이런식으로도 가능 String greetingValue = (String)request.getAttribute("greeting"); --%>
</body>
</html>
</html>
'FrameWork > Spring' 카테고리의 다른 글
테스트프레임워크 (0) | 2009.07.10 |
---|---|
[Spring] Spring 프레임워크의 POJO(Bean)의 생명주기 (0) | 2009.07.07 |
[Spring] Spring framework Library 다운 (0) | 2009.07.07 |