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. android adapter 中添加OnClickListener事件

    public class SearchAutoAdapter extends BaseAdapter { private OnClickListener mOnClickListener; publi ...

  2. CentsOS7无网情况下安装mysql5.7

    1.需求就不用讲了,客户现场,政府环境,银行环境,大多是没网的,所以无网安装是很有必要的 mysql下载路径:https://dev.mysql.com/downloads/mysql/ 查看自己Li ...

  3. 开发快速定位需求(Coding之前的工作)

    自我总结,求高人指点,欢迎拍砖! 目的:快速定位feature需求,避免浪费不必要的时间 需求目的:它要用来解决什么问题?(客户需求,bug fixed,学习新技术) 需求对象:它针对的对象是谁?(明 ...

  4. XAML: 自定义控件中事件处理的最佳实践

    在开发 XAML(WPF/UWP) 应用程序中,有时候,我们需要创建自定义控件 (Custom Control) 来满足实际需求.而在自定义控件中,我们一般会用到一些原生的控件(如 Button.Te ...

  5. SpringMVC和Struts2的比较

    整体的框架机制     1.Struts2的入口是StrutsPrepareAndExecuteFilter,SpringMVC的入口是通过DispatcherServlet实现.     2.Str ...

  6. HTML核心标签之表格标签(一)

    表格的基本语法: <body> <table> <tr><td></td><td></td></tr> ...

  7. BZOJ 2916: [Poi1997]Monochromatic Triangles [计数]

    题意:空间中有n个点,任意3个点不共线.每两个点用红线或者蓝线连接,如果一个三角形的三边颜色相同,那么称为同色三角形.给你一组数据,计算同色三角形的总数. 考虑补集,异色三角形 每个点的边红色和蓝色两 ...

  8. Matplotlib学习笔记(二)

    原  Matplotlib学习笔记 参考:Python数据科学入门教程 Python3.6.1 jupyter notebook .caret, .dropup > .btn > .car ...

  9. 对Javascript到底了解多少,一测便知道

    笔者在这里附上一段代码,请读者思考一下程序的运行结果: console.log(a); //??? a(); var a=3; function a(){ console.log(10); } con ...

  10. GIT_服务器与本地环境构建

    linux安装git包 很多yum源上自动安装的git版本为1.7,这里手动编译重新安装1:安装依赖包yum install curl-devel expat-devel gettext-devel ...