springMvc的第一个demo
1.下载jar包
http://repo.spring.io/libs-release-local/org/springframework/spring/4.2.3.RELEASE/
2.下载源码
jar包中有源码
3.找到测试demo
http://jinnianshilongnian.iteye.com/blog/
4.找到学习笔记
http://www.open-open.com/doc/
5.初识springMvc
学习一个新的框架,首先要对它有一个大概的认识,便于后面的学习,首先要明白两个问题
1)它是干什么的?
我一开始是藐视它的,因为还没测试体会,我都不会用,难或不难和我有什么关系呢,自己学习一定要保证好心态,社区里有很多关于:它是什么的大篇的概念性论述,稍微看了下,和strut2都是C层框架,至于它的实现原理,执行流程,以及优缺点,随着学习,在慢慢去体会它的神奇
2)如何使用?
废话不多说,下面直接上第一个入门demo,代码是注解式的
1.首先是web.xml的配置:
<!-- springmvc核心 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 指定springMvc配置文的件位置 ,这个是在src下,如果不指定,则默认是WEB-INF/[DispatcherServlet的Servlet-name的名字]-servlet.xml配置文件-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!-- 监听该springMvc启动,初始化这个servlet -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
2.springMvc配置文件
<!-- 扫描Controller所在的包 -->
<context:component-scan base-package="zpark.*"/>
<!-- 注册处理器映射器/处理器适配器 -->
<mvc:annotation-driven conversion-service="conversionService"/>
<!-- 视图解析器
解析规则: 前缀+逻辑名+后缀
-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"/>
<property name="suffix" value=".jsp"/>
</bean>
3.controller
/**
* @Controller :注解用在类上,标识这个类是一个控制器
* @RequestMapping 注解加在类上相当于struts2中的namespace
*/
@Controller
@RequestMapping("/hello")
public class HelloController {
/**
* @RequestMapping 注解加在方法上,代表方法的访问路径
* 属性一:value要求一个string数组
*/
@RequestMapping(value={"/test","/aaa","/bbb"}) //localhost:9999/springmvc/hello/test
public String test(){
System.out.println("test hello invoking ~~");
return "index";//="/index.jsp"
}
}
4.浏览器访问controller:
localhost:9999/springmvc/hello/test
很开心,第一个demo直接访问成功了,现在我们对这个demo进行分析:
从web.xml开始:
它的入口是 :DispatcherServlet类,看了一下它最终是继承自 HttpServlet类,这一点也验证了springMvc的上下文是一个serlvet
它是如何执行的这个流程呢:参考了一些资料,我自己画了一个流程图,自己总结的印象深刻些么:
RequestMappingHandlerMapping:映射器,它的作用是,实现类上拥有@Controller或@RequestMapping注解的bean,即发现action,并将它们作为处理器。
requestmappinghandleradapter: 适配器,找到拥有@RequestMapping注解的方法

今天先写到这里
springMvc的第一个demo的更多相关文章
- SpringMVC(流程+第一个Demo)
一.流程图 用户发送请求至前端控制器DispatcherServlet DispatcherServlet收到请求调用HandlerMapping处理器映射器. 处理器映射器根据请求url找到具体的处 ...
- angular开发者吐槽react+redux的复杂:“一个demo证明你的开发效率低下”
曾经看到一篇文章,写的是jquery开发者吐槽angular的复杂.作为一个angular开发者,我来吐槽一下react+redux的复杂. 例子 为了让大家看得舒服,我用最简单的一个demo来展示r ...
- 初识nginx之第一个demo
商城项目做了一个多月了,想到必须用到负载均衡,简单了解了一下nginx,首先分享第一个demo,五月份上线后,会继续分享一系列相关知识. 在nginx根目录下,用了一个园友的批处理文件nginx.ba ...
- Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)
在android的应用层中,涉及到很多应用框架,例如:Service框架,Activity管理机制,Broadcast机制,对话框框架,标题栏框架,状态栏框架,通知机制,ActionBar框架等等. ...
- 如何在WTL和MFC中使用duilib及如何静态使用duilib库!(初级讲解 附带一个Demo)
关于duilib的历史,我也就不多说了,能看到这篇文章的人都是有一定了解才能找到这个的. 我直接说下对这个库的基本使用吧. 我个人对一些好技术都是比较感兴趣的. 因为个人原因 喜欢接触一个好技术. 所 ...
- 白盒测试之gtest第一个demo
认识gtest工具后,关于它的使用,下面将用一个demo程序演示一下gtest的用法以及成果展示. 一.需要测试的C++代码: #include "myfunction.h" // ...
- 在VS中实现webService的一个demo(图解)
在VS中实现webService的一个demo(图解) 先创建一个web项目,创建好web项目后,添加新建项——web服务 在新建好的web服务文件中写如下代码: 生成当前解决方案. 新建一个winf ...
- Cocos2d-x 学习(1)—— 通过Cocos Studio创建第一个Demo
近期在工作上有了比較大的转变,自学情绪也慢慢高涨,本来一直在研究unity的技术.由于换了工作会開始接触cocos2d-x.但并不意味着停止研究unity,以后有时间还是会继续的. 公司的cocos2 ...
- 使用android的mediaplayer做成 一个demo,欢迎测试使用
附件是为一个定制视频产品而简单的写了一个demo,用来说明android的mediaplayer是如何使用的. http://files.cnblogs.com/guobaPlayer/palyerD ...
随机推荐
- appium 常用api介绍(1)
前言:android手机大家都很熟悉,操作有按键.触摸.点击.滑动等,各种操作方法可以通过api的方法来实现. 参考博文:http://blog.csdn.net/bear_w/article/det ...
- Java Web开发之Servlet获取ckeditor内容
js: <!-- ckeditor插件 --> <script type="text/javascript" src="js/ckeditor/cked ...
- 扩展Unity的方法
写更少代码的需求 当我们重复写一些繁杂的代码,或C#的一些方法,我们就想能不能有更便捷的方法呢?当然在unity中,我们对它进行扩展. 对unity的类或C#的类进行扩展有以下两点要注意: 1.这个类 ...
- 当手机被PS掉,人们看到的是手中的灵魂
Eric Pickersgill是一名摄影师,最近喜欢拍摄并记录人们使用智能手机的情景,不过不同的是,在最终作品中会将手机从人们手中PS掉,一刹那会进入一个奇怪的世界.黑白照片也极具冲击力. 每个人神 ...
- [No00003F]richtextbox实现拖放
namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { Initialize ...
- nodeType的12种类型
// NodeType const unsigned short ELEMENT_NODE = 1; 元素节点 const unsigned short ATTRIBUTE_NODE = 2; 属性节 ...
- CentOS RHEL 安装 Tomcat 7
http://www.davidghedini.com/pg/entry/install_tomcat_7_on_centos This post will cover installing and ...
- PAT 1004. 成绩排名 (20) JAVA
读入n名学生的姓名.学号.成绩,分别输出成绩最高和成绩最低学生的姓名和学号. 输入格式:每个测试输入包含1个测试用例,格式为 第1行:正整数n 第2行:第1个学生的姓名 学号 成绩 第3行:第2个学生 ...
- spring mvc总结1
1,spring下载 spring更改了官方网站后,找了很长时间没有找到相关的jar包下载路径,然后在网上终于找到相关的路径了 有个树形结构可供选择:http://repo.spring.io/rel ...
- C# socket UDPの异步链接
基于C#的UDP异步连接,在本机上通过测试