一、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. Nodejs-原型链污染

    原型链污染 javascript 原型链 在javascript中,继承的整个过程就称为该类的原型链. 每个对象的都有一个指向他的原型(prototype)的内部链接,这个原型对象又有它自己的原型,一 ...

  2. 空间向量变换,以及OpenGL的glm库简单应用

    测试项目请查看GitHub库 GLBIproject2/GLBIProject2_2

  3. Centos-获取远程主机对应端口信息-telnet

    telnet 通过 telnet协议与远程主机通信或者获取远程主机对应端口信息 格式 telnet URL/IP port

  4. Blend学习之Loading加载动画

    介绍: Blend for visual studio 与 visual studio 是有区别的 两者虽然是IDEA 但是专注的方向是不同的,前者是专注UI后者专注业务逻辑,当然你要用blend f ...

  5. 085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用

    085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用 本文知识点:构造方法调用 说明:因为时间紧张,本人写博客过程中只是 ...

  6. Java知识系统回顾整理01基础05控制流程07结束外部循环

    一.break是结束当前循环 二.结束当前循环实例 break; 只能结束当前循环 public class HelloWorld { public static void main(String[] ...

  7. MySQL 向表中插入、删除数据

    一.向表中插入一条信息 1.查看表中的数据 mysql> SELECT * FROM user; +----+---------+----------+ | id | account | pas ...

  8. IPA的动态库注入+企业重签名过程

    [摘录]之前在进行iOS测试过程中由于要获取一定数据信息,因此需要对原本的安装包进行代码注入并且重新打包安装,因此就需要使用重签名策略,在此进行分享,希望大家可以使用其中的方法来运用到自身的项目中. ...

  9. 一个故事看懂AI神经网络工作原理

    我是一个AI神经元 我是一个AI神经元,刚刚来到这个世界上,一切对我来说都特别新奇. 之所以叫这个名字,是因为我的工作有点像人类身体中的神经元. 人体中的神经元可以传递生物信号,给它输入一个信号,它经 ...

  10. MeteoInfoLab脚本示例:线性拟合

    MeteoInfoLab提供一个线性拟合函数linregress,参数是参与拟合的两个数据序列,返回拟合的斜率.截距和相关系数.有了上述拟合参数可以用polyval函数生成拟合数据(直线).然后可以将 ...