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

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  4. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
  5. http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  6. id="WebApp_ID" version="3.1">
  7. <servlet>
  8. <servlet-name>SpringMVCTest1</servlet-name>
  9. <servlet-class>
  10. org.springframework.web.servlet.DispatcherServlet
  11. </servlet-class>
  12. <init-param>
  13. <param-name>contextConfigLocation</param-name>
  14. <param-value>/WEB-INF/springmvc-config.xml</param-value>
  15. </init-param>
  16. <load-on-startup>1</load-on-startup>
  17. </servlet>
  18. <servlet-mapping>
  19. <servlet-name>SpringMVCTest1</servlet-name>
  20. <url-pattern>/</url-pattern>
  21. </servlet-mapping>
  22. </web-app>

  

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

  

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

  1. package org.fkit.controller;
  2.  
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5.  
  6. import org.apache.commons.logging.Log;
  7. import org.apache.commons.logging.LogFactory;
  8. import org.springframework.web.servlet.ModelAndView;
  9. import org.springframework.web.servlet.mvc.Controller;
  10.  
  11. public class HelloController implements Controller{
  12. private static final Log logger = LogFactory.getLog(HelloController.class);
  13. @Override
  14. public ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response){
  15. logger.info("handleRequest被调用");
  16. ModelAndView mv = new ModelAndView();
  17. //添加模型数据,可以是任意的POJO对象
  18. mv.addObject("message","Hello World");
  19. //设置逻辑视图名,视图解析器会根据该名字解析到具体的视图页面
  20. mv.setViewName("/WEB-INF/content/welcome.jsp");
  21. //返回ModelAndView对象
  22. return mv;
  23. }
  24. }

  

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

  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  2. pageEncoding="ISO-8859-1"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  7. <title>Insert title here</title>
  8. </head>
  9. <body>
  10. ${requestScope.message}
  11. </body>
  12. </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配置的方式,相当于你跟路人甲问路,然后路人甲告诉你:哦,那里啊,你要这么走, 那么走,然后你就照着他说的那么走了,而注解的方式就相当于,你直接说地方叫什么名字,然后高德地图自动扫描某一块区域,然后直接告诉你在哪儿;下面是代码;
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:mvc="http://www.springframework.org/schema/mvc"
  5. xmlns:context="http://www.springframework.org/schema/context"
  6. xsi:schemaLocation="
  7. http://www.springframework.org/schema/beans
  8. http://www.springframework.org/schema/beans/spring-beans.xsd
  9. http://www.springframework.org/schema/mvc
  10. http://www.springframework.org/schema/mvc/spring-mvc.xsd
  11. http://www.springframework.org/schema/context
  12. http://www.springframework.org/schema/context/spring-context.xsd">
  13. <context:component-scan base-package = "org.fkit.controller"/>
  14. <bean class = "org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
  15. <bean class = "org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
  16. <bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver"/>
  17.  
  18. </beans>

  

 
 
        少了一个<bean name = "/hello" class = "org.fkit.controller.HelloController"/>,而多了一个路径扫描,而且引进了另外两个依赖约束mvc和context,看上去好像更麻烦了,但是从软件工程化的角度来看,这样更加灵活便利;因为你不用再每写一个控制器就来这边写一个xml配置路径了;
        接下来是Controller控制器的改变了, 我们要通过注解方式给控制器注解一个辨识,这样的话,才能让springmvc-config扫描到;
        上代码;
  1. package org.fkit.controller;
  2.  
  3. import org.apache.commons.logging.Log;
  4. import org.apache.commons.logging.LogFactory;
  5. import org.springframework.stereotype.Controller;
  6. import org.springframework.web.bind.annotation.RequestMapping;
  7. import org.springframework.web.servlet.ModelAndView;
  8.  
  9. @Controller
  10. public class HelloController{
  11. private static final Log logger = LogFactory.getLog(HelloController.class);
  12. @RequestMapping("/hello")
  13. public ModelAndView hello(){
  14. logger.info("hello方法被调用");
  15. ModelAndView mv = new ModelAndView();
  16. mv.addObject("message","Hello World");
  17. mv.setViewName("/WEB-INF/content/welcome.jsp");
  18. return mv;
  19. }
  20. }

  

        其中,@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 初了解

    1.1G-4G 1G 大哥大  语音通话 2G 小灵通  采用GSM,美国的一个军方标准,后来被民用了. 可以发短信了,上网的网址不是www,是wap.baidu.com 3G 可以上网了,直接用ww ...

  2. absort函数和exit函数

    1. exit()函数会结束并退出程序. 1. abosrt()函数会触发程序的异常,然后程序后面的语句就不会执行了.用来提示错误.会出现:  

  3. Tomcat就是这么简单

    什么是Tomcat Tomcat简单的说就是一个运行JAVA的网络服务器,底层是Socket的一个程序,它也是JSP和Serlvet的一个容器. 为什么我们需要用到Tomcat 如果你学过html,c ...

  4. Chrome中xpath表达式巧妙获取

    对于xpath语法不熟悉,或者要快速匹配出xpath的小伙伴来说这种方式是最快捷的了. 步骤如下: 1.打开chrome 2.ctrl + shift + c 个人比较喜欢用快捷键,不喜欢用快捷键的就 ...

  5. 造成错误“ORA-12547: TNS:lost contact”的常见原因有哪些?

    造成错误“ORA-12547: TNS:lost contact”的常见原因有哪些? 真题1.造成错误“ORA-12547: TNS:lost contact”的常见原因有哪些? 答案:在执行“sql ...

  6. apache配置详解

    可参考:Apache 的 httpd.conf 详解 ServerTokens OS 此指令控制了Server回送给客户端的回应头域是否包含关于服务器OS类型和编译进的模块描述信息.服务器会发送:Se ...

  7. BZOJ 1061: [Noi2008]志愿者招募 [单纯形法]

    传送门 题意: 长为$n$的序列,第$i$位至少$b_i$,$m$种区间使$[l_i,r_i]+1$代价为$a_i$ 求满足的最小花费 复习单纯形法重做一遍 原始问题$m$个变量$n$个约束,$a_{ ...

  8. Does Java pass by reference or pass by value?(Java是值传递还是引用传递) - 总结

    这个话题一直是Java程序员的一个热议话题,争论不断,但是不论是你百度搜也好还是去看官方的文档中所标明的也好,得到的都只有一个结论:Java只有值传递. 在这里就不贴代码细致解释了,让我们来看看一些论 ...

  9. MarkDown思考

    前言 使用MarkDown有一段时间了,感觉的确很方便.大大提高了工作效率,并带来了良好的工作体验.但是,一直以来我都有一个困惑,就是MarkDown的插件和编辑器纷繁无比,却通常各自有一套自己的实现 ...

  10. PHP基础点滴

    PHP基础点滴 双冒号::的用法: 双冒号操作符即作用域限定操作符Scope Resolution Operator可以访问静态.const和类中重写的属性与方法. 伪类型(pseudo-types) ...