springMVC(一)

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文件夹即可。

  1. 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>
    
  2. 和其他的框架一样,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>
    

  3. 编写控制类,创建一个普通类,需要实现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;
        }
    
    }
    
  4. 编写页面,新建index.jsp页面

    <body>
         ${message}
    </body>
    

最后启动tomcat就好

如有疑问,请留言通知

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值