第五章 构建Spring Web应用程序

一SpringMVC起步
1,Spring MVC请求流程
见leskang写的博客,写的很不错,也可以看网上其他的,
2,搭建Spring MVC
1)配置DispatcherServlet
DispatcherServlet是Spring MVC的核心,传统方式配置在web.xml中,然后这个文件会放到war包中,本章用的是另外一种方法,使用java将DispatcherServlet配置Servlet容器中,

public class SpittrWebAppInitializer  extends AbstractAnnotationConfigDispatcherServletInitializer {
    @Override
    protected Class<?>[] getRootConfigClasses() {
       // 方法返回带有@Configuration注解的类,将会用来ContextLoaderListener创建的应用上下文中的bean
        return new Class<?>[]{ RootConfig.class };//根配置
    }
    @Override
    protected Class<?>[] getServletConfigClasses() {
 //方法返回带有@Configuration注解的类,将会用来DispatcherServlet应用上下文中的bean
        //指定配置类,使用定义在WebConfig配置类中的bean
        return new Class<?>[]{WebConfig.class};
    }
    @Override
    protected String[] getServletMappings() {
  
        //这个方法会将一个或多个路径映射到DispatcherServlet,“/”表示处理所有的请求
        return new String[]{"/"};
    }
}

上面代码如何工作的?
我们可能只需要知道扩展的AbstractAnnotationConfigDispatcherServletInitializer的任意类都会自动的配置DispatcherServlet和spring应用的上下文,Spring应用的上下文会位于应用程序的Servlet上下文中
解析AbstractAnnotationConfigDispatcherServletInitializer
2)两个应用上下文的故事
当DispatcherServlet启动的时候,他会创建Spring应用上下文,并加载配置文件或配置类声明的bean,
AbstractAnnotationConfigDispatcherServletInitializer实际会同时创建DispatcherServlet和ContextLoaderListener,
注意:这种配置DispatcherServlet,只能部署到支持Servlet3.0的服务器才能正常工作,如tomcat7或者更高版本
3)启动SpringMVC

//启用注解驱动的SpringMVC
<mvc:annotation-driven>

也可以使用基于Java进行配置WebConfig

@Configuration
@EnableWebMvc //启用SpringMVC
@ComponentScan("com")//启用组件扫描
public class WebConfig extends WebMvcConfigurerAdapter {
    //配置JSP视图解析器,会查找jsp文件在查找的时候,给视图的名称加上前缀和后缀
    @Bean
    public ViewResolver getViewResolver(){
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
        viewResolver.setPrefix("WEB-INF/views/");
        viewResolver.setSuffix(".jsp");
        viewResolver.setExposeContextBeansAsAttributes(true);
        return  viewResolver;
    }
    //配置静态资源处理
    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer){
    //我们要求DispatcherServlet将对静态资源的请求转发到Servlet容器中,而不是本身来处理
        configurer.enable();
    }
}

RootConfig

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

4)Spittr应用简介
Spittr应用有两个概念,Spitter(应用的用户),Spittle(用户发布的简短状态更新)


二,编写基本的控制器
1,@RequestMapping 这个注解声明他们要处理的请求
@Controller 声明为一个控制器


三,接受请求的输入
Spring Mvc允许一多种形式将客户端的数据传送到控制器的处理方法中包括
查询参数
表单参数
路径变量

剧吐构建与简单实现略,因为相对来说比较简单

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大道至简@EveryDay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值