天天看点

【SpringMVC】SpringMVC基础-SpringMVC项目快速搭建、日志框架为logback分析示例运行结果

Spring MVC提供了一个DispatcherServlet来开发Web应用。

在Servlet 2.5 及以下的时候只要在web.xml下配置<code>&lt;servlet&gt;</code>元素即可。

在下面的示例中,使用的是Servlet3.0+无web.xml的配置方式,在Spring MVC里实现WebApplicationInitialzer接口实现等同于web.xml的配置。

下面实例在IDEA中基于Maven搭建零配置的Spring MVC原型项目。

pom.xml内容:

在src/main/resources目录下,新建logback.xml用来配置日志,内容如下:

将org.springframwork.web包下的类的日志级别设置为DEBUG,我们开发Spring MVC经常出现和参数类型相关的4XX错误,设置此项我们会看到更详细的错误信息。

在这里有一个注意的地方,页面的创建位置。

在src/main/resources下建立views目录,并在此目录下新建index.jsp。

内容如下:

这里的页面不放在Maven标准的src/main/webapp/WEB-INF下,在这里这么放的原因是,Spring Boot的页面是放置在src/main/resources下。

这个就是一个简单的Spring配置类。

在这里配置了一个JSP的ViewResolver,用来映射路径和实际页面的位置,其中,@EnableWebMvc注解会开启一些默认配置,如一些ViewResolver或者MessageConverter等

Spring MVC的ViewResolver,这个是Spring MVC视图(JSP下就是html)渲染的核心机制;Spring MVC里有一个接口叫做ViewResolver(我们的ViewResolver都实现该接口),实现这个接口要重写resolverViewName(),这个方法的返回值是接口View,而View的职责就是使用model、request、response对象,并将渲染的视图(不一定是html,可能是json、xml、pdf)返回给浏览器。

可能会对映射路径前缀配置为/WEB-INF/classes/views/有点奇怪,这不是我们放页面的路径啊。

这是因为看到的页面效果是运行时而不是开发时的代码,运行时代码会将我们的页面自动编译到/WEB-INF/classes/views/下、

如图:

【SpringMVC】SpringMVC基础-SpringMVC项目快速搭建、日志框架为logback分析示例运行结果

这个是编译后的路径!

这个类就是为了代替web.xml的位置的。

在这里,我们通过@RequestMapping配置URL和方法之间的映射,来访问实际的页面!

最后,将程序部署到Tomcat中,启动Tomcat,访问:

<a href="http://localhost:8080/springMVC/index">http://localhost:8080/springMVC/index</a>

【SpringMVC】SpringMVC基础-SpringMVC项目快速搭建、日志框架为logback分析示例运行结果

本篇博客涉及到的源码链接:

欢迎转载,分享是进步的源泉。