SpringMVC初入门
2018/5/24 18:10:36
本文从springMVC执行流程讲起,然后创建一个Hello的例子
springMVC简介
springMVC是一个基于MVC(model,view,controller)的web框架,它提供模型-视图-控制器架构和用于开发灵活和松散耦合的web应用组件,其中
模型(model)用于封装数据,传输浏览器的请求数据,并用于页面展示数据,通常由JavaBean组成;
视图(view)用于渲染数据,简单点说就是负责把把数据展示来,通常就是jsp文件或者ft文件;
控制器(controller)负责模型于视图的交流,获取请求创建合适的模型,然后跳转到对应视图
其中1,DispatcherServlet是前置控制器(中央调度器),是springMVC的核心文件,配置在web.xml中,拦截匹配的请求,然后根据请求的不同去调度不同的组件,控制流程;
2,HanlerMapping是处理器映射器,主要控制浏览器访问的url地址以及对应的Controller,他会把地址和控制器以key和value样的形式进行存储,key是url地址,value是控制器;
3,Handler处理程序的意思,也就是控制器(controller);
4,ViewResolver接口是视图名称和真正的视图之间提供映射;
5,View接口用于处理请求把真正的视图提供给用户,把数据进行页面渲染。
首先浏览器发送请求,首先进入DispatcherServlet,这是SpringMVC的入口,由DispatcherServlet读取spring配置文件,然后根据浏览器请求的url去HanlerMapping查找对应的handler,然后访问Handler控制器,根据控制器的返回值由ViewResolver解析视图,返回真正的视图,最后经过数据渲染响应给浏览器。
初步搭建springMVC环境
这里只是一个最简单的例子,没有使用注解,只是简单使用配置文件进行配置,作为springMVC的基础学习。在开始编写代码之前,第一步就是放入jar包,进入官网下载spring的jar包,然后把lib下的jar包放入项目下lib文件夹即可。
springMVC的入口是DispatcherServlet,所以首先需要配置这个servlet,DispatcherServlet前置控制器也是一个servlet,他的配置方式和其他的servlet没有区别,都是在web.xml配置文件中配置;
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <!-- springMVC 配置开始 --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <!--springmvc-servlet.xml是servlet配置文件名称--> <param-value>/WEB-INF/springmvc-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> <!-- 容器是否启动时加载servlet --> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- springMVC 配置结束 --> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
和其他的框架一样,SpringMVC也有一个配置文件用于控制流程跳转,所以接下来在WEB-INF文件夹下创建【servlet-name】-servlet.xml,其中servlet-name是在web.xml配置文件中配置的servlet名称;
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd <!-- HandlerMapping声明 --> <bean id="simpleUrlHandlerMapping" class="org.springframework.web.servlet.handler. SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/hello">helloControl</prop><!-- key为url,value为控制器--> </props> </property> <!-- 控制器的配置 --> <bean id="helloControl" class="src.main.controller.HelloWorlld"></bean>
编写控制类,创建一个普通类,需要实现Controller,然后实现handleRequest方法;
public class HelloWorlld implements Controller { @Override public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception { ModelAndView mav = new ModelAndView("index.jsp"); mav.addObject("message","hello SpringMVC"); return mav; } }
编写页面,新建index.jsp页面
<body> ${message} </body>
最后启动tomcat就好
如有疑问,请留言通知