Spring MVC
1. HTTP
- http组成:请求行 消息头
- 响应状态码
200 请求响应成功
3XX 请求重定向 :你重新到我给你的新位置上
404 资源不存在 找不到资源
5xx 服务器代码错误
502 网关错误
- 重定向与转发的区别
- get方法与post方法区别
get方法:url 请求能够携带参数比较少,大小有限, 会在浏览器的url地址栏显示数据类容 不安全 效率高。 post 反之
2. Servlet
2.1 基本概念
- 把实现了servlet接口的java程序叫做servlet.
- 实现类myServlet —> HttpServlet接口—> GenericServlet接口 —> Servlet接口
- 重写doGet 和 doGet方法
在doGet中重写的内容
1 获取前端参数
2 调用业务层
3 视图转发 或 重定向
req.getRequestDispatcher("/WEB-INF/jsp/test.jsp").forward(req,resp)
- 编写Servlet的映射
为什么需要映射?
我们写的java程序,但是要通过浏览器访问,而浏览器需要连接Web服务器,所以我
们需要在web服务器中注册我们写的Servlet,还需给他一个浏览器能够访问的路径。
2.2 ServletContext 对象
1 共享数据:我们在这个Servlet中保存数据,可以在另外一个servlet中拿到。
2 …
3. Spring MVC
3.1 SpringMVC官网文档(English)
3.2 SpringMVC 中文文档(非官方)
3.3 DispatcherServlet(前端控制器)
1 Spring的web框架围绕DispatcherServlet设计。DispatcherServlet的作用是将请求分发到不同的处理器。
2 handlerMapping(处理器映射) handleAdapter(处理器适配) viewResolver(视图解析器)
3.4 SpringMVC工作原理
简要分析执行流程
DispatcherServlet表示前置控制器,是整个SpringMVC的控制中心。用户发出请求,
DispatcherServlet接收请求并拦截请求。
我们假设请求的url为 : http://localhost:8080/SpringMVC/hello
如上url拆分成三部分:
http://localhost:8080服务器域名
SpringMVC部署在服务器上的web站点
hello表示控制器
通过分析,如上url表示为:请求位于服务器localhost:8080上的SpringMVC站点
的hello控制器。
1 HandlerMapping为处理器映射。DispatcherServlet调用HandlerMapping,
HandlerMapping根据请求url查找Handler。
HandlerExecution表示具体的Handler,其主要作用是根据url查找控制器,
如上url被查找控制器为:hello。
HandlerExecution将解析后的信息传递给DispatcherServlet,如解析控制器映射等。
2 HandlerAdapter表示处理器适配器,其按照特定的规则去执行Handler。
Handler让具体的Controller执行。
Controller将具体的执行信息返回给HandlerAdapter,如ModelAndView。
HandlerAdapter将视图逻辑名或模型传递给DispatcherServlet。
3 DispatcherServlet调用视图解析器(ViewResolver)来解析HandlerAdapter传递
的逻辑视图名。
视图解析器将解析的逻辑视图名传给DispatcherServlet。
DispatcherServlet根据视图解析器解析的视图结果,调用具体的视图。
最终视图呈现给用户。
3.5 SpringMVC注解开发
1 @RestController 与 @Controller 区别
@Controller:编写controller,完善前端视图和controller之间的对应 return到哪个试图。
@RestControllerrerurn的结果不会视图解析器解析,返回字符串,数据返回json格式。
2 kuangshen笔记
第一个MVC程序