一、SpringMVC重点注解

@Controller

1.@Controller 与 @Component 实际应用中作用等价。

    2.和Struct一样,也是单例,意味着被多个请求线程共享,因此我们将控制器设计成无状态类。
@RequestMapping
    1.在类前面定义,则将url和类绑定。
    2.在方法前面定义,则将url和类的方法绑定。
@RequestParam
    1.写法@RequestParam("参数"),写在参数前面。
@SessionAttributes
    操作Session,将ModelMap中指定的属性放到session中。
    放在类前面,@SessionAttributes({"u","a"}) //将ModelMap中属性名字为u、a的再放入session中,使得request和session中都有了。
    ModelMap是map的实现,可在其中存放属性,作用域同request,可以在modelMap中放入数据。然后在forward的页面上显示这些数据,同过el表达式,JSTL,java代码均可。
@ModelAttributes
    。。。
 
Controller 类中方法返回值的处理
    1.常用返回String(建议)
        根据返回值找对应的显示页面,路径规则为:prefix前缀+返回值+suffix后缀组成
        
@RequestMapping(params="method=reg4")
public String reg4(ModelMap map) {
System.out.println("HelloController.handleRequest()");
return "index";
}
前缀为:/WEB-INF/jsp/   后缀为:.jsp
再转发到:/WEB-INF/jsp/index.jsp
    2.也可以返回ModelMap、ModelAndView、map、List、Set、Object、无返回值。 一般建议返回字符串!
 
转发和重定向:return "forward:user.do?method=reg5"; //转发

// return "redirect:user.do?method=reg5";  //重定向

return "redirect:http://www.baidu.com";  //重定向

3.spring MVC 传参数都是经过 ModelMap 或者 ModelAndView
 
二、Spring全家桶概念
核心原理:

1.用户发送请求给服务器:url;
2.服务器收到请求。发现DispatchServlet 可以处理,于是调用DispatchServlet。
3.DispatchServlet 内部,通过HandleMapping检查这个url 有没有相对应的Controller。有则调用Controller。
4.Controller 开始执行。
5.Controller 执行完毕,如果返回字符串,则ViewResolver 将字符串转化成相应的视图对象,如果返回ModelAndView对象,该对象本身就包含视图对象信息。
6.DispatchServlet  将执行视图对象中的数据,输出给服务器。
7.服务器将数据输出给客户端。

Spring3.0 相关jar包的含义:
org.springframework.aop-3.0.3.RELEASE.jar ---Spring的aop面向切面编程。
org.springframework.asm-3.0.3.RELEASE.jar ---Spring独立的asm字节码生成程序。
org.springframework.beans-3.0.3.RELEASE.jar ---IOC的基础实现。
org.springframework.context-3.0.3.RELEASE.jar --IOC基础上的扩展服务。
org.springframework.core-3.0.3.RELEASE.jar ---spring的核心包。
org.springframework.expression-3.0.3.RELEASE.jar ---spring的表达式语言。如:ognl 
org.springframework.web-3.0.3.RELEASE.jar ---web工具包。
org.springframework.web.servlet-3.0.3.RELEASE.jar ---mvc工具包。

三、SpringJDBC概念

Spring JDBC抽象框架所带来的价值将在以下几个方面得以体现:(注:使用了Spring JDBC抽象框架之后,应用开发人员只需要完成斜体字部分的编码工作。)

  1. 定义数据库连接参数

  2. 打开数据库连接

  3. 声明SQL语句

  4. 预编译并执行SQL语句

  5. 遍历查询结果(如果需要的话)

  6. 处理每一次遍历操作

  7. 处理抛出的任何异常

  8. 处理事务

  9. 关闭数据库连接

Spring将替我们完成所有使用JDBC API进行开发的单调乏味的、底层细节处理工作。

四、Spring 中的 Bean的作用域

作用域 描述

singleton

在每个Spring IoC容器中一个bean定义对应一个对象实例。

prototype

一个bean定义对应多个对象实例。

request

在一次HTTP请求中,一个bean定义对应一个实例;即每次HTTP请求将会有各自的bean实例, 它们依据某个bean定义创建而成。该作用域仅在基于web的SpringApplicationContext情形下有效。

session

在一个HTTP Session中,一个bean定义对应一个实例。该作用域仅在基于web的Spring ApplicationContext情形下有效。

global session

在一个全局的HTTP Session中,一个bean定义对应一个实例。典型情况下,仅在使用portlet context的时候有效。该作用域仅在基于web的Spring ApplicationContext情形下有效。

spring3.X版本知识点的更多相关文章

  1. ECMAScript版本知识点汇总

    ECMAScript版本知识点汇总 ES5 btoa.atob 对参数进行base64格式编码.解码 /** * btoa() * base64编码 * @param {string} str * @ ...

  2. Spring3.x 版本和 JDK1.8 不兼容导致 java.lang.IllegalStateException: Failed to load ApplicationContext

    由于安装了 JDK1.8 的版本,最近在进行整合 Struts2+Spring+Hibernate 框架的时候,不小心导入了之前下载的 Spring 3.2.0 版本的 jar 包. 结果在运行测试用 ...

  3. [转]Spring3核心技术之事务管理机制

    原文地址:http://chouyi.iteye.com/blog/1675199 Spring对事务的解决办法其实分为2种:编程式实现事务,AOP配置声明式解决方案. http://jinnians ...

  4. SSH项目整合教学Eclipse搭建SSH(Struts2+Spring3+Hibernate3)

    这篇博文的目的 尝试搭建一个完整的SSH框架项目. 给以后的自己,也给别人一个参考. 读博文前应该注意: 本文提纲:本文通过一个用户注册的实例讲解SSH的整合.创建Struts项目,整合Hiberna ...

  5. 开涛spring3(9.2) - Spring的事务 之 9.2 数据库事务概述

    9.2.1  概述 Spring框架支持事务管理的核心是事务管理器抽象,对于不同的数据访问框架(如Hibernate)通过实现策略接口 PlatformTransactionManager,从而能支持 ...

  6. jersey2+freemarker+spring3的集成

    由于即将开始的新项目,是一个对外网开放访问权限的web应用.所以,公司技术管理层不允许使用struts以及spring mvc这一套.所以,我们开始转战曾经用作REST API的框架jersey及其周 ...

  7. Spring3数据库事务管理机制

    Spring对事务的解决办法其实分为2种:编程式实现事务,AOP配置声明式解决方案. http://jinnianshilongnian.iteye.com/blog/1496953 Spring提供 ...

  8. 跟我学Spring3(9.2):Spring的事务之事务管理器

    原文出处: 张开涛9.2.1 概述 Spring框架支持事务管理的核心是事务管理器抽象,对于不同的数据访问框架(如Hibernate)通过实现策略接口PlatformTransactionManage ...

  9. @Cacheable注解在spring3中的使用-实现缓存

    转:  http://blog.csdn.net/chenleixing/article/details/44815443 在软件开发中使用缓存已经有一个非常久的历史了.缓存是一种很好的设计思想,一旦 ...

随机推荐

  1. kafka学习(一)初识kafka

    文章更新时间:2020/06/08 一.简介 定义:kafka是一个分布式,基于zookeeper协调的发布/订阅模式的消息系统,本质是一个MQ(消息队列Message Queue),主要用于大数据实 ...

  2. Token机制,session机制

    对于初学者来说,对Token和Session的使用难免会限于困境,开发过程中知道有这个东西,但却不知道为什么要用他? session机制:就是一个id号(cookie里面携带一个sessionid), ...

  3. C++实现职工管理系统(上)

    C++实现职工管理系统(上) 大家好呀,时间过得真快,在博客园已经第七天了,博主今天给大家带来的是职工管理系统(C++)(上) 这次的随笔记录的是实现职工管理系统所需要的类 目录 C++实现职工管理系 ...

  4. SpringBoot-03-JSR303数据校验和多环境切换

    3.3 JSR303数据校验 先看如何使用 ​ Springboot中可以用@Validated来校验数据,如果数据异常则统一抛出异常,方便异常中心统一处理. ​ 这里我们写个注解让name只支持Em ...

  5. Python-in is == 区别

    in 判断单个元素是否在序列中, 对字典来说只能判断key,在不在关系 print("ab" in "abcdefg") print("abc&quo ...

  6. c语言的变量,常量及作用域等

    1.const定义常量 在C语言中,const可以用来定义的一个常量,在变量名前加上const即可. int const a: 定义了一个a的整数常量,且a的值不能被修改.如果要修改a的值,有以下两种 ...

  7. 使用maven整合mybatis时出现org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

    分析原因是mybatis的映射文件的问题,首先进行分析排查: 1.检查mapper接口和对应的xml文件的包名是否对应 2.检查xml文件的namespace与mapper接口的包名是否对应 3.检查 ...

  8. JAVA运行环境 和 Java Applet的运行环境 的区别

    Java小程序,也就是Java Applet,可以在Web浏览器中运行.Java Applet必须以<applet>脚本的形式嵌入到HTML页面中,才能在web浏览器中运行. 之前总以为本 ...

  9. Jmeter之『JSR223脚本』

    Json处理(通过JS) 对于Json字符串,需要使用单引号『''』(因为Json中已存在双引号) // String转为Object var jsonObj = JSON.parse('${data ...

  10. 如何选择JVM垃圾回收器?

    明确垃圾回收器组合 -XX:+UseSerialGC 年轻代和老年代都用串行收集器 -XX:+UseParNewGC 年轻代使用ParNew,老年代使用 Serial Old -XX:+UsePara ...