初识SpringMVC
Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。
spring的优势:
1、清晰的角色划分:前端控制器(DispatcherServlet)、请求到处理器映射(HandlerMapping)、处理器适配器(HandlerAdapter)、视图解析器(ViewResolver)、处理器或页面控制器(Controller)、验证器( Validator)、表单对象(Form Object 提供给表单展示和提交到的对象就叫表单对象)。
2、由于命令对象就是一个POJO,无需继承框架特定API,可以使用命令对象直接作为业务对象;
3、和Spring 其他框架无缝集成,是其它Web框架所不具备的;
4、可适配,通过HandlerAdapter可以支持任意的类作为处理器;
5、可定制性,HandlerMapping、ViewResolver等能够非常简单的定制;
6、功能强大的数据验证、格式化、绑定机制;
7、利用Spring提供的Mock对象能够非常简单的进行Web层单元测试;
8、本地化、主题的解析的支持,使我们更容易进行国际化和主题的切换。
9、RESTful风格的支持、简单的文件上传、约定优于配置的契约式编程支持、基于注解的零配置支持等等。
下边先搭一个小例子
1.导入pom节点
1 <dependency> 2 <groupId>org.springframework</groupId> 3 <artifactId>spring-webmvc</artifactId> 4 <version>4.2.0.RELEASE</version> 5 </dependency> 6 7 <dependency> 8 <groupId>org.springframework</groupId> 9 <artifactId>spring-web</artifactId> 10 <version>4.2.0.RELEASE</version> 11 </dependency>
2.编写spring-mvc的xml文件,为了区别与spring的核心文件我们取名就叫spring-mvc.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:context="http://www.springframework.org/schema/context" 5 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> 6 <!--开启ioc注解--> 7 <context:annotation-config/> 8 9 <!--配置视图解析器--> 10 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 11 <!--配置前后缀,这个是访问资源的前缀和后缀--> 12 <property name="prefix" value="/"></property> 13 <property name="suffix" value=".jsp"></property> 14 </bean> 15 </beans>
3.编写web.xml文件,版本使用3.0以上
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
4.在java目录下编写第一个控制器,我将他取名为TestController
1 package controller; 2 3 import org.springframework.stereotype.Controller; 4 import org.springframework.web.bind.annotation.RequestMapping; 5 6 @Controller//该注解表示这是一个控制器类,并在spring容器中声明一个Bean对象 7 @RequestMapping("/test")//设置请求地址,用在类上,表示请求到该控制器上的url 8 public class TestController { 9 @RequestMapping("/index")//该注解用到方法上,表示请求该方法的url 10 public String toIndex(){ 11 //返回值可以是String、Object、Model对象、ModelAndView对象 12 //返回值是String时,即返回的是视图名,前后缀再配置文件中配置了,所以,控制器会自动加上, 13 // 我们不必画蛇添足,自写一个视图的名称即可 14 return "index"; 15 } 16 }
5.在webapp目录下编写第一个jsp页面,取名为index.jsp
1 <%-- 2 Created by IntelliJ IDEA. 3 User: zgye 4 Date: 2019/3/14 5 Time: 19:06 6 To change this template use File | Settings | File Templates. 7 --%> 8 <%@ page contentType="text/html;charset=UTF-8" language="java" %> 9 <html> 10 <head> 11 <title>index页面</title> 12 </head> 13 <body> 14 SpringMVC的第一个项目 15 </body> 16 </html>
6.配置tomcat并启动,请求设置好的路径比如我本机请求:localhost:8080/test/index,就能看到页面了
mvc配置详解
1.Dispatcherservlet
DispatcherServlet是前置控制器,配置在web.xml文件中的。拦截 匹配的请求,Servlet拦截匹配规则要自已定义,把拦截下来的请求,依 据相应的规则分发到目标Controller来处理,是配置MVC的第一步。
2.InternalResourceViewResolver
视图名称解析器
3.以上出现的注解
@Controller 负责注册一个bean 到spring 上下文中
@RequestMapping 注解为控制器指定可以处理哪些 URL 请求