Spring -MVC

servlet

网络请求和响应

  1. 请求方式
text
复制代码
`get`和`post`的区别 `get`请求: 1. 请求参数在url中, 2. 请求参数有长度限制 3. 请求参数不安全 4. 请求参数类型只能是`String` 5. 可以缓存 `post` 1. 请求参数在请求体中 2. 请求参数没有长度限制 3. 请求参数安全 4. 请求参数类型没有限制 5. 不可以缓存
  1. 状态码
text
复制代码
200: 请求成功 302: 重定向 404: 请求资源不存在 500: 服务器内部错误

创建一个 Servlet

  1. 创建一个类, 继承 HttpServlet
  2. 重写 service 方法 参数为 HttpServletRequestHttpServletResponse
  3. web.xml 中配置 servletservlet-mapping 标签

servlet的生命周期

  1. 创建 servlet 对象
  2. 调用 init 方法
  3. 调用 service 方法
  4. 调用 destroy 方法
  5. 销毁 servlet 对象
  6. servlet 对象被垃圾回收器回收

LoadOnStartup

  1. LoadOnStartup 标签的作用是在服务器启动时就创建 servlet 对象
  2. LoadOnStartup 标签的值越小, 优先级越高
  3. LoadOnStartup 标签的值为负数时, 表示在第一次访问时创建 servlet 对象

Json 格式数据

  1. Json 和 XML 的区别
text
复制代码
1. Json 的数据量比 XML 小 2. Json 的解析速度比 XML 快 3. Json 的数据格式比 XML 简单
  1. Json 的数据格式

    1. 对象: {"name": "张三", "age": 18}
    2. 数组: [{"name": "张三", "age": 18}, {"name": "李四", "age": 19}]
    3. 对象引用: {"name": "张三", "age": 18, "friend": {"name": "李四", "age": 19}}

Json 的解析

1.Js和Json的相互转换

text
复制代码
1. JSON.stringify(js对象) 将js对象转换为json字符串 2. JSON.parse(json字符串) 将json字符串转换为js对象
  1. 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思想

  1. 前端发送请求--> 控制器统一处理--->调用模型方法,返回模型数据
  2. 后端把模型数据返还视图(web 中不支持)--->视图--->前端
  3. 控制器也可以选择视图 --->前端

为什么使用Spring-MVC

  1. 低耦合,灵活性和扩展性高
  2. 安全,效率高
  3. 与spring 无缝衔接

前端控制器

有没有的区别

  1. 无:多个用户-->多个请求---> 多个servlet
  2. 有:多个用户-->多个请求---> 一个servlet

配置前端控制器

  1. 在 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>
  1. 创建控制器类
  2. 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。

参数接受

基本类型

  1. 通过参数名接受参数
  2. 通过注解接受参数

包装类型

  1. 通过参数名接受参数
  2. 通过注解接受参数

数组类型

  1. 通过参数名接受参数
  2. 通过注解接受参数

集合类型

  1. 通过参数名接受参数
  2. 通过注解接受参数

自定义类型

  1. 通过参数名接受参数
  2. 通过注解接受参数

时间类型

  1. 通过参数名接受参数
  2. 通过注解接受参数
text
复制代码
@DateTimeFormat(pattern = "yyyy-MM-dd")
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP