• 20191105 《Spring5高级编程》笔记-第16章


    第16章 Web应用程序

    16.3 MVC和Spring MVC介绍

    16.3.3 Spring MVC WebApplicationContext层次结构

    在Spring MVC中,DispatcherServlet是接受请求并将它们分发给相应控制器的中央servlet。在Spring MVC应用程序中,可以有多种用于不同目的的DispatcherServlet实例,并且每个DispatcherServlet都有自己的WebApplicationContext配置,该配置定义了servlet级别的特性。在servlet级别的WebApplicationContext配置下,Spring MVC维护者一个根WebApplicationContext,其中包含应用级别的配置。根WebApplicationContext可以供所有servlet级别的WebApplicationContext使用。

    16.3.4 Spring MVC请求生命周期

    TODO
    Spring MVC应该深入学习

    • 过滤器
    • 调度程序servlet,DispatcherServlet
    • 通用服务,包括国际化、主题、文件上传等
    • 处理映射,HandlerMapping
    • 处理程序拦截器
    • 处理程序异常解析器,HandlerExceptionResolver@ExceptionHandler
    • 视图解析,ViewResolver

    image

    16.3.5 Spring MVC配置

    要想使用基于代码的配置,必须开发实现org.springframework.web.WebApplicationInitializer接口的类。可以实现抽象类org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer(接口的子类)。
    实现了WebApplicationInitializer接口的类都会被org.springframework.web.SpringServletContainerInitializer(实现了Servlet3.0的javax.servlet.ServletContainerInitializer接口)自动检测到,该类可以在任何Servlet3.0容器中自动启动。

    image

    16.3.6 在Spring MVC中创建第一个视图

    JSPX是格式良好的XML格式的JSP。

    16.3.7 配置DispatcherServlet

    org.springframework.web.servlet.config.annotation.WebMvcConfigurer通过定义回调方法为Spring MVC定义了通过@EnableWebMvc启用的基于Java的配置。

    16.9 实现歌手信息视图

    16.9.5 启用JSR-349(bean验证)

    要在Web数据绑定过程中启用JRS-349验证,需要将@Valid注解应用于Controller类的方法入参上。

    为了提供JRS-349验证,需要定义一个验证器bean,例如使用LocalValidatorFactoryBean

    16.10 使用jQuery和jQuery UI

    16.10.6 在服务器端启用分页

    org.springframework.data.repository.PagingAndSortingRepository

    16.11 处理文件上传

    很长一段时间,标准的servlet规范不支持文件上传。因此,Spring MVC需要与其他库(最常见的是Apache Commons FileUpload库)一起使用。SpringMVC内置了对Apache Commons FileUpload的支持。
    但是,从Servlet3.0开始,文件上传成为Web容器的一项内置功能。Spring支持Servlet3.0文件上传功能。

    16.11.1 配置文件上传支持

    org.springframework.web.multipart.MultipartResolver

    org.springframework.web.servlet.support.AbstractDispatcherServletInitializer#customizeRegistration

    javax.servlet.MultipartConfigElement

    // ------------WebMvcConfigurer --------------- //
    public class WebConfig implements WebMvcConfigurer {
        @Bean
        StandardServletMultipartResolver multipartResolver() {
            return new StandardServletMultipartResolver();
        }
    }
    
    // ------------WebApplicationInitializer--------------- //
    public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
        @Override
        protected void customizeRegistration(ServletRegistration.Dynamic registration) {
            registration.setMultipartConfig(getMultipartConfigElement());
        }
        
        private MultipartConfigElement getMultipartConfigElement() {
            return new MultipartConfigElement(
                    null, MAX_FILE_SIZE, MAX_REQUEST_SIZE, FILE_SIZE_THRESHOLD);
        }
    }
    

    16.12 用Spring Security保护Web应用程序

    16.12.1 配置Spring安全性

    在Spring4.0中,引入了
    org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer,可以通过扩展该类配置Spring安全性。

    在Spring3之前,默认的登录URL为/j_spring_security_check,并且身份验证密钥的默认名称为j_usernamej_password。从Spring4开始,默认的登录URL为/login,身份验证密钥的默认名称是usernamepassword

    16.13 使用Spring Boot创建Spring Web应用程序

    Thymeleaf是一个XML/XHTML/HTML5模板引擎,可以在Web和非Web环境中使用。是Spring最适合的模板引擎,是Spring的创造者和项目负责人启动的项目,目的是为Spring MVC提供应有的模板引擎。是JSP和Tiles的实用替代方案。

    16.16 使用Thymeleaf扩展

    使用webjars

    创建Web网页的最常用框架可以以不同方式使用,方法是将它们作为依赖项添加到应用程序中,并打包为Jar(成为webjars)。

    <link href="../../public/css/bootstrap.min.css"
              th:href="@{/webjars/bootstrap/3.3.7-1/css/bootstrap.min.css}"
              rel="stylesheet" media="screen"/>
    <script src="http://cdn.jsdelivr.net/webjars/jquery/3.2.1/jquery.min.js" th:src="@{/webjars/jquery/3.2.1/jquery.min.js}"></script>
    
  • 相关阅读:
    泛型总结
    Java多线程(学习篇)
    Java线程:总结
    Java线程:线程交互
    Java线程:线程安全类和Callable与Future(有返回值的线程)
    Java线程:条件变量、原子量、线程池等
    Java线程:堵塞队列与堵塞栈
    Java线程:锁
    poj 1679 The Unique MST(唯一的最小生成树)
    poj 1659 Frogs' Neighborhood (DFS)
  • 原文地址:https://www.cnblogs.com/huangwenjie/p/11798443.html
Copyright © 2020-2023  润新知