前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《Spring实战》摘录 - 12

《Spring实战》摘录 - 12

作者头像
用户1335799
发布2019-05-08 17:34:55
3190
发布2019-05-08 17:34:55
举报

111

问题: #6.3.1-1 | 配TilesConfigurer来解析定义 回答:

代码语言:javascript
复制
@Bean
public TilesConfigureer tilesConfigurer(){
        TilesConfigurer tiles = new TilesConfigurer();
        tiles.setDefinitions(new String[] {
                “/WEB-INF/layout/titles.xml”
        });

        titles.setCheckRefresh(true);
        return tiles;
}

112

问题: #6.3.1-2 | Apache Tile中的DTD是什么 回答: Apache Tiles提供了一个文档类型定义(document type definition,DTD)

113

问题: #7.1.1-1 | 如果计划使用Servlet 3.0对multipart配置的支持,那么需要使用什么来开启multipart请求 回答: DispatcherServlet的registration,那么需要使用DispatcherServlet的registration来启用multipart请求

114

问题: #7.1.2-1 | 如何创建WebApplicationInitializer实现并注册一个Servlet 回答: 通过实现WebApplicationInitializer来注册Servlet

代码语言:javascript
复制
package com.myapp.config;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration.Dynamic;
import org.springframework.web.WebApplicationInitializer;
import com.myapp.MyServlet;

public class MyServletInitializer implements WebApplicationInitializer{
    @Override
    public void onStartup(ServletContext servletContext) throws ServletException{
            Dynamic myServlet = servletContext.addServlet(“myServlet”, MyServlet.class);
                myServlet.addMapping(“/custom/**”);
        }
}

115

问题: #7.1.3-1 | 在web.xml中搭建Spring MVC 回答:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<web-app version="2.5"
    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_2_5.xsd">
        
        <context-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>/WEB-INF/spring/root-context.xml</param-value> //设置根上下文配置文件位置
        </context-param>
    
        <listener>
                <listener-class>
                        org.springframework.web.context.ContextLoaderListener //注册ContextLoader-Listener
                </listener-class>
        </listener>
    
        <servlet>
                <servlet-name>appServlet</servlet-name>
                <servlet-class>
                        org.springframework.web.servlet.DispatcherServlet //注册Dispatcher-Servlet
                </servlet-class>
                <load-on-startup>1</load-on-startup>
        </servlet>
    
        <servlet-mapping>
                <servlet-name>appServlet</servlet-mapping> //将DispatcherServlet映射到"/"
                <url-pattern>/</url-pattern>
        </servlet-mapping>
</web-app>

116

问题: #7.1.3-1 | 要在Spring MVC中使用基于Java的配置,我们需要告诉DispatcherServlet和ContextLoaderListener使用AnnotationConfigWebApplicationContext,该类的作用? 回答: 这是一个WebApplicationContext的实现类,它会加载Java配置类,而不是使用XML。要实现这种配置,我们可以设置contextClass上下文参数以及DispatcherServlet的初始化参数。

117

问题: #7.1.3-4 | 设置web.xml使用基于Java的配置 回答:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<web-app version="2.5"
    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_2_5.xsd">
        
        <context-param>
                <param-name>contextClass</param-name> //使用Java配置
                <param-value>
                        org.springframework.web.context.support = AnnotationConfigApplicationContext
                </param-value>
        </context-param>    
    
        <context-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>
                        com.habuma.spitter.config.RootConfig   //指定配置类
                </param-value>
        </context-param>
    
        <listener>
                <listener-class>
                        org.springframework.web.context.ContextLoaderListener //注册ContextLoader-Listener
                </listener-class>
        </listener>
    
        <servlet>
                <servlet-name>appServlet</servlet-name>
                <servlet-class>
                        org.springframework.web.servlet.DispatcherServlet //注册Dispatcher-Servlet
                </servlet-class>
                <init-param>
                        <param-name>contextClass</param-name>  //使用Java配置
                        <param-value>
                                org.springframework.web.context.support.AnnotationConfigWebApplicationContext
                        </param-value>
                </init-param>
                <init-param>
                        <param-name>contextConfigLocation</param-name>  //指定DispatcherServlet配置类
                        <param-value>
                                com.habuma.spitter.config.WebConfigConfig
                        </param-value>
                </init-param>
                <load-on-startup>1</load-on-startup>
        </servlet>
    
        <servlet-mapping>
                <servlet-name>appServlet</servlet-mapping> //将DispatcherServlet映射到"/"
                <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

118

问题: #7.2.1-1 | 从Spring 3.1开始,Spring内置了两个MultipartResolver的实现供我们选择,分别是 回答: CommonsMultipartResolver:使用Jakarta Commons FileUpload解析multipart请求; StandardServletMultipartResolver:依赖于Servlet 3.0对multipart请求的支持(始于Spring 3.1)。

119

问题: #7.2.1-2 | 我们还可以通过其他的构造器来限制上传文件的大小。除了临时路径的位置,其他的构造器所能接受的参数如下 回答: 上传文件的最大容量(以字节为单位)。默认是没有限制的。 整个multipart请求的最大容量(以字节为单位),不会关心有多少个part以及每个part的大小。默认是没有限制的。 在上传的过程中,如果文件大小达到了一个指定最大容量(以字节为单位),将会写入到临时文件路径中。默认值为0,也就是所有上传的文件都会写入到磁盘上。

120

问题: #7.2.1-3 | 假设我们想限制文件的大小不超过2MB,整个请求不超过4MB,而且所有的文件都要写到磁盘中。下面的代码使用MultipartConfigElement设置了这些临界值 回答:

代码语言:javascript
复制
@Override
protected void customizeRegistration(Dynamic registration) {
      registration.setMultipartConfig(
              new MultipartConfigElement("/tmp/spittr/uploads",
                                      2097152, 4194304, 0));
    }

    //如果我们使用更为传统的web.xml来配置MultipartConfigElement的话,那么可以使用<servlet>中的<multipart-config>元素,如下所示:

<servlet>
      <servlet-name>appServlet</servlet-name>
      <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
      </servlet-class>
      <load-on-startup>1</load-on-startup>
      <multipart-config>
            <location>/tmp/spittr/uploads</location>
            <max-file-size>2097152</max-file-size>
            <max-request-size>4194304</max-request-size>
      </multipart-config>
</servlet>

//<multipart-config>的默认值与MultipartConfigElement相同。与MultipartConfigElement一样,必须要配置的是<location>。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 怀英的自我修炼 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档