메뉴 건너뛰기

조회 수 2108 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

스프링 프레임워크 2.5.2 설치및 HelloWorld 출력하기

 

http://cafe.naver.com/javakoreait/22

 

Eclipse Version : 3.4.0

 

Tomcat Version : 5.5

 

Spring Version : 2.5.2 http://www.springsource.com/download/community?project=Spring%20Framework

file은 spring-framework-2.5.2-with-dependencies.zip를 다운로드한다.

 

Jstl Version : 1.1 http://jakarta.apache.org/site/downloads/downloads_taglibs-standard.cgi

file은 jakarta-taglibs-standard-1.1.2.zip를 다운로드한다.

 

이클립스 플러그인 설치

 

SpringIDE 플러그인 - http://springide.org/updatesite

설치시 주의할점은 이클립스 업데이트를 통해 플러그인 설치시 feature선택할때 springide내 Dependancies항목은

제외한다. Mylyn이나 AJDT등은 당장 사용하진 않더라도 나중을 위해 함께 선택해 설치한다.

 

p.s 플러그인은 솔직히 잘모르겠습니다. 그냥 나와있는데로 설치 ^.^.

 

 

이제 프로젝트를 하나 생성한다.

 

1. Dynamic Web Project를 하나 생성해서 HelloWorld라는 프로젝트를 만든다

 

2. /WEB-INF/lib 폴더 안에

   spring-framework-2.5.2-with-dependencies.zip을 압축을 풀어서 dist폴더안에 있는 spring.jar

   modules폴더안에 있는 spring-webmvc.jar, 마지막으로 /lib/jakarta-commons/commons-logging.jar 인포트한다.

   그리고 jakarta-taglibs-standard-1.1.2.zip을 압축을 풀어서 jstl.jar, standard.jar 를 인포트한다.

 

총 5개의 파일이 인포트 되었으면 개발환결 설정은 완료된 것이다.

 

HelloWorld 애플리케이션을 Spring기반에 만들어보기

 

간단히 Spring의 구조 설명

 

① 클라이언트의 요청에 대한 최초 진입 지점은 DispatcherServlet이 담당하게 된다.
대부분의 MVC를 지원하는 프레임워크가 메인 Servlet을 가지는 것처럼 Spring MVC
또한 메인 Servlet이 최초 진입지점으로 다음의 작업을 처리하게 된다.

② DispatcherServlet은 Spring Bean Definition에 설정되어 있는 Handler Mapping 정보를 참조하여 해당 요청을 처리하기 위한 Controller를 찾는다.

③ DispatcherServlet은 선택된 Controller를 호출하여 클라이언트가 요청한 작업을 처리.

④ Controller는 Business Layer와의 통신을 통하여 원하는 작업을 처리한 다음 요청에 대한 성공유무에 따라 ModelAndView 인스턴스를 반환한다. ModelAndView 클래스에는 UI Layer에서 사용할 Model데이터와 UI Layer로 사용할 View에 대한 정보가 포함되어있다.

⑤ DispatcherServlet은 ModelAndView의 View의 이름이 논리적인 View 정보이면 ViewResolver를 참조하여 이 논리적인 View 정보를 실질적으로 처리해야할 View를 생성하게 된다.

⑥ DispatcherServlet은 ViewResolver를 통하여 전달된 View에게 ModelAndView를 전달하여 마지막으로 클라이언트에게 원하는 UI를 제공할 수 있도록 한다. 마지막으로 클라이언트에게 UI를 제공할 책임은 View 클래스가 담당하게 된다.

 

1. web.xml 파일 수정

 

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="HelloWorld" 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">
 <display-name>HelloWorld</display-name>
 
 <servlet>
  <servlet-name>helloworld</servlet-name>
  < servlet-class>
  org.springframework.web.servlet.DispatcherServlet 
  </servlet-class>
 </servlet>
 
 <servlet-mapping>
  < servlet-name>helloworld</servlet-name>
  < url-pattern>*.htm</url-pattern>
 </servlet-mapping> 
  
 <welcome-file-list>
  < welcome-file>index.jsp</welcome-file>
 </welcome-file-list>
</web-app>

 

 

우선 중요한 부분은 Spring 프레임워크내의 DispatcherServlet을 매핑하게 되는데 이부분은 Spring에서 제어행위를

처리하는 서블릿이다. 그리고 이에 대한 설정파일은 서블릿명-servlet.xml이 된다.

 

