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. JMeter之断言 - 响应文本

    1.  响应数据: 2.  添加响应断言: 3.设置响应断言,本例中 设置 响应文本 中 包括 success 字符串的 为真,即通过. 4.如果设置 响应文本 中 包括 error 字符串的 为真, ...

  2. win10的系统下怎么设置网页的字体变大

    对于 EDGE 浏览器: 点击右上角的设置图标(三个小点)--缩放,点击 + 号放大字体.   本回答由提问者推荐

  3. Linux服务器删除乱码文件和文件夹的方法

    Linux服务器删除乱码文件和文件夹的方法 首页进入乱码文件所在文件夹由于php大势所趋,所以接触Linux服务器的机会越来越多.不同于Windows服务器,Linux服务器只支持数字.英文等字符,对 ...

  4. appium GUI介绍

    Appium作为APP端的自动化测试工具,具有很多的有点,今天主要介绍一下它的UI界面,包含其中的一些参数等.主要说的是windows下的APPIUM GUI. 先看一眼它的界面(版本为1.4.16. ...

  5. github上最好的开源MMORPG - stendhal

    Stendhal is a fully fledged multiplayer online adventures game (MORPG). It is completely open source ...

  6. 豆瓣爬虫小记(lowB版)

    爬虫小记 学习玩python正则之后,想利用正则知识学学网络爬虫. 需求分析 按照自己平时浏览的网页,留意下哪个网页的信息对自己有价值,分析要爬取哪些网页信息.这里我先爬取简单的静态网页,豆瓣网经典电 ...

  7. Swing小技巧总结

    1. 使JDialog位于屏幕的中央 public void setToScreenCenter(JDialog jd) {           Dimension screenSize = Tool ...

  8. CF528D. Fuzzy Search [FFT]

    CF528D. Fuzzy Search 题意:DNA序列,在母串s中匹配模式串t,对于s中每个位置i,只要s[i-k]到s[i+k]中有c就认为匹配了c.求有多少个位置匹配了t 预处理\(f[i][ ...

  9. Go基础之--接口

    定义 在Go语言中,一个类只要实现了接口要求的所有函数,我们就说这个类实现了该接口 interface类型可以定义一组方法,用来表示一个对象的行为特征,interface不能包含任何变量,接口是引用类 ...

  10. C语言之prinf的用法

    1. n换行字符 1).直接输出内容 printf("哈哈\n"); 2).带参数的输出 int i = 10 ; %d:输入控制符 printf ("%d\n" ...