一、SSM中各层作用及关系
1. 持久层:DAO层
-
DAO层:主要负责与数据库进行交互设计,用来处理数据的持久化工作。
-
DAO层的设计首先是设计DAO的接口,也就是项目中你看到的Dao包。
-
然后在Spring的xml配置文件中定义此接口的实现类,就可在其他模块中调用此接口来进行数据业务的处理,而不用关心接口的具体实现类是哪个类,这里往往用到的就是反射机制,DAO层的jdbc.properties数据源配置,以及有 关数据库连接的参数都在Spring的配置文件中进行配置。
2. 业务层:Service层
-
Service层:主要负责业务模块的逻辑应用设计。也就是项目中的Service包。
-
Service层的设计首先是设计接口,再设计其实现的类。也就是项目中的service+impl包。
-
接着再在Spring的xml配置文件中配置其实现的关联。这样我们就可以在应用中调用Service接口来进行业务处理。
-
最后通过调用DAO层已定义的接口,去实现Service具体的实现类。
3. 控制层/表现层:Controller层(Handler层)
-
Controller层:主要负责具体的业务模块流程控制。
-
Controller层通过要调用Service层的接口来控制业务流程,控制的配置也同样是在Spring的xml配置文件里面,针对具体的业务流程,会有不同的控制器。
4. View层 (属于springMVC模块)
-
负责前台jsp页面的展示,此层需要与Controller层结合起来开发。
-
Jsp发送请求,controller接收请求,处理,返回,jsp回显数据。
二、SSM工作流程
jsp页面发送信息 <--> controller接受用户请求(接受参数),并进行相应的处理 <-->Service层完成具体的业务逻辑 <--> Dao对数据库进行操作 <-->数据库
三、Mark在模块中使用过的技术
1. @RequestMapping()
SpringMVC用来为控制器指定可以处理那些URL请求,其中可带value,method,params,heads等映射条件
2. @PathVariable
通过@PathVariable可将URL中占位符参数绑定到控制器处理方法的入参中
3. @RequestParam绑定请求参数值
在处理方法入参处使用@RequestParam可以把请求参数传递给请求方法
4. 使用POJO对象绑定请求参数值
SpringMVC会按请求参数名和POJO属性名进行自动匹配,自动为该对象填充属性值。支持级联属性。
5. 处理静态资源
在SpingMVC的配置文件中配置,静态资源放在WebContent根目录下
<mvc:default-servlet-handler/>
<mvc:annotation-driven></mvc:annotation-driven>
6. 处理JSON
1. 加入jar包
2. 编写目标方法,使其返回JSON对应的对象或集合
3. 在方法上添加@ResponseBody注解
7. resultMap,实现高级结果集映射
1. id——一个ID结果,标记结果为ID可以帮助提高整体效能
2. result——注入到字段或JavaBean属性的普通结果
3. assosiation——一个复杂的类型关联,可以指定联合的javaBean对象
4. collection——复杂类型的集
8. URL中的中文参数乱码问题
varia= new String(dirName.getBytes("ISO-8859-1"), "utf8");