Rumah  >  Artikel  >  Java  >  SpringMVC学习系列(2) 之 经典的HelloWorld实现

SpringMVC学习系列(2) 之 经典的HelloWorld实现

黄舟
黄舟asal
2017-03-03 10:36:321384semak imbas

前一篇简单介绍了Spring MVC的一些知识,下面就要开始学习如何把Spring MVC运用到具体的项目中去。

首先还是从一个简单的Hello World项目说起:

 

我机器的开发环境为:

Ubuntu12.04(不同操作系统对本系列项目没有影响);

开发工具:Eclipse For JavaEE;

数据库:MySql5.5.35;

运行环境:TomCat V7.0;

JDK:JDK 1.7.0_45;

项目工程为:Dynamic Web Project;

 

一、项目依赖的jar包:

1.Spring框架依赖的jar包:

日志:commons-logging-1.1.3.jar;

JSTL支持:jakarta-taglibs-standard-1.1.2中的jstl.jar和standard.jar;

2.Spring的jar包:

spring-framework-3.2.5.RELEASE/libs中的jar包(这里为了方便我直接把全部都复制过去了);

把以上的jar包全部复制到项目的WebContent/WEB-INF/lib目录中。

 

二、在/WEB-INF中添加web.xml文件,文件内容如下:

930406f08da8ee4a2ff134b688d29d1de17c4c066a285c1f9071cb4874c305ff
  104ce0f86471f18553dacb332199720eSpringMVCLesson6016cc98de5b53c0cfd1cdb1cf6f5e32 
        
    46309ed845064fdb06e746051efff9e0
        700b5f17c4d842e4bd410f680f40946bSpringMVCLesson72eca723e64ddd01187c8b4d58572fcb
        b472d9135dbff3dd7fcc77f5995c97d0org.springframework.web.servlet.DispatcherServlet4f01b97d64aea37f699ead4eb7bd2bbd 
        380fae52cc7d04565d26dd4bbf4b5460
            c13d9669d2c8f87a36a39c8f95f41552contextConfigLocation02b9ad8b27bc78bd91c18db845cdde4a
            f226acac8cb0e4a9d59fcba58b57a899classpath:springservlet-config.xml22c8aeb51b7638a9da01bd5a66154ac1
        8f161518881ffd7712eaaadc573a3556
        4781e2cbaa93c386271b418d3a01af0813065abc64b27fbca30c0905ab93e8ea0baf6f48b269a39eb229cac746730da64
    20d42bb762ac7d7e594da3a264e47fcc
    b24306cffe25207457f6bb15e8d46fbd
    
    870ae7edaa11700bcea972d006efb06e
        700b5f17c4d842e4bd410f680f40946bSpringMVCLesson72eca723e64ddd01187c8b4d58572fcb
        66e1775cbd9d5002635ae3285442ba88/3ec4a5583206d351b61ed79c1a0f9c66
    cb808b0e21d3ee32c89fe10adc3f12ec
    9ec23d40699efb4cb39a61797a06a5a1


首先是配置DispatcherServlet,根据系列(1)的Spring MVC响应流程图,可以看出DispatcherServlet主要就是拦截请求,然后调用对应的Controller和Action,解析和渲染指定的视图并返回响应 。

其中classpath:springservlet-config.xml指定具体的配置文件为springservlet-config.xml。

30945843165650cb3a703d5cc7093df915077971060975e63ef41ebb2d1d54ecf是启动顺序,让这个Servlet随Servletp容器一起启动,必须放在e2f901ada52f90d1351206ccffe56dee 配置的最后。

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

 

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

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

930406f08da8ee4a2ff134b688d29d1d3aaaa1120136861be9c5da73ffd32d71
    
    0b8029a74caea9edd9a20e8ece79f596  
    f7ba1f27e11c63617ca69c495697dd74
      
    1ecdab0dce83117029afc88fc366ec17
    2b16763f2b9e5caa7def5ac59cf308dc 
    eb1198b9f5734befe69c85a5bc83cb41
    806f30e316c80ce3107d3343ac9f58bc
    a88e150a92f4f3689e3f1e02930ba113
    ecbff95339f35adabad060cbf066e586
    51ecc18d8e82ac96b8217ae1196a66f9
    b9765f6ef62e96f6baf32cb43a8a322a
    0d474d89936a8bdd46964846ce8b041b
    7ea4b1506262239595c16a77e7a712b1

    a69943b7435dd904d9d0ce28047f10be
    0ed27f06d204ae823e006bc75fe72b71
    2fdaca02ad13b125749943a4cbf16017
        ba484756fcaed70e9c1db328950cb30c
    6d11e96e4d7ebefb8827ae1f519425e7
      
    e0867f1ee45411283017d6949f13a8bb
    574d6e08aa6a6a0ec336e494faf9dbc6
       09281dc0eca82a35760d4a2da82716e2
       924162023eab358b80dd11238cb71810        
       911ae27f4b33ed5a6fa52bfc422bc45a
       a905597dc5f0575e5186f55f18e9f064
    4bb0e59fd50cbfe6f6ce2215b9d94243
    a6748f3712e7c0e1f60ffca24b3db7b0


b9218ddf369746a1b72d51779f5d6020 开启注解映射支持,它是为了简化配置的缩写形式,它相当于以下2个配置:

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

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

eb1198b9f5734befe69c85a5bc83cb41806f30e316c80ce3107d3343ac9f58bca88e150a92f4f3689e3f1e02930ba113ecbff95339f35adabad060cbf066e58651ecc18d8e82ac96b8217ae1196a66f9b9765f6ef62e96f6baf32cb43a8a322a0d474d89936a8bdd46964846ce8b041b7ea4b1506262239595c16a77e7a712b1


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

2fdaca02ad13b125749943a4cbf16017
    ba484756fcaed70e9c1db328950cb30c
    6d11e96e4d7ebefb8827ae1f519425e7

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

574d6e08aa6a6a0ec336e494faf9dbc6
   09281dc0eca82a35760d4a2da82716e2
   924162023eab358b80dd11238cb71810        
   911ae27f4b33ed5a6fa52bfc422bc45a
   a905597dc5f0575e5186f55f18e9f0644bb0e59fd50cbfe6f6ce2215b9d94243

添加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视图,视图内容如下:

85828626327d2b7f8c8ab69624305ab1148f46b4bf73b4f1f5691dd3f8c3a542100db36a723c770d327fc0aef2ce13b193f0f5c25f18dab9d176bd4f6de5d30ea71ddd814d1e6bfc91cd420de31796d5b2386ffb911b14667cb8f0f91ea547a7Insert title here6e916e0f7d1e588d4f442bf645aedb2f9c3bca370b5104690d9ef395f2c5f8d16c04bd5ca3fcae76e30b72ad730ca86d
    ${message}36cc49f0c466276486e50c850b7e495673a6ac4ed44ffec12cee46588e518a5e


运行项目,由于我们之前配置了:abf0599a6fa16443d9c3b956e5f7ae86 所以直接可以看到结果:

1

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

2

代码下载:http://pan.baidu.com/s/1o6LRw7o

 以上就是SpringMVC学习系列(2) 之 经典的HelloWorld实现的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn