传统Servlet应用
- Servlet组件:Servlet、Filter、Listener
- servle
- 实现
- URL映射
- @WebServlet(urlPatterns = "/my/Servlet")
- 注册
- ServletComponentScan:扫描写servlet的包
- Servlet注册:Servlet注解、Spring Bean、RegistrationBean
- 异步非阻塞:异步Servlet、非阻塞Servlet(默认)
- 异步Servlet
- @WebServlet(urlPatterns = "/myServlet", asyncSupported = true) 需要手动开启asyncSupported为true
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 异步上下文
AsyncContext asyncContext = req.startAsync();
asyncContext.start(()->{
try{
resp.getWriter().println("hello world");
// 进行显示完成
asyncContext.complete();
} catch (Exception e){
e.printStackTrace();
}
});
}
Spring Web MVC应用
- Web MVC视图:
- 视图
- ViewResolver
- VIew
- void render(@Nullable Map<String, ?> var1, HttpServletRequest var2, HttpServletResponse var3)
- 模板引擎[不同的模板引擎对应不同ViewResolver]
- 内容协商[存在多个模板引擎的情况下的一个模板引擎选择]
- ContentNegotiationFigurer
- ContentNegotiationStrategy
- ContentNegotiationViewResolver
- 异常处理[Spring boot自动完成]
- @ExceptionHandler
- HandlerExceptionResolver
- BasicErrorController(Spring Boot)
- Web MVC REST:
- 资源服务
- @RequestMapping
- @ResponseBody
- @RequestBody
- 资源跨域
- CrossOrigin[告诉浏览器那些是可以跨域的]
- WebMvcConfigurer
- default void addCorsMappings(CorsRegistry registry)
- 传统解决方案
- 服务发现
- Web MVC核心:
- 处理流程
- 核心组件
- DispatcherServlet
- HandlerMapping
- HandlerAdapter[进行类型转换]
- ModelAndView