一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上下文中
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允许一多种形式将客户端的数据传送到控制器的处理方法中包括
查询参数
表单参数
路径变量
剧吐构建与简单实现略,因为相对来说比较简单