'Spring MVC'에 해당되는 글 2건

  1. 2008.04.02 [Spring] 초간단 Spring MVC 구현하기
  2. 2008.04.02 [Spring] Spring MVC에 대한 기초중의 기초

Eclipse를 사용하여 Spring MVC 을 구현하는 것에 대해서 알아보자.

일단 가장 먼저 Eclipse에서 Dynamic Web Project를 맹글자.
(이 부분은 다 알고 있으리라 생각하고 패쑤~~)

그 다음 맹글어진 프로젝트에서 WebContents 밑에 있는 web.xml을 열자.
web.xml 파일의 </web-app> 태그 위에 아래의 내용을 복사하여 붙이자.
-------------------------------------------------------------------
<servlet>
  <servlet-name>action</servlet-name>
  <servlet-class>
   org.springframework.web.servlet.DispatcherServlet
  </servlet-class>
  <init-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>
    /WEB-INF/action-servlet001.xml
   </param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
 </servlet>

 <servlet-mapping>
  <servlet-name>action</servlet-name>
  <url-pattern>*.do</url-pattern>
 </servlet-mapping>
------------------------------------------------------------------------
잘 붙였으면, 간단하게 내용을 살펴보자.
DispatcherServlet은 말 그대로 Servlet 클래스이기 때문에 web.xml에 추가한 것이고,
앞으로 모든이름.do를 호출하면 이와 관련된 클래스가 호출될 것이다.
중간에 action-servlet001.xml이라는게 아직 없다.
없으니 만들자...

WEB-INF 디렉토리 하단에 action-servlet001.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-2.5.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context-2.5.xsd">

 <bean id="handlerMapping"
  class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
 
 <bean name="/test.do"   class="test.TestController">
  </bean>

</beans>
-----------------------------------------------------------------------------------
내용은 모른다고 치더라도 test.TestController 라는 클래스가 필요하다고 느낄것이다.
웹에서 test.do를 수행하면 해당 컨트롤러 클래스가 호출될 것이다.

test.TestController 클래스는 다음과 같다.
----------------------------------------------------------------------------------
package test;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

public class TestController implements Controller {
 public ModelAndView handleRequest(HttpServletRequest request,
   HttpServletResponse response) throws Exception
{
  System.out.println("TestController ==> handleRequest");
  return new ModelAndView("redirect:/index.html");
 }
}
-------------------------------------------------------------------------
이 소스에서는 다른 일은 안하고 "TestController ==> handleRequest"를 프린트하고
index.html로 forwarding 하도록만 되어있다.
그럼 마지막으로 이클립스의 WebContents 폴더 하단에 index.html을 하나 생성하자.
html의 body에는 다음과 같이 한번 넣어볼까?
-------------------------------------------------------------------------
<body>
Thank you for follow this tutorial. hahaha.
</body>
-------------------------------------------------------------------------
그럼 이제 코딩해야 할일은 다 끝났다.

하지만 두가지 일이 남아있다.
만든 클래스가 이클립스의 build 폴더에 생성이 되어있지 않으니,
eclipse 메뉴에서 Project --> Build All을 클릭하여 클래스를 빌드해야 한다.
(뭐~ 이게 자동으로 될 수도 있다.)

또 한가지 남은 것은
WEB-INF 하단의 lib 폴더에 Spring framework과 관련된 모든 jar를 집어 넣어 줘야 한다.
(이 방법도 여러분만의 방법이 있을 테니 자세한건 패스하고...
가장 간단한 것은 익스플로러에서 모든 jar를 선택하고 eclipse에 끌어 넣어주면 된다.)

정상적으로 작업이 되었다면
tomcat을 띄워서 해당WebApp/test.do 를 실행해보자.
Tomcat의 console에
"TestController ==> handleRequest"
가 출력되고,
화면에
Thank you for follow this tutorial. hahaha.
가 나타났다면,
초 간단 Spring MVC Framework 실습이 완료된 것이다.

이제 천천히 어려운 부분을 공부해 보자.

Posted by tuning-java

일단 본론에 들어가기 전에 MVC에 대해서는 다 알꺼라 생각한다. 몇줄만 적어보면

MVC는 Model, View, Controller의 약자로 예전의 UI, DB처리, 비즈니스 로직을 하나의 클래스나 파일에서 처리하던 것을 분리하는 것을 말한다.

간단하게 몇줄만 적었다. ㅋㅋ
그럼 Spring MVC 프레임웍에서 어떻게 사용자 요청이 처리되는지 알아보자.

1. 사용자의 요청이 오면 DispatcherServlet이라는 것이 받는다. 얘를 앞단 중계자라는 의미로 Front Controller라고 부른다.
2. 받은 것을 뭔가 매핑이 되어 있는 곳에서 적절한걸 찾아서 다른 곳으로 전달한다. 이 것을 핸들러라고 한다.
3. 전달 받은 데이터를 기반으로 DB에서 데이터를 얻어온 다음에 ModelAndView라는 객체에 저장해서 넘긴다고 한다.
4. 그 다음 DispatcherServlet이라는 놈에서 화면에 보여줄 View 와 Model 정보를 View Resolver라는 것을 통해서 View를 결정한다.
5. 해당 View에 데이터를 넘기고, View에서는 화면을 처리한 결과를 DispatcherServlet으로 넘긴다.
6. 마지막으로 화면으로 보내준다.

이 내용을 그림으로 표현한 것이 바로 아래 링크에 있다.
http://static.springframework.org/spring/docs/2.0.x/reference/mvc.html
마우스 스크롤이 어떻게 되어 있느냐에 따라서 다르겠지만, 한 3번 정도 스크롤하면 볼 수 있다. ^^;

자세한 구현 방법은 다음 글에 올리도록 하겠다.

Posted by tuning-java