资讯专栏INFORMATION COLUMN

构建Spring Web应用程序

yeyan1996 / 1082人阅读

摘要:构建应用程序映射请求到控制器透明地绑定表单参数校验表单提交跟踪的请求发起请求携带请求和表单信息到前端控制器查询处理器映射发送给选中的控制器将请求连同模型和视图名发送回使用视图解析器来将逻辑视图名匹配为一个特定的视图实现视图的实现

构建Spring Web应用程序

映射请求到Spring控制器

透明地绑定表单参数

校验表单提交

跟踪Spring MVC的请求

发起请求->携带请求URL和表单信息到前端控制器(DispatcherServlet)->查询处理器映射(handler mapping)->
发送给选中的控制器->将请求连同模型和视图名发送回DispatcherServlet ->使用视图解析器(view resolver)来将逻辑视图名
匹配为一个特定的视图实现->视图的实现(可能是JSP),使用模型数据渲染输出返回客户端

DispatcherServlet的任务是将请求发送给Spring MVC控制器(controller),是Spring MVC的核心

处理器映射会根据请求所携带的URL信息来进行决策

控制器处理用户提交的信息,并打包模型数据输出到视图

http://sishuok.com/forum/uplo...
http://sishuok.com/forum/uplo...

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

/**
 * 配置DispatcherServlet
 */
public class SpittrWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

    /**
     * 根配置定义
     */
    @Override
    protected Class[] getRootConfigClasses() {
        return new Class[]{RootConfig.class };
    }

    /**
     * 指定配置类
     */
    @Override
    protected Class[] getServletConfigClasses() {
        return new Class[]{WebConfig.class};
    }


    /**
     * 将DispatcherServlet映射到 "/"
     */
    @Override
    protected String[] getServletMappings() {
        return new String[]{ "/" };
    }

}
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

@Configuration                                    //开启配置
@EnableWebMvc                                    //启用Spring MVC
@ComponentScan("com.leaf.u_spring.chapter05")    //扫描的包
public class WebConfig extends WebMvcConfigurerAdapter {
    
    /**
     * 配置JSP视图解析器
     * @return
     */
    @Bean
    public ViewResolver viewResolver(){
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");
        resolver.setExposeContextBeansAsAttributes(true);
        return resolver;
    }

    /**
     * 配置静态资源的处理,DispatcherServlet将对静态资源的请求转发到Servlet容器中默认的Servlet上
     */
    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }
    

}

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ComponentScan.Filter;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;

@Configuration
@ComponentScan(basePackages={"com.leaf.u_spring"},
        excludeFilters={@Filter(type=FilterType.ANNOTATION, value=EnableWebMvc.class)})
public class RootConfig {

}
搭建Spring MVC

配置DispatcherServlet:在web.xml中配置或Java代码配置(SpittrWebAppInitializer)

Spring MVC允许多种方式将客户端中的数据传送到控制器的处理器方法中:

查询参数(Query Parameter)

表单参数(Form Parameter)

路径参数(Path Parameter)

Java校验API所提供的校验注解

@AssertFalse 所注解的元素必须是Boolean类型,并且值为false

@AssertTrue 所注解的元素必须是Boolean类型,并且值为true

@DecimalMax 所注解的元素必须是数字,并且它的值要小于或等于给定的BigDecimalString值

@DecimalMin 所注解的元素比谁数字,并且它的值要大于或等于给定BigDecimalString值

@Digits 所注解的元素必须是数字,并且它的值必须有指定的位数

@Future 所注解的元素的值必须是一个将来的日期

@Max 所注解的元素必须是数字,并且它的值要小于或等于给定的值

@Min 所注解的元素必须数数字,并且它的值要大于或等于给定的值

@NotNull 所注解的元素的值不能为null

@Null 所注解的元素的值必须为null

@Past 所注解的元素的值必须是一个已经过去的日期

@Pattern 所注解的元素的值必须匹配给定的正则表达式

@Size 所注解的元素的值必须是String、集合或数组,并且它的长度要符合给定的范围

引用:《Spring In Action 4》第5章

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/71164.html

相关文章

  • Spring 指南(目录)

    摘要:指南无论你正在构建什么,这些指南都旨在让你尽快提高工作效率使用团队推荐的最新项目版本和技术。使用进行消息传递了解如何将用作消息代理。安全架构的主题指南,这些位如何组合以及它们如何与交互。使用的主题指南以及如何为应用程序创建容器镜像。 Spring 指南 无论你正在构建什么,这些指南都旨在让你尽快提高工作效率 — 使用Spring团队推荐的最新Spring项目版本和技术。 入门指南 这些...

    only_do 评论0 收藏0
  • 使用Spring实现上传文件

    摘要:要使用容器上传文件,您需要注册一个类在中。最好不要使用内容加载应用程序的文件系统。允许用户上传文件的表单从后端提供的文件列表调整文件上传限制配置文件上传时,设置文件大小限制通常很有用。 本指南将指导您完成创建可以接收HTTP多文件上传服务器应用程序的过程。 你要构建什么 您将创建一个接受文件上传的Spring Boot Web应用程序。您还将构建一个简单的HTML界面来上传测试文件。 ...

    yuanzhanghu 评论0 收藏0
  • [译]Spring入门 - Web应用程序安全

    摘要:一旦最基本的应用创建好了,你可以给他加上安全防护。一旦成功登出了,我们的应用程序重定向到到并显示相应的登陆成功的消息。这标记该应用程序是一个应用程序,并激活一些关键行为,比如创建一个。一旦应用程序启动,用浏览器访问。 原网页 https://spring.io/guides/gs/securing-web/ 本指南将引导您完成创建一个资源由Spring Security的保护的一个简单...

    AlexTuan 评论0 收藏0
  • Spring Boot 参考指南(构建系统)

    摘要:构建系统强烈建议你选择一个支持依赖管理的构建系统,并且可以使用发布到中心存储库的工件。例如,要升级到另一个,你可以将以下元素添加到你的在前面的示例中,我们指定了一个,但是任何依赖类型都可以以相同的方式被覆盖。 13. 构建系统 强烈建议你选择一个支持依赖管理的构建系统,并且可以使用发布到Maven中心存储库的工件。我们建议你选择Maven或Gradle,可以让Spring Boot与其...

    thursday 评论0 收藏0
  • Spring 指南(构建RESTful Web服务)

    摘要:构建服务本指南将引导你完成使用创建服务的过程。接下来,你将创建将为这些问候语提供服务的资源控制器。告诉在包中查找其他组件配置和服务,允许它找到控制器。显示日志输出,该服务应在几秒内启动并运行。 构建RESTful Web服务 本指南将引导你完成使用Spring创建hello world RESTful Web服务的过程。 将要构建什么 你将构建一个接受HTTP GET请求的服务: ht...

    yzzz 评论0 收藏0
  • Spring Boot 2.x基础教程:快速入门

    摘要:编写一个接口创建命名为根据实际情况修改创建类,内容如下启动主程序,使用等工具发起请求,可以看到页面返回编写单元测试用例打开的下的测试入口类。 简介 在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让你更易上手,更简单快捷地构建Spring应...

    tigerZH 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<