一、导入 jar 包

二、配置 web.xml 文件

<servlet>
  <servlet-name>dispatcherServlet</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/springmvc-servlet.xml</param-value>
  </init-param>
</servlet>
<servlet-mapping>
  <servlet-name>dispatcherServlet</servlet-name>
  <url-pattern>*.action</url-pattern>
</servlet-mapping>

说明:

配置了 SpringMVC 的核心处理器类 org.springframework.web.servlet.DispatcherServlet ,其中 url-pattern 指定了要过滤的请求。

需要注意的是:DispatcherServlet 默认加载 /WEB-INF/servletName-servler.xml 的 SpringMVC Config 文件,可以通过初始化参数修改其位置和名称。

三、添加 SpringMVC Config 文件(springmvc-servlet.xml)

<context:component-scan base-package="com.nucsoft.springmvc.handler"/>

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="prefix" value="/WEB-INF/views/"/>
  <property name="suffix" value=".jsp"/>
</bean>

说明:

(1)指定要扫描的基包

(2)指定视图解析器:prefix + viewName + suffix

四、添加目标类

/**
* @author solverpeng
* @create 2016-08-01-19:19
*/
@Controller
public class HelloWorldHandler { @RequestMapping("/hello")
public String hello() {
System.out.println("hello world...");
return "hello";
} }

说明:

(1)请求处理类必须在 IOC 容器中

(2)@RequestMapping 用来映射请求,其中 value 属性指定映射的 url。可以作用类上,相当于 namespace 的作用。

(3)返回值最终会被解析为 ModelAndView 对象。结合视图解析器,返回到视图。

五、SpringMVC 作为一个表示层的框架,是继 Stuts2 之后的又一个优秀的框架,且有 Spring 整个体系作用支撑,使用起来感觉更加的优雅。

学习 SpringMVC时,要明白它的核心处理器,以及表示层要解决的问题,

如:获取原生的Servlet资源问题、映射问题、参数获取问题、模型注入问题、格式化问题、数据校验问题、返回值处理问题、视图渲染问题、防止表单重复提交问题、文件上传下载问题等等。

以及 SpringMVC 整个的运行流程,以及请求的生命周期问题。能否通过自定义的方式来实现我们想要但是 SpringMVC 还没有解决的问题。

对比于 Struts2,有什么优点、缺点。

想要学会 SpringMVC ,需要真正弄懂上述这些问题。

SpringMVC基础——一个简单的例子的更多相关文章

  1. Spring基础——一个简单的例子

    一.学习版本 spring-framework-4.0.0 二.导入 jar 包: 三.在类路径下创建 Spring Config 文件:ApplicationContext.xml <?xml ...

  2. 关于apriori算法的一个简单的例子

    apriori算法是关联规则挖掘中很基础也很经典的一个算法,我认为很多教程出现大堆的公式不是很适合一个初学者理解.因此,本文列举一个简单的例子来演示下apriori算法的整个步骤. 下面这个表格是代表 ...

  3. SpringMVC之一个简单的例子

    一.一个简单的例子 二.web.xml文件配置 三.spring-mvc.xml文件(等同于struts2的struts文件) 四.login.jsp(登录页面) 五.登录成功的页面(success. ...

  4. 从一个简单的例子谈谈package与import机制

    转,原文:http://annie09.iteye.com/blog/469997 http://blog.csdn.net/gdsy/article/details/398072 这两篇我也不知道到 ...

  5. 用一个简单的例子来理解python高阶函数

    ============================ 用一个简单的例子来理解python高阶函数 ============================ 最近在用mailx发送邮件, 写法大致如 ...

  6. Spring-Context之一:一个简单的例子

    很久之前就想系统的学习和掌握Spring框架,但是拖了很久都没有行动.现在趁着在外出差杂事不多,就花时间来由浅入深的研究下Spring框架.Spring框架这几年来已经发展成为一个巨无霸产品.从最初的 ...

  7. 扩展Python模块系列(二)----一个简单的例子

    本节使用一个简单的例子引出Python C/C++ API的详细使用方法.针对的是CPython的解释器. 目标:创建一个Python内建模块test,提供一个功能函数distance, 计算空间中两 ...

  8. fitnesse - 一个简单的例子(slim)

    fitnesse - 一个简单的例子(slim) 2017-09-30 目录1 编写测试代码(Fixture code)2 编写wiki page并运行  2.1 新建wikiPage  2.2 运行 ...

  9. Struts2的配置和一个简单的例子

    Struts2的配置和一个简单的例子 笔记仓库:https://github.com/nnngu/LearningNotes 简介 这篇文章主要讲如何在 IntelliJ IDEA 中使用 Strut ...

随机推荐

  1. Hermes实时检索分析平台

    一.序言 随着TDW的发展,公司在大数据离线分析方面已经具备了行业领先的能力.但是,很多应用场景往往要求在数秒内完成对几亿.几十亿甚至几百上千亿的数据分析,从而达到不影响用户体验的目的.如何能够及时有 ...

  2. 读取XML的问题

    利用SAX读取写了代码,调试了一下午却一直在parse里抛异常.尼玛,Java的库函数还真心不怎么好用. 把代码贴上来先: package com.example.gulanfinddemo; imp ...

  3. python数据结构之二叉树遍历的实现

    本篇是实现二叉树的三种遍历,先序遍历,中序遍历,后序遍历 #!/usr/bin/python # -*- coding: utf-8 -*- class TreeNode(object): def _ ...

  4. word2007二级标题自动编号不从大标题开始的解决方法

    今天在编写word文档的时候,遇到一个很奇怪的问题,word2007二级标题自动编号不从大标题开始,可能我说的比较模糊,我截个图大家一看就明白了. 我想要的是2.1 2.2结果,他确是从1.1开始了. ...

  5. How to get the Current Controller Name, Action, or ID in ASP.NET MVC

    public static class HtmlRequestHelper { public static string Id(this HtmlHelper htmlHelper) { var ro ...

  6. 不同iOS版本做代码适配__IPHONE_OS_VERSION_MAX_ALLOWED 和 __IPHONE_8_0等专业术语

    目前开发只想最低版本支持iOS8了,iOS8以前的就不管了,然后现在iOS9和iOS10出来以后,有些新的API,也有些弃用的API,为了兼容,有时候代码里面需要编写判断不同iOS版本,或者只允许指定 ...

  7. [原]quick2.25让描边闪起来

    本文教大家如何使用shader让描边动起来.实质就是间隔一定时间改变描边的颜色.难点:如何通过程序把颜色传给shader.想在quick2.25里面尝试的朋友,参考quick2.25精灵变灰配置一下环 ...

  8. mysql日志问题定位实用命令

    show engine innodb status查看日志 select @@version;查看版本(不同版本性能优化不同) SELECT * FROM information_schema.inn ...

  9. 通过 Storyboard 快速搭建一系列连贯性的视图控制器

    此例子只是一个简单的 Demo,这里没有过多介绍如何去实现,网上有很多关于 Storyboard 技术的介绍,请自行搜索. 效果如下: iPhone 5s   iPhone 6   iPhone 6 ...

  10. [原]SQLite的学习系列之获取数据库版本

    最先了解到SQLite是基于其作为移动客户端数据存储平台,以下是其官网(https://www.sqlite.org/)关于SQLite的一段介绍: SQLite是遵守ACID的轻型数据库引擎,它包含 ...