springmvc2
1. 简介
- springMVC中json的使用
- 文件上传
- springMVC中的拦截器
- 模板引擎freemarker themeleaf
- ssm整合
2. jackson
1.@RequestBody/ @ResponseBody处理Json数据
作用:
@RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容转换为json、xml等格式的数据并绑定到controller方法的参数上。
本例子应用:
@RequestBody注解实现接收http请求的json数据,将json数据转换为java对象。
@ResponseBody注解把controller方法的返回值(java对象)转化为json数据。
2.1.请求Json响应Json
1.添加处理json数据配置
1.编写代码【请求json、返回json】
2.编写页面ajax
3.启动测试
2.2请求pojo响应json
1.添加处理json数据配置【同上】
2.编写Controller代码
2.编写页面代码
3.测试代码
注意:
配置静态资源不拦截:
在springmvc的配置文件中配置:
<mvc:default-servlet-handler/> |
3. 文件上传
2.1导入jar文件
common.fileupload
common.io
2.2配置文件上传解析器
<!-- 文件上传解析器 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 单位byte --> <property name="maxUploadSize" value="1024000"></property> </bean> |
2.3代码编写
@RequestMapping("/upload") public void uploadPic(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request){
String originalFilename = file.getOriginalFilename(); //suffix=originalFilename.substring(originalFilename.lastIndexOf(".")); String path = request.getSession().getServletContext().getRealPath("/upload"); File dir = new File(path); dir.mkdir(); try { file.transferTo(new File(dir,originalFilename)); System.out.println("success"); } catch (IllegalStateException | IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } |
4. 拦截器
定义
l Spring Web MVC 的处理器拦截器类似于Servlet 开发中的过滤器Filter,用于对处理器进行预处理和后处理
拦截器代码编写:实现HandlerInterceptor接口:
preHandle:执行前调用此方法
postHandle:controller执行后但未返回视图前调用此方法
afterCompletion:controller执行后且视图返回后调用此方法
拦截器配置
拦截所有请求。
<!--拦截器 -->
<mvc:interceptors>
<!--多个拦截器,顺序执行 -->
<mvc:interceptor>
<mvc:mapping path="/**"/>
<mvc:exclude-mapping path="/login*"/><!—不拦截的路径-->
<bean class="com.qf.springmvc.filter.HandlerInterceptor1"></bean>
</mvc:interceptor>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="com.qf.springmvc.filter.HandlerInterceptor2"></bean>
</mvc:interceptor>
</mvc:interceptors>
案例:登录控制
5. freeMarker(见freemarker文档)
6. ssm整合
为了更好的学习 springmvc和mybatis,需要将springmvc和mybatis进行整合。
整合目标:
控制层采用springmvc
持久层使用mybatis实现。
事务:spring
1.需求
实现Book查询
2.jar包
包括:
spring(包括springmvc)
mybatis
mybatis-spring整合包
数据库驱动、第三方连接池。
3.Dao
目标:
1、spring管理SqlSessionFactory、mapper
详细参考mybatis与spring整合案例。
3.1.db.properties
3.2.log4j.properties
3.3.sqlMapConfig.xml
在classpath下创建mybatis/sqlMapConfig.xml
3.4.applicationContext-dao.xml
配置数据源、事务管理,配置SqlSessionFactory、mapper(MapperScannerConfigurer)扫描器。
3.5. Mapper.xml
4.Service
目标:
1、Service由spring管理
1、spring对Service进行事务控制。
4.2.applicationContext-transaction.xml
配置事务管理器。
4.3.Service
5.Action
5.1.springmvc.xml
5.2.web.xml
加载spring容器,配置springmvc前置控制器
5.3.Controller
6.测试