SpringMVC应用的配置步骤:
        1,将所有的jar包导入到lib文件夹下;
            jar在spring框架包-->libs-->所有的RELEASEjar包;
        2,先配置一个DispatcherServlet前端控制器;
            这个控制器实质上是一个web.xml文件,在里面配置内容包括
   

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
<servlet>
<servlet-name>SpringMVCTest1</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/springmvc-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVCTest1</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>

  

        3,配置完前端控制器之后,接下来的步骤看你是打算用xml文件配置,还是用注解的方式了,在Spring2.5之后,都是推行:约定优于配置;
        先讲xml配置文件的方法:
        其实,不管是哪一个,你都需要一个配置文件:springmvc-config.xml,在xml配置文件方法中,你需要在这个配置文件中配置handle,映射/hello请求;其实通俗地讲就是要给你等一下输网址的时候的最后那个请求,配置好这个请求的映射关系,当接收到这个请求之后,系统知道要调用哪个Controller来处理;下面这个是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.xsd">
<bean name = "/hello" class = "org.fkit.controller.HelloController"/>
<bean class = "org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<bean class = "org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
<bean class = "org.spirngframework.web.serlvet.view.InternalResourceViewResolver"/>
</beans>

  

 
        实际上这个springmvc-config就相当于一个桥梁,连接起了前端的请求和后台要处理的Controller之间的联系;
        4,那么接下来,我们就要正式开始写controller了,也就是后台具体的业务逻辑;
            在前面的<bean name = "/hello" class = "org.fkit.controller.HelloController"/>中我们已经写出了这个HelloController控制器的路径了,记得要前后一致,不然这个”springmvc-config桥梁“就显得毫无意义了;
            其中,用xml配置方法和注解方法也是有所不同的,xml配置方法主要是使用接口的方式,代码如下;

package org.fkit.controller;

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 HelloController implements Controller{
private static final Log logger = LogFactory.getLog(HelloController.class);
@Override
public ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response){
logger.info("handleRequest被调用");
ModelAndView mv = new ModelAndView();
//添加模型数据,可以是任意的POJO对象
mv.addObject("message","Hello World");
//设置逻辑视图名,视图解析器会根据该名字解析到具体的视图页面
mv.setViewName("/WEB-INF/content/welcome.jsp");
//返回ModelAndView对象
return mv;
}
}

  

        5,这个Controller控制器在接受到请求之后,做了相关处理之后,要将数据返回到视图中,使用了SpringMVC专有的ModelAndView数据传输模型,所以接下来,我们还要建一个jsp页面来接收Controller发送过来的模型数据。并用显示逻辑显示出来;
            这里要提一下,所有的jsp页面都是放在WEB-INF/content目录下,这样做可以避免用户直接访问jsp页面。做到SpringMVC的非侵入性;下面是welcome.jsp的代码;

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
${requestScope.message}
</body>
</html>

  

 
              这里还用到了一点EL表达式的内容,关于EL表达式无法在jsp页面中正常使用的问题,请自行百度哟。。。
        6,测试应用;
              做了这么多,哔哔了这么多,当然要测试一下来看看对不对啦。。
              输入网址:http://localhost:8080/SpringMVCTest/hello 即可,注意到这里更以前不同的地方在于不需要写.jsp文件后缀了。因为这只是一个请求而已;  
         好的,以上就是xml配置文件方法的SpringMVC应用的开发步骤;下面要讲的是通过注解的方式来开发的步骤;
         这里要提一点,其实这两种不同的方式也是Spring的一大特色,而SpringMVC也是Spring的一部分;所以个人建议在学习SpringMVC之前可以先去学学Spring,当然了,Spring作为一个经老不衰的框架,所接触的只是皮毛而已;个人而言;
         跟xml配置方法相比,需要改动的步骤有两个部分,一个是桥梁spingmvc-config,另一个是Controller控制器;其他的步骤都是一样的;
         springmvc-config.xml文件的改动,我们现在已经不再是通过xml配置的方式来寻找Controller了,而是通过扫描的方式来寻找Controller,如果说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:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package = "org.fkit.controller"/>
<bean class = "org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
<bean class = "org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
<bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver"/> </beans>

  

 
 
        少了一个<bean name = "/hello" class = "org.fkit.controller.HelloController"/>,而多了一个路径扫描,而且引进了另外两个依赖约束mvc和context,看上去好像更麻烦了,但是从软件工程化的角度来看,这样更加灵活便利;因为你不用再每写一个控制器就来这边写一个xml配置路径了;
        接下来是Controller控制器的改变了, 我们要通过注解方式给控制器注解一个辨识,这样的话,才能让springmvc-config扫描到;
        上代码;
package org.fkit.controller;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView; @Controller
public class HelloController{
private static final Log logger = LogFactory.getLog(HelloController.class);
@RequestMapping("/hello")
public ModelAndView hello(){
logger.info("hello方法被调用");
ModelAndView mv = new ModelAndView();
mv.addObject("message","Hello World");
mv.setViewName("/WEB-INF/content/welcome.jsp");
return mv;
}
}

  

        其中,@Controller是标注在这个Controller类里面,证明他是个Controller,然后springmvc-config会进来扫描这里面是否有@RequestMapping("***")标识,如果有的话,又是属于哪一个的,这样一直不停的寻找。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

