Spring 3/MVC HelloWorld

Spring 3 MVC HelloWorld 예제

Soul-Learner 2012. 6. 9. 15:58

Spring 3.0.1 Framework 테스트 환경 (Eclipse환경과 cafe24.com 웹호스팅 환경에서 테스트하여 성공함)

JDK 1.6

Tomcat 6.0

Eclipse Indigo ( with Spring Plugin )

Spring 3.0.1

JSTL.jar

Standard.jar


Eclipse에서 Spring 3기반으로 개발하여 cafe24.com호스팅 환경에 배포하는 경우 주의할 점

cafe24.com 호스팅 환경

- JDK 1.6

- Tomcat 6.0


로컬(Eclipse) 개발환경도 위와 동일하게 설정한 후에 개발하는 것이 기본


1. Eclipse에 Spring 3라이브러리 설정하고 개발을 마친 후에 Export 할 때 www.war 파일을 생성한다

2. 호스팅 환경의 Tomcat을 중지한다(shutdown.sh)

3. 기본으로 제공된 www 폴더를 www-bak 등으로 백업해둔다

4. 파일질라 등의 FTP 프로그램을 이용하여 개발한 war 파일을 www 폴더가 있던 곳으로 업로드한다

5. 호스팅 환경의 Tomcat을 다시 실행하면 업로드된 www.war 파일이 톰캣에 자동으로 배포된다

6. 호스팅 환경의 Tomcat을 다시 중지하고 업로드한 www.war 파일을 삭제한다

7. 호스팅 환경의 Tomcat을 다시 실행하고 웹브라우저로 접속하여 업로드한 프로그램을 테스트한다


Spring 3.0.1 Framework 에 포함되어 배포되는 라이브러리

org.springframework.aop-3.0.1.RELEASE-A.jar

org.springframework.asm-3.0.1.RELEASE-A.jar

org.springframework.aspects-3.0.1.RELEASE-A.jar

org.springframework.beans-3.0.1.RELEASE-A.jar

org.springframework.context-3.0.1.RELEASE-A.jar

org.springframework.context.support-3.0.1.RELEASE-A.jar

org.springframework.core-3.0.1.RELEASE-A.jar

org.springframework.expression-3.0.1.RELEASE-A.jar

org.springframework.instrument-3.0.1.RELEASE-A.jar

org.springframework.instrument.tomcat-3.0.1.RELEASE-A.jar

org.springframework.jdbc-3.0.1.RELEASE-A.jar

org.springframework.jms-3.0.1.RELEASE-A.jar

org.springframework.orm-3.0.1.RELEASE-A.jar

org.springframework.oxm-3.0.1.RELEASE-A.jar

org.springframework.spring-library-3.0.1.RELEASE-A.libd

org.springframework.test-3.0.1.RELEASE-A.jar

org.springframework.transaction-3.0.1.RELEASE-A.jar

org.springframework.web-3.0.1.RELEASE-A.jar

org.springframework.web.portlet-3.0.1.RELEASE-A.jar

org.springframework.web.servlet-3.0.1.RELEASE-A.jar

org.springframework.web.struts-3.0.1.RELEASE-A.jar


Spring 3.0.1 Framework 외에 필요한 라이브러리

commons-io-2.3.jar

jstl.jar

standard.jar



WEB-INF/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>Spring3MVC</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>spring</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>

참고: 위의 url-pattern에 설정한 *.do는 반드시 do로 할 필요는 없지만 html 으로  한다면 Apache와 Tomcat이 연동되는 시스템에서는 html 요청이 서버로 전달되면 Tomcat보다 앞서 Apache가 html요청을 받아서 응답으로 html파일을 전송하려고 하므로 404오류가 발생하면서 요청이 Spring Framework에는 전달되지 않으므로 html 이 아닌 do 등으로 설정하는 것이 바람직하다. 예를 들어, cafe24등의 호스팅업체에서 이 코드를 테스트하는 경우라면 이점을 주의해야 한다.

WebContent/WEB-INF/spring-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    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">
 
    <context:component-scan
        base-package="spring3.test.controller" />
 
    <bean id="viewResolver"
        class="org.springframework.web.servlet.view.UrlBasedViewResolver">
        <property name="viewClass"
            value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
    </bean>
</beans>


WebContent/index.jsp

<%@ 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> <title>Spring 3.0 MVC HelloWorld Example</title> </head> <body> <a href="hello.do">Say Hello</a> </body> </html>


HelloController.java

package spring3.test.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
 
@Controller
public class HelloController {
 
    @RequestMapping("/hello")
    public ModelAndView helloWorld() {
 
        String message = "Hello World, Spring 3.0!";
        return new ModelAndView("hello", "message", message);
    }
}


WebContent/WEB-INF/jsp/hello.jsp

<%@ 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>
    <title>Spring 3.0 MVC HelloWorld Example</title>
</head>
<body>
    ${message} 
</body>
</html>