첫번째 SpringFramewor 3.0 프로젝트.

Eclipse와 Java 환경설정은 끝났다고 가정하고

1.Eclipse를 열어 새 프로젝트에서 Dynamic Web Project를 선택하여
원하는 프로젝트명을 만든다.

나는 Spring3WithDynamicWeb이라고 지었다.

2. 첨부된 파일을 WebContent > WEB-INF > lib 폴더 안으로 복사한다
(build path에 넣는것이므로 별다른 설정 필요 없음)
commons-logging-1.0.4.jar
jstl-1.2.jar
org.springframework.asm-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.core-3.0.1.RELEASE-A.jar
org.springframework.expression-3.0.1.RELEASE-A.jar
org.springframework.web.servlet-3.0.1.RELEASE-A.jar
org.springframework.web-3.0.1.RELEASE-A.jar

3. Controller 만들기
원하는 Package에 Controller를 만든다.

com.nobang.spring3.controller/HelloWorldController.java

package com.nobang.spring3.controller;

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

@Controller
public class HelloWorldController {
    @RequestMapping("/hello")
    public ModelAndView helloWorld(){
        String message = "Hello World, Spring3";
        return new ModelAndView("hello", "message" , message);
    }
}

/hello라는 요청이 들어오면 처리한다는 내용으로
/hello/* 을 뜻한다. (ex. /hello/hello.html 등)

4. JSP 만들기
WEB-INF/jsp/hello.jsp

<html>
<head>
    <title>Spring 3.0 MVC Series: Hello World - ViralPatel.net</title>
</head>
<body>
    ${message}
</body>
</html>

${message}는 controller의 helloWorld()를 통해 return 받을 ModelAndView에 "message"로 정의되어 있다.

WebCont/index.jsp
최초로 응답할 화면을 정의 한다.
<html>
    <head>
        <title>Spring 3.0 MVC</title>
    </head>
    <body>
        <a href="hello.nobang">Hello</a>
    </body>
</html>

5. web.xml 을 설정한다
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>Spring3WithDynamicWeb</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>*.nobang</url-pattern>
  </servlet-mapping>
</web-app>

추후 <servlet이름>-servlet.xml 을 만들어야 한다.
servlet이름을 spring으로 지었으면 spring-servlet.xml 을 만든다.

브라우저를 통해 들어오는 요청이 url-pattern과 맞을 때, 해당 servlet이 동작한다.
위의경우 *.nobang으로 했으므로 /hello.nobang 으로 하면된다.
그래서  hello.jsp에서도 a href에 hello.nobang으로 되어 있다.
일반적으로는 .html을 한다.


6. <servlet-이름>-servlet.xml 을 만든다
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="com.nobang.spring3.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>

viewResolver설정에서
브라우저로 들어오는Url에 자동으로 값들을 추가하여 실제 파일과 매칭시킨다.
ex) /hello.nobang으로 들어오면
nobang이라는 pattern에 따라 spring servlet을 타게되고
/WEB-INF/jsp 아래에 있는 .jsp 파일중에서 hello.jsp를 찾는다.


728x90
BLOG main image
"그게 뭐 어쨌다는 거냐?" 늘 누가 나에게 나에대한 말을할 때면 이말을 기억해라. by nobang

카테고리

nobang이야기 (1933)
Life With Gopro (7)
Life With Mini (79)
Diary (971)
너 그거 아니(do you know) (162)
난 그래 (159)
Study (290)
속지말자 (10)
Project (34)
Poem (15)
Song (0)
Photo (113)
낙서장 (45)
일정 (0)
C.A.P.i (2)
PodCast (0)
nobang (27)
고한친구들 (4)
recieve (0)
History (0)
android_app (2)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

Total :
Today : Yesterday :