2. 규칙대로 /WEB-INF/helloworld-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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
 <bean id="springController" class="web.SpringController" />
 <bean id="urlMapping"  
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
  <property name="mappings">
   <props>
    <prop key="/hello.htm">springController</prop> 
   </props>
  < /property>
 </bean>
 <bean id="viewResolver"  
  class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="viewClass">
   < value>org.springframework.web.servlet.view.JstlView</value>
  < /property>
  <property name="prefix">
   < value>/JSP/</value>
  </property>
  <property name="suffix">
   <value>.jsp</value>
  </property>
 </bean>
</beans>

 

총 3개의 Bean을 정의하고 있는데 첫번째는 처리제어를 위한 컨트롤러를 정의하고 있는데 springController라는 이름으로 web.SpringController라는 클래스를 매핑해주고 있습니다.

그리고 두번째는 hello.htm으로 들어오는 요청에 대해 springController로 넘기게 되어있고

세번째는 View의 역할을 할 JSP에 대한 설정이다

 

3. 다음에는 SpringController를 만듭니다
web패키지 아래에 SpringController를 만들되 org.springframework.web.servlet.mvc.Controller를 상속받아 구현합니다.

 

 

package web;

import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

public class SpringController implements Controller {
 protected final Log logger = LogFactory.getLog(getClass());
 
 public ModelAndView handleRequest(HttpServletRequest arg0,
   HttpServletResponse arg1) throws Exception {
        String now = (new Date()).toString(); 
        logger.info("returning hello view with " + now);      
        return new ModelAndView("hello", "now", now);
 }
}

 

 

소스내용을 보면 단순하게 요청에 대해 현재 시간을 담은 변수를 now라는 이름으로 hello라는 페이지로 전달하게 되어있다

이 hello는 helloworld-servlet.xml내에 viewResolver 빈에 정의한 설정에 따라 /JSP/hello.jsp가 될것이다.

 

4. 이제 /JSP/hello.jsp를 작성한다.

 

 

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!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 World :: Spring Application</title>
</head>
<body>
<h1>Hello World! - Spring Application</h1>
<p>Greetings, it is now<c:out value="${now}" /></p>
</body>
</html>

 

 

컨트롤러를 통해 ModelAndView에 담겨진 now객체를 받아 뿌려주게 되어있다

여기서 문제점 하나! 태그라이브러리 선언 부분이 jstl라이브러리 버젼에 따라 달라진다.

jstl 라이브러리 버전 1.0은 uri="http://java.sun.com/jstl/core"
1.1 버전은 uri="http://java.sun.com/jsp/jstl/core" 로 선언.

현재의 경우 1.1 버전이기때문에  uri="http://java.sun.com/jsp/jstl/core" 로 선언하였습니다.

 

5. 이제 Tomcat을 기동하고 http://127.0.0.1/HelloWorld/hello.htm 으로 접근하면.. 출력이 됩니다.

 


List of Articles
번호 제목 날짜 조회 수
23 play framework + 이클립스 초간단 개발환경 구축법 2016.12.07 758
22 루씬 기본적인 검색 엔진 - 샘플 예제 file 2016.12.07 2666
21 [패스트캣]1. 시작하기 - 설치 file 2016.12.07 2468
20 검색엔진 (2) - 라이브러리: Lucene, Solr, Elasticsearch 2016.12.07 2229
19 검색엔진 (1) - 검색엔진의 이해 2016.12.07 2033
18 Nutch 0.9 를 이용하여 한글 검색하기 2016.12.07 2195
17 solr적용시 사용법 2016.12.07 2233
16 Spring Framework 개요 2016.12.07 2001
15 Spring AOP(Aspect Oriented Programming) 에서의 용어 file 2016.12.07 2012
14 스프링을 구성하는 코어 모듈 - core module file 2016.12.07 2026
» 스프링 2.5.2 설치및 HelloWorld 출력하기 file 2016.12.06 2108
12 Spring 개발을 위한 Eclipse 개발 환경 구성하기 file 2016.12.06 2056
11 Spring 개발을 위한 Eclipse 개발 환경 구성하기 file 2016.12.06 2227
10 Spring 개발을 위한 Eclipse 개발 환경 구성하기 file 2016.12.06 2213
9 스프링(spring) 메일 발송 :: mailSender 2016.08.18 5997
8 Spring Security Basic 인증 비활성화 설정 file 2016.08.18 2167
7 스프링 AOP의 주요 용어 file 2016.08.18 2168
6 스프링 Bean 객체의 초기화 및 소멸시 호출 메서드 file 2016.08.18 2084
5 스프링 XML 설정에서 자바 설정 Import하기 file 2016.08.18 2026
4 자바 스프링, spring AOP 구현 (xml 방식) file 2016.08.18 2448
Board Pagination Prev 1 2 Next
/ 2

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved