SpringMVC一路总结(三)
在博文《SpringMVC一路总结(一)》和《SpringMVC一路总结(二)》中,该框架的应用案例都是是基于xml的形式实现的。然而,对于大型项目而言,这种xml的配置会增加项目模块之间的耦合性,增加配置文件的配置难度,因此,从效率上来讲,这是一种并不被看好的方式。
尽管这种xml形式的配置在项目中用的比较少,但是,这种形式的配置可以很清楚的了解到SpringMVC 入门的一些基础知识,学起来可以感觉到很轻松。只有在了解了这种基于xml的实现SpringMVC 之后,我们再来看注解实现就会显得更加轻松。正是因为配置很麻烦,增加程序中模块间的耦合度,所以,今天的主要任务就是利用注解的形式实现一个很简单的SpringMVC,这样一来,入门注解样例,了解SpringMVC的基础注解形式,待实现案例之后,就会很明显感觉到SpringMVC相比较XML形式而言,更加方便,更加贴合实际应用。
对于SpringMVC中的注解关键字不是本文的重点,我们在用的过程中会总结一些,不断的应用,不断的总结。如果想要一次性的了解SpringMVC中的注解关键字,可以查看相关API。本博文为本人学习的总结,请尊重劳动成果。欢迎转载,请保留博文出处:http://www.cnblogs.com/itred ;本人邮箱: it_red@sina.com 。
案 例
新建一个web工程,加入相关JAR包;
在web.xml中进行相关配置,本例的SpingMVC-servlet.xml配置文件放在了src目录下,因此需要在web.xml中进行相关的配置。配置如下:
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:SpringMVC-servlet.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
然后就像最开始学习xml配置SpringMVC一样,新建SpringMVC-servlet.xml;因为从现在开始就要学会用注解的形式来应用SpringMVC,所以牢记几个类。在spring的包中,有一个webmvc的JAR包,其下有一个注解方式处理适配器类org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter和一个默认的的注解处理映射类org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping。 这两个类是必须要知道的,因为这两个类的加载,或者说在SpringMVC-servlet.xml文件中的两个bean,就是由于他们,才会开启Spring的注解,一个是根据包找类,一个是根据类去找方法。虽然说,在启用注解时可以通过一行代码<mvc:annotation-driven/>替代,但是我还是建议需要知道这两个基本类。
还有一个需要注意的地方就是控制器所属的包,因为这里不再是一个一个的去用xml进行配置,所以需要进行扫描控制器,在SpingMVC-servlet.xml中的扫描语句是:<context:component-scan base-package="com.red.controller" /> 。到这里,配置基本完成,对!你没看错,以前利用xml进行配置时所需要的配置比现在这个可多了很多。即使后面新建控制器时,也不需要再进行配置了。
说到控制器,当然不可少!在制定包下新建一个控制器,因为这个包必须在使用注解可以扫描的包目录下才可以。
源码如下:
package com.red.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView; @Controller
public class AnnoController {
@RequestMapping(value = "/user/adduser", method = RequestMethod.GET)
public ModelAndView addUser() {
System.out.println("add user");
String result = "addUser";
return new ModelAndView("/index", "result", result);
} @RequestMapping(value = "/user/deluser", method = RequestMethod.GET)
public ModelAndView delUser() {
System.out.println("del user");
String result = "del user";
return new ModelAndView("/index", "result", result);
}
}
下面对上面控制器中所用到的注解进行总结:
@Controller 标识在类名之上,说明该类就是一个控制器;其实以后在用的过程中,只要是控制器就加上,而且当程序中的内容比较多时,也不会出错;
@RequestMapping(value = "/user/adduser", method = RequestMethod.GET) 方法的映射,value中的值就是浏览器可以访问的URL,而对于method是指的是请求方法,一旦在这里指定了该方法的请求方式,那么其它的就不可用,因此,它是严格的区分POST和GET方法;当然在某种情况下,需要同时满足POST和GET方法,这里就直接省略method的设置,直接忽略掉这部分;同时也可以将value = "/user/adduser"这部分的值直接修改为:"/user/adduser"。只在括号中写入访问的路径就行,同样可以实现一样的功能。
在这里,会看到,每个方法都得去写一遍@RequestMapping(),但是每个里面都有相同的一部分,因此可以将相同部分的路径抽取出来,这样一来可以很清楚的看到这个模块究竟是什么,在类名的前面@Controller后加上@RequestMapping(“模块名称”),因此,对于团队开发而言,可以很清楚的对每个部分进行分配。
实现效果如下:(这里是用的GET方式,POST方式请自测)
方法一:
方法二:
控制台输出:
总 结
对于技术的学习,还是得就其本身。不能知道简单的应用就行了,这样始终都不会理解人这样设计的缘由。光浮夸于其表面,不能沉下心来,静静体会其高明之处,就必然不能真正学会这门技术。
案例下载链接
感谢奋斗中的自己!
邮箱:it_red@sina.com
个人博客: http://itred.cnblogs.com
版权声明:本文版权归作者和博客园共有,欢迎转载,但请在文章显眼位置标明文章出处。未经本人书面同意,将其作为他用,本人保留追究责任的所有权利。
SpringMVC一路总结(三)的更多相关文章
- SpringMVC一路总结(
SpringMVC一路总结(三) 在博文<SpringMVC一路总结(一)>和<SpringMVC一路总结(二)>中,该框架的应用案例都是是基于xml的形式实现的.然而,对于大 ...
- SpringMVC一路总结(一)(转)
itRed You are never too old to set another goal or to dream a new dream. SpringMVC一路总结(一) SpringMVC听 ...
- SpringMVC一路总结(二)
冰冻三尺非一日之寒.对技术的学习尤其得遵循这么一个理.在<SpringMVC一路总结(一)>中,清楚的总结了SpringMVC的入门案例,对于这类入门demo,理清套路,整理思绪是最为重要 ...
- 使用IntelliJ IDEA开发SpringMVC网站(三)数据库配置
原文:使用IntelliJ IDEA开发SpringMVC网站(三)数据库配置 摘要 讲解在IntelliJ IDEA中,如何进行Mysql数据库的配置 目录[-] 文章已针对IDEA 15做了一定的 ...
- SpringMVC一路总结(一)
SpringMVC听闻已久,早在去年就被学长问到关于SpringMVC的基础知识,当时也没在意.主要是工作中也没有用到关于SpringMVC的技术,因此免于没有时间和精力的借口就没有接触和学习Spri ...
- SpringMVC学习笔记(三)
一.SpringMVC使用注解完成 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 <!--configure the setti ...
- springmvc学习(三)
第一点---------使用 @RequestMapping 映射请求• Ant 风格资源地址支持 3 种匹配符:?:匹配文件名中的一个字符 *:匹配文件名中的任意字符 **:** 匹配多层路径 @R ...
- SpringMVC框架(三)from标签(转)
原文地址:http://blog.csdn.net/kutim/article/details/46682547 spring表单标签 <%@taglib uri="http:// ...
- SpringMVC学习(三)———— springmvc的数据校验的实现
一.什么是数据校验? 这个比较好理解,就是用来验证客户输入的数据是否合法,比如客户登录时,用户名不能为空,或者不能超出指定长度等要求,这就叫做数据校验. 数据校验分为客户端校验和服务端校验 客户端校验 ...
随机推荐
- node-webkit 环境搭建与基础demo
首先去github上面下载(地址),具体更具自己的系统,我的是windows,这里只给出windows的做法 下载windows x64版本 下载之后解压,得到以下东西 为了方便,我们直接在这个目录中 ...
- 图片访问实时处理的实现(nodejs和php)
我在访问时光网.网易云音乐等网站时,发现将它们页面中的一些图片URL修改一下就可以得到不同尺寸的图片,于是思考了其实现方案,我的思路是:URL Rewrite + 实时处理 + 缓存,对用户请求的UR ...
- ADO.NET对象的详解
1. Connection 类 和数据库交互,必须连接它.连接帮助指明数据库服务器.数据库名字.用户名.密码,和连接数据库所需要的其它参数.Connection对象会被Command对象使用,这样就能 ...
- sublime常用快捷键
自己觉得比较实用的sublime快捷键: Ctrl + / ---------------------注释 Ctrl + 滚动 --------------字体变大/缩小 Ctrl + N----- ...
- Android 剪贴板详解
版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Clipboard 如本文有助于你理解 Android 剪贴板,不妨给我一个 Star.对于码农而言, ...
- 【干货分享】流程DEMO-资产请购单
流程名: 资产请购 业务描述: 流程发起时,会检查预算,如果预算不够,流程必须经过总裁审批,如果预算够用,将发起流程,同时占用相应金额的预算,但撤销流程会释放相应金额的预算. 流程相关文件: 流程 ...
- 【SAP业务模式】之ICS(三):前台操作
本片博文开始讲解SAP前台是如何实现ICS业务模式的. 一.VA01开立销售订单 我这里为了方便,创建了一个订单类型ZMIV作为公司间销售的订单类型,其实公司间销售订单跟标准的销售订单是一致的.同时, ...
- Android中ListView实现图文并列并且自定义分割线(完善仿微信APP)
昨天的(今天凌晨)的博文<Android中Fragment和ViewPager那点事儿>中,我们通过使用Fragment和ViewPager模仿实现了微信的布局框架.今天我们来通过使用Li ...
- 图解DevExpress RichEditControl富文本的使用,附源码及官方API
9点半了,刚写到1.2. 该回家了,明天继续写完. 大家还需要什么操作,留言说一下,没有的我明天继续加. 好久没有玩DevExpress了,今天下载了一个玩玩,发现竟然更新到14.2.5了..我去 ...
- Hadoop伪分布式集群环境搭建
本教程讲述在单机环境下搭建Hadoop伪分布式集群环境,帮助初学者方便学习Hadoop相关知识. 首先安装Hadoop之前需要准备安装环境. 安装Centos6.5(64位).(操作系统再次不做过多描 ...