一个简单的Springmvc应用开发例子的更多相关文章

  1. 一个简单的springmvc例子 入门(1)

    一直是从事棋牌游戏,平常用的东西 大多数只是使用一些javase的一些 api对spring 这方面 用到的比较少,每次学了都忘,始终记不住.为了 更轻松学习springboot,从新学习了sprin ...

  2. 一个简单的Spring测试的例子

    在做测试的时候我们用到Junit Case,当我们的项目中使用了Sring的时候,我们应该怎么使用spring容器去管理我的测试用例呢?现在我们用一个简单的例子来展示这个过程. 1 首先我们新建一个普 ...

  3. 基于gulp编写的一个简单实用的前端开发环境好了,安装完Gulp后,接下来是你大展身手的时候了,在你自己的电脑上面随便哪个地方建一个目录,打开命令行,然后进入创建好的目录里面,开始撸代码,关于生成的json文件请点击这里https://docs.npmjs.com/files/package.json,打开的速度看你的网速了注意:以下是为了演示 ,我建的一个目录结构,你自己可以根据项目需求自己建目

    自从Node.js出现以来,基于其的前端开发的工具框架也越来越多了,从Grunt到Gulp再到现在很火的WebPack,所有的这些新的东西的出现都极大的解放了我们在前端领域的开发,作为一个在前端领域里 ...

  4. CSS布局中一个简单的应用BFC的例子

    什么是BFC BFC(Block Formatting Context),简单讲,它是提供了一个独立布局的环境,每个BFC都遵守同一套布局规则.例如,在同一个BFC内,盒子会一个挨着一个的排,相邻盒子 ...

  5. 基于gulp编写的一个简单实用的前端开发环境

    自从Node.js出现以来,基于其的前端开发的工具框架也越来越多了,从Grunt到Gulp再到现在很火的WebPack,所有的这些新的东西的出现都极大的解放了我们在前端领域的开发,作为一个在前端领域里 ...

  6. Oracle学习笔记:一个简单的行转列例子

    一个简单的行列转换例子,原始数据. create table temp_cwh_student ( name ), subject ), score ) ) select * from temp_cw ...

  7. 搭建一个简单的springMVC框架

    //新建一个简单的maven项目,选择war包 //web.xml配置 <?xml version="1.0" encoding="UTF-8"?> ...

  8. 一个简单的Object Hook的例子(win7 32bit)

    Object Hook简单的来说就是Hook对象,这里拿看雪上的一个例子,因为是在win7 32位上的,有些地方做了些修改. _OBJECT_HEADER: kd> dt _OBJECT_HEA ...

  9. [原][译][lua][luabridge]一个简单的luabridge与c++例子结合例子

    参考:https://eliasdaler.wordpress.com/tag/luabridge/ https://eliasdaler.wordpress.com/2015/08/10/using ...

随机推荐

  1. js二维码插件总结

    jquery.qrcode.js生成二维码插件&转成图片格式 http://blog.csdn.net/u011127019/article/details/51226104

  2. js—双等号引起的类型转换过程

    一.首先看双等号前后有没有NaN,如果存在NaN一律返回false 二.再看双等号前后有没有布尔,有布尔就将布尔转换为数字.(false是0,true是1) 三.接着看双等号前后有没有字符串,有三种情 ...

  3. 【转】How to append current date and timestamp to filename in shell script

    $ date +"FORMAT" now=$(date +"%Y-%m-%d-%S") filename="my_program.$now.log&q ...

  4. 【转】SHELL variables default value, ${var:-DEFAULT}和${var=DEFAULT}的一点区别

    ${var:-DEFAULT}和${var=DEFAULT}的区别: ${var:-DEFAULT} If var not set or is empty, evaluate expression a ...

  5. oralce plsql案例练习

    以下plsql程序用的scott用户的dept,emp表. 案例1 --查询80,81,82,87年员工入职人数 set serveroutput on declare cursor cemp is ...

  6. zookeeper 实现分布式锁zookeeper 使用 Curator 示例监听、分布式锁

    下载地址: http://download.csdn.net/download/ttyyadd/10239642

  7. c# 颜色RGB到HSB互相转换

    /// <summary> /// 色相,饱和度,亮度转换成rgb值 /// </summary> /// <returns></returns> pu ...

  8. C#基础拾遗系列之一:先看懂IL代码

    一.前言 首先,想说说为什么要写这样系列的文章,有时候在和同事朋友聊天的时候,经常会听到这样的话题: (1)在这家公司没什么长进,代码太烂,学不到东西.(你有没有想想框架为什么这样写,代码还可以怎么去 ...

  9. BZOJ 1072: [SCOI2007]排列perm [DP 状压 排列组合]

    题意:给一个数字串s和正整数d, 统计s有多少种不同的排列能被d整除(可以有前导0) 100%的数据满足:s的长度不超过10, 1<=d<=1000, 1<=T<=15 看到整 ...

  10. 【模板小程序】求第n个质数

    #include <iostream> #include <vector> using namespace std; int nth_prime(int n) { vector ...