>  기사  >  Java  >  SpringMVC 학습 시리즈(2) 클래식 HelloWorld 구현

SpringMVC 학습 시리즈(2) 클래식 HelloWorld 구현

黄舟
黄舟원래의
2017-03-03 10:36:321438검색

이전 글에서는 Spring MVC에 대한 지식을 간략하게 소개했습니다. 다음으로는 특정 프로젝트에 Spring MVC를 적용하는 방법을 알아보겠습니다.

먼저 간단한 Hello World 프로젝트부터 시작해 보겠습니다.

내 컴퓨터의 개발 환경은 다음과 같습니다.

UbuntuSpringMVC 학습 시리즈(SpringMVC 학습 시리즈(2) 클래식 HelloWorld 구현) 클래식 HelloWorld 구현SpringMVC 학습 시리즈(2) 클래식 HelloWorld 구현.04( 다름 운영 체제는 이 일련의 프로젝트에 영향을 미치지 않습니다);

개발 도구: Eclipse For JavaEE

MySql5.5.35;

실행 환경: TomCat V7.0

JDK: JDK SpringMVC 학습 시리즈(SpringMVC 학습 시리즈(2) 클래식 HelloWorld 구현) 클래식 HelloWorld 구현.7.0_45

프로젝트 엔지니어링 대상: 동적 웹 프로젝트

SpringMVC 학습 시리즈(SpringMVC 학습 시리즈(2) 클래식 HelloWorld 구현) 클래식 HelloWorld 구현. 프로젝트가 의존하는 jar 패키지:

SpringMVC 학습 시리즈(SpringMVC 학습 시리즈(2) 클래식 HelloWorld 구현) 클래식 HelloWorld 구현.

로깅: commons-logging-SpringMVC 학습 시리즈(SpringMVC 학습 시리즈(2) 클래식 HelloWorld 구현) 클래식 HelloWorld 구현.SpringMVC 학습 시리즈(SpringMVC 학습 시리즈(2) 클래식 HelloWorld 구현) 클래식 HelloWorld 구현.3.jar;

JSTL 지원: jakarta-taglibs-standard-SpringMVC 학습 시리즈(SpringMVC 학습 시리즈(2) 클래식 HelloWorld 구현) 클래식 HelloWorld 구현.SpringMVC 학습 시리즈(SpringMVC 학습 시리즈(2) 클래식 HelloWorld 구현) 클래식 HelloWorld 구현.SpringMVC 학습 시리즈(2) 클래식 HelloWorld 구현의 jstl.jar 및 Standard.jar

SpringMVC 학습 시리즈(2) 클래식 HelloWorld 구현. Spring jar 패키지:

RELEASE/libs의 spring-framework-3.SpringMVC 학습 시리즈(2) 클래식 HelloWorld 구현.5.jar 패키지(편의를 위해 여기에 모든 것을 복사했습니다); >

위의 모든 jar 패키지를 프로젝트의 WebContent/WEB-INF/lib 디렉터리에 복사합니다.

SpringMVC 학습 시리즈(2) 클래식 HelloWorld 구현. /WEB-INF에 web.xml 파일을 추가합니다. 파일 내용은 다음과 같습니다.

<?xml  version="SpringMVC 학습 시리즈(SpringMVC 학습 시리즈(2) 클래식 HelloWorld 구현) 클래식 HelloWorld 구현.0" encoding="UTF-8"?><web-app helloworld>
  <display-name>SpringMVCLesson</display-name> 
        
    <servlet>
        <servlet-name>SpringMVCLesson</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springservlet-config.xml</param-value>
        </init-param>
        <load-on-startup>SpringMVC 학습 시리즈(SpringMVC 학습 시리즈(2) 클래식 HelloWorld 구현) 클래식 HelloWorld 구현</load-on-startup><!-- load-on-startup必须放在最后 -->
    </servlet>
    <!-- Spring MVC配置文件结束 -->
    
    <servlet-mapping>
        <servlet-name>SpringMVCLesson</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    </web-app>

먼저 , DispatcherServlet 구성 시리즈 (SpringMVC 학습 시리즈(SpringMVC 학습 시리즈(2) 클래식 HelloWorld 구현) 클래식 HelloWorld 구현)의 Spring MVC 응답 흐름도에 따르면 DispatcherServlet이 주로 요청을 가로채고 해당 Controller 및 Action을 호출하고 지정된 뷰를 구문 분석 및 렌더링하고 응답을 반환하는 것을 볼 수 있습니다.


여기서 classpath:springservlet-config.xml은 특정 구성 파일을 springservlet-config.xml로 지정합니다.

load-on-startup>SpringMVC 학습 시리즈(SpringMVC 학습 시리즈(2) 클래식 HelloWorld 구현) 클래식 HelloWorld 구현load-on-startup>是启动顺序,让这个Servlet随Servletp容器一起启动,必须放在servlet> 配置的最后。

servlet-mapping中的servlet-name>指定配置的是哪个servleturl-pattern>则指定拦截哪些请求到该servlet,这里配置的是拦截全部请求

 

三、springservlet-config.xml文件配置:

在项目中新建一个resources的Source Folder文件夹,并添加springservlet-config.xml文件。

<?xml  version="SpringMVC 학습 시리즈(SpringMVC 학습 시리즈(2) 클래식 HelloWorld 구현) 클래식 HelloWorld 구현.0" encoding="UTF-8"?><beans helloworld>
    
    <!-- 默认的注解映射的支持 -->  
    <annotation-driven></annotation-driven>
      
    <!-- 如果当前请求为“/”时,则转发到“/helloworld/index” -->
    <view-controller></view-controller> 
    <!-- 静态资源映射 -->
    <resources></resources>
    <resources></resources>
    <resources></resources>
    <resources></resources>
    <resources></resources>
    <!-- 当上面要访问的静态资源不包括在上面的配置中时,则根据此配置来访问 -->
    <default-servlet-handler></default-servlet-handler>

    <!-- 开启controller注解支持 -->
    <!-- use-default-filters="false" 只扫描指定的注解 -->
    <component-scan>
        <include-filter></include-filter>
    </component-scan>
      
    <!-- 视图解析器 -->
    <bean>
       <property></property>
       <property></property>        
       <property></property>
       <property></property>
    </bean>
    </beans>


mvc:annotation-driven/> 开启注解映射支持,它是为了简化配置的缩写形式,它相当于以下SpringMVC 학습 시리즈(2) 클래식 HelloWorld 구현个配置:

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>

由于我们在web.xml文件里面配置的是拦截所有的请求到该servlet,所以我们在这里要对静态资源文件映射作一下配置,否则请求这些资源文件会返回404

<!-- 静态资源映射 --><resources></resources><resources></resources><resources></resources><resources></resources><resources></resources><!-- 当上面要访问的静态资源不包括在上面的配置中时,则根据此配置来访问 --><default-servlet-handler></default-servlet-handler>


开启Controller注解支持,并配置只扫描指定包下面的Controller:

<component-scan>
    <include-filter></include-filter>
    </component-scan>

配置视图解析器,并指定视图所在的文件夹:

<bean>
   <property></property>
   <property></property>        
   <property></property>
   <property></property></bean>

添加HelloWorldController,在项目中新建一个web的Source Folder文件夹,并在文件夹下面添加com.demo.web.controllers包,在包中添加一个HelloWorldController类,类中内容如下:


package com.demo.web.controllers;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping(value = "/helloworld")public class HelloWorldController {

    @RequestMapping(value="/index", method = {RequestMethod.GET})    public ModelAndView index(){
        
        ModelAndView modelAndView = new ModelAndView();  
        modelAndView.addObject("message", "Hello World!");  
        modelAndView.setViewName("index");  
        return modelAndView;
    }
    
}


其中@Controller 注解把该class指定为controller,controller 上的@RequestMapping 注解的 value值指定该controller所映射的请求。

方法上的@RequestMapping 注解指定该方法为一个action,value 值指定该action所映射的请求,method 中的RequestMethod.GET指定该action只接受get请求。

ModelAndView 中的setViewName指定了该action所对应的视图名称,解析视图时会在springservlet-config.xml文件指定的视图文件夹中寻找对应的视图。

 

添加视图,在项目/WEB-INF文件夹下新建一个views文件夹,并在views中添加index.jsp视图,视图内容如下:

nbsp;html PUBLIC "-//W3C//DTD HTML 4.0SpringMVC 학습 시리즈(SpringMVC 학습 시리즈(2) 클래식 HelloWorld 구현) 클래식 HelloWorld 구현 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><meta><title>Insert title here</title>
    ${message}


运行项目,由于我们之前配置了:mvc:view-controller path="/" view-name="forward:/helloworld/index"/> 所以直接可以看到结果:

SpringMVC 학습 시리즈(SpringMVC 학습 시리즈(2) 클래식 HelloWorld 구현) 클래식 HelloWorld 구현

把请求的URL地址改为配置的地址:http://localhost:8080/SpringMVCLesson/helloworld/index,可以看到结果相同:

SpringMVC 학습 시리즈(2) 클래식 HelloWorld 구현

代码下载:http://pan.baidu.com/s/SpringMVC 학습 시리즈(SpringMVC 학습 시리즈(2) 클래식 HelloWorld 구현) 클래식 HelloWorld 구현o6LRw7o

 以上就是SpringMVC学习系列(SpringMVC 학습 시리즈(2) 클래식 HelloWorld 구현) 之 经典的HelloWorld实现的内容,更多相关内容请关注PHP中文网(www.php.cn)!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.