SpringMVC是Spring Framework的一部分,是基于Java实现的轻量级MVC Web框架,SpringMVC框架主要围绕DispatcherServlet(Servlet调度)进行设计的,会将收到的请求使用DispatcherServlet分发到不同的Controller进行处理。SpringMVC特点:
Hello world示例
此示例中使用的是原始的方式,即实现Controller接口的方式,可以更加直观的体现SpringMVC的执行流程和原理,但是实际上,平常工作中更多的是使用注解来进行开发。
pom配置
以下只是列了常用的pom配置和可能需要的一些依赖,实际运行时也可以自己调整依赖的版本和添加其他的配置和依赖。
<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.1.9.RELEASE</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.2</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.16.10</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.13.1</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.79</version></dependency></dependencies><build><resources><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource></resources></build>
web.xml配置
给module添加了web支持之后,就会在 web/WEB-INF
目录下生成web.xml文件。
<?xml version="1.0" encoding="UTF-8"?><web-appxmlns="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:springmvc-servlet.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>
Spring配置文件
在web.xml中指定了Spring配置文件之后,接下来自然就需要继续配置Spring了。
<?xml version="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><beanclass="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/><beanclass="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"id="InternalResourceViewResolver"><propertyname="prefix"value="/WEB-INF/jsp/"/><propertyname="suffix"value=".jsp"/></bean><beanid="/hello"class="com.yun.controller.HelloController"/></beans>
实现Controller接口
由于Spring配置文件中配置了对应请求的Controller处理器,所以实现了Controller接口之后,来自浏览器的请求就会先经过接口的handleRequest进行处理,处理之后再进入到jsp页面,最后再返回给浏览器。
package com.yun.controller;import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.Controller;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;publicclassHelloControllerimplementsController { public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)throws Exception { ModelAndViewmv=newModelAndView(); mv.addObject("msg", "HelloSpringMVC!"); mv.setViewName("hello"); return mv; }}
http://www.51relaw.com/news/bencandy.php?&fid=31&id=1221