龙空技术网

SpringMVC知识 day03 异常处理&SSM整合

御天说书 511

前言:

今天兄弟们对“整合ssm框架常见的问题”大致比较珍视,我们都需要了解一些“整合ssm框架常见的问题”的相关内容。那么小编同时在网上汇集了一些有关“整合ssm框架常见的问题””的相关知识,希望你们能喜欢,你们快快来了解一下吧!

一、SpringMVC的异常处理

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的声明式事务管理

标签: #整合ssm框架常见的问题