Spring -MVC
servlet
网络请求和响应
- 请求方式
▼text复制代码`get`和`post`的区别 `get`请求: 1. 请求参数在url中, 2. 请求参数有长度限制 3. 请求参数不安全 4. 请求参数类型只能是`String` 5. 可以缓存 `post` 1. 请求参数在请求体中 2. 请求参数没有长度限制 3. 请求参数安全 4. 请求参数类型没有限制 5. 不可以缓存
- 状态码
▼text复制代码200: 请求成功 302: 重定向 404: 请求资源不存在 500: 服务器内部错误
创建一个 Servlet
- 创建一个类, 继承
HttpServlet类 - 重写
service方法 参数为HttpServletRequest和HttpServletResponse - 在
web.xml中配置servlet和servlet-mapping标签
servlet的生命周期
- 创建
servlet对象 - 调用
init方法 - 调用
service方法 - 调用
destroy方法 - 销毁
servlet对象 servlet对象被垃圾回收器回收
LoadOnStartup
LoadOnStartup标签的作用是在服务器启动时就创建servlet对象LoadOnStartup标签的值越小, 优先级越高LoadOnStartup标签的值为负数时, 表示在第一次访问时创建servlet对象
Json 格式数据
- Json 和 XML 的区别
▼text复制代码1. Json 的数据量比 XML 小 2. Json 的解析速度比 XML 快 3. Json 的数据格式比 XML 简单
-
Json 的数据格式
- 对象: {"name": "张三", "age": 18}
- 数组: [{"name": "张三", "age": 18}, {"name": "李四", "age": 19}]
- 对象引用: {"name": "张三", "age": 18, "friend": {"name": "李四", "age": 19}}
Json 的解析
1.Js和Json的相互转换
▼text复制代码1. JSON.stringify(js对象) 将js对象转换为json字符串 2. JSON.parse(json字符串) 将json字符串转换为js对象
- Java中的Json的相互转换
- jackson的使用
▼text复制代码1. 将java对象转换为json字符串 1. 导入jackson的jar包 2. 创建ObjectMapper对象 3. 调用writeValueAsString方法 如: objectMapper.writeValueAsString(user) 2. 将json字符串转换为java对象 1. 导入jackson的jar包 2. 创建ObjectMapper对象 3. 调用readValue方法 如: objectMapper.readValue(json字符串, User.class)
- fastjson的使用
▼text复制代码1. 将java对象转换为json字符串 1. 导入fastjson的jar包 2. 调用toJSONString方法 如: JSON.toJSONString(user) 2. 将json字符串转换为java对象 1. 导入fastjson的jar包 2. 调用parseObject方法 如: JSON.parseObject(json字符串, User.class)
SpringMVC
SpringMVC基本原理
MVC思想
- 前端发送请求--> 控制器统一处理--->调用模型方法,返回模型数据
- 后端把模型数据返还视图(web 中不支持)--->视图--->前端
- 控制器也可以选择视图 --->前端
为什么使用Spring-MVC
- 低耦合,灵活性和扩展性高
- 安全,效率高
- 与spring 无缝衔接
前端控制器
有没有的区别
- 无:多个用户-->多个请求---> 多个servlet
- 有:多个用户-->多个请求---> 一个servlet
配置前端控制器
- 在 main 目录新建 webapp/WEB-INF/web.xml,内容如下:
▼xml复制代码<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <!-- Spring MVC 前端控制器--> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 指定 Spring 容器启动加载的配置文件--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:mvc.xml</param-value> </init-param> <!-- Tomcat 启动初始化 --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
- 创建控制器类
- mvc.xml 配置文件
▼xml复制代码<!-- 配置 IoC DI 注解解析器,让 Spring 我们创建 HelloController 类的对象 --> <context:component-scan base-package="cn.wolfcode.web.controller"/> <!-- MVC 注解解析器 --> <mvc:annotation-driven/>
常用注解
RequestMapping 注解
RequestMapping 注解是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。还可以限定请求类型和响应类型等。
@ResponseBody注解
将方法的返回值转换成json并响应给浏览器
MVC 注解解析器
配置了会往容器中存入 RequestMappingHandlerMapping、RequestMappingHandlerAdapter、ExceptionHandlerExceptionResolver 等三个 bean。除此之外:
- 支持使用 ConversionService 实例对表单参数进行类型转换。
- 支持使用 @NumberFormat、@DateTimeFormat 注解完成数据格式化操作。
- 支持使用 @Valid 注解对 JavaBean 实例进行 JSR303 验证。
- 支持使用 @RequestBody 和 @ResponseBody 注解读写 JSON。
参数接受
基本类型
- 通过参数名接受参数
- 通过注解接受参数
包装类型
- 通过参数名接受参数
- 通过注解接受参数
数组类型
- 通过参数名接受参数
- 通过注解接受参数
集合类型
- 通过参数名接受参数
- 通过注解接受参数
自定义类型
- 通过参数名接受参数
- 通过注解接受参数
时间类型
- 通过参数名接受参数
- 通过注解接受参数
▼text复制代码@DateTimeFormat(pattern = "yyyy-MM-dd")
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论

