1.1 非常处理的思路:
系统中非常包括两类:预期非常和运行时非常RuntimeException,前者通过捕获非常从而获取非常信息, 后者紧张通过规范代码开拓、测试通过手段减少运行时非常的发生。
系统的 dao、service、controller 涌现都通过 throws Exception 向上抛出,末了由 springmvc 前端 掌握器交由非常处理器进行非常处理,如下图:
1.2实现步骤
1.2.1 编写非常类和缺点页面
自定义非常类:
jsp 页面:
1.2.2 自定义非常处理器
1.2.3 配置非常处理器
二、SpringMVC 中的拦截器
2.1 拦截器的浸染
Spring MVC 的处理器拦截器类似于 Servlet 开拓中的过滤器 Filter,用于对处理器进行预处理和后处理。
用户可以自己定义一些拦截器来实现特定的功能。
谈到拦截器,还要向大家提一个词——拦截器链(Interceptor Chain)。拦截器链便是将拦截器按一定的顺 序联结成一条链。在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用。
拦截器和过滤器的差异:
过滤器是 servlet 规范中的一部分,任何 java web 工程都可以利用。
拦截器是SpringMVC框架自己的,只有利用了SpringMVC框架的工程才能用。
过滤器在 url-pattern 中配置了/之后,可以对所有要访问的资源拦截。
拦截器它是只会拦截访问的掌握器方法,如果访问的是 jsp,html,css,image 或者 js 是不会进行拦截的。
它也是 AOP 思想的详细运用。 我们要想自定义拦截器, 哀求必须实现:HandlerInterceptor 接口。
2.2 自定义拦截器的步骤:
2.2.1 第一步:编写一个普通类实现 HandlerInterceptor 接口
2.2.2 第二步: 在springmvc.xml中配置拦截器
2.3 拦截器的细节
2.3.1 拦截器的放行
放行的含义是指,如果有下一个拦截器就实行下一个,如果该拦截器处于拦截器链的末了一个,则实行掌握器中的方法。
2.3.2 拦截器中方法的解释
2.3.3 拦截器的浸染路径
2.4 拦截器的大略案例(验证用户是否登录)
2.4.1 实现思路:
1、有一个登录页面,须要写一个 controller 访问页面
2、登录页面有一提交表单的动作。须要在 controller 中处理。
2.1、判断用户名密码是否精确
2.2、如果精确 向 session 中写入用户信息
2.3、返回登录成功。
3、拦截用户要求,判断用户是否登录
3.1、如果用户已经登录。放行
3.2、如果用户未登录,跳转到登录页面
2.4.2 拦截器代码
三、SSM 整合
3.1 SSM整合图解:
3.2 环境准备
3.2.1 创建数据库和表构造
3.2.2 创建 Maven 工程
1. 创建ssm_parent父工程(打包办法选择pom,必须的)
2. 创建ssm_web子模块(打包办法是war包)
3. 创建ssm_service子模块(打包办法是jar包)
4. 创建ssm_dao子模块(打包办法是jar包)
5. 创建ssm_domain子模块(打包办法是jar包)
6. web依赖于service,service依赖于dao,dao依赖于domain
7. 在ssm_parent的pom.xml文件中引入坐标依赖
8. 支配ssm_web的项目,只要把ssm_web项目加入到tomcat做事器中即可
3.2.3 编写实体类
3.2.4 编写业务层接口
3.2.5 编写持久层接口
3.3 整合步骤
3.3.1 担保 Spring 框架在 web 工程中独立运行
3.3.1.1 第一步:编写 spring 配置文件并导入约束
3.3.1.2 第二步:利用表明配置业务层和持久层
3.3.1.3 第三步:测试 spring 能否独立运行
3.3.2 担保 SpringMVC 在 web 工程中独立运行
3.3.2.1 第一步:在 web.xml 中配置核心掌握器(DispatcherServlet)
在web.xml中配置DispatcherServlet过滤器办理中文乱码
3.3.2.2 第二步:编写 SpringMVC 的配置文件
3.3.2.3 第三步:编写 Controller 和 jsp 页面
3.3.3 整合 Spring 和 SpringMVC
3.3.3.1 目的:在controller中能成功的调用service工具中的方法。
3.3.3.2 在项目启动的时候,就去加载applicationContext.xml的配置文件,在web.xml中配置 ContextLoaderListener监听器(该监听器只能加载WEB-INF目录下的applicationContext.xml的配置文件)
3.3.3.3 在controller中注入service工具,调用service工具的方法进行测试
3.3.4 担保 MyBatis 框架在 web 工程中独立运行
3.3.4.1 第一步: 在web项目中编写SqlMapConfig.xml的配置文件
3.3.4.2 第二步:在AccountDao接口的方法上添加表明,编写SQL语句
3.3.4.3 编写测试的方法
3.3.5 整合 Spring 和 MyBatis
3.3.5.1 第一步:把SqlMapConfig.xml配置文件中的内容配置到applicationContext.xml配置文件中
3.3.5.2 第二步:在AccountDao接口中添加@Repository表明
3.3.5.3 第三步:在service中注入dao工具,进行测试
3.3.5.4 第四步: 配置Spring的声明式事务管理