SpringMvc配置与使用

什么是SpringMvc?

MVC即是围绕 DispatcherServlet 设计的一套架构模式又是一种新的思考方式;程序之间分层,分工合作,既相互独立,又协同工作。

Model(模型),提供要展示的数据;通常是由多个业务实体组合而成;包括的对象有实体类entity,属性的抽象类等,同时一个模型能为多个视图提供数据。

View(视图)代表用户交互界面,负责进行模型的展示,展示给用户的页面

Controller(控制),接收用户请求,通过视图映射器映射到指定的后台业务逻辑处理层,然后进行相关的处理,调用dao层,查询数据,并将结果封装在model中,最后将结果返回,在整个MVC的设计中Controller就相当于扮演着调度员角色。

SpringMvc的工作原理如下:

  ①:DispatcherServlet是springmvc中的前端控制器(front controller),负责接收request并将request转发给对应的处理组件.

  ②:HanlerMapping是springmvc中完成url到controller映射的组件.DispatcherServlet接收request,然后从HandlerMapping查找处理request的controller.

  ③:Cntroller处理request,并返回ModelAndView对象,Controller是springmvc中负责处理request的组件(类似于struts2中的Action),ModelAndView是封装结果视图的组件.

  ④ ⑤ ⑥:视图解析器解析ModelAndView对象并返回对应的视图给客户端.

SpringMvc的优势:

  Spring 为展现层提供的基于 MVC 设计理念的优秀的Web 框架,是目前最主流的 MVC 框架之一。
    
    Spring3.0 后全面超越 Struts2,成为最优秀的 MVC 框架。
    
    Spring MVC 通过一套 MVC 注解,让 POJO 成为处理请求的控制器,而无须实现任何接口。
    
    支持 REST 风格的 URL 请求(包含以下操作)
    GET POST PUT DELTE


 下面通过简单实例来介绍springmvc的使用

导入相关的jar包

      –commons-logging-1.1.3.jar
            –spring-aop-4.0.0.RELEASE.jar
            –spring-beans-4.0.0.RELEASE.jar
            –spring-context-4.0.0.RELEASE.jar
            –spring-core-4.0.0.RELEASE.jar
            –spring-expression-4.0.0.RELEASE.jar
            –spring-web-4.0.0.RELEASE.jar
            –spring-webmvc-4.0.0.RELEASE.jar

配置web.xml中的DispatchServlet类

        <!--向服务器注册前端控制器!  -->
        <servlet>
            <servlet-name>springDispatcherServlet</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:springmvc.xml</param-value>
            </init-param>
            <!-- 在服务器启动的时候创建Servlet对象,而不是第一次访问的时候创建 -->
            <load-on-startup>1</load-on-startup>
        </servlet>
       <!-- 指定拦截 的请求路径! -->
        <servlet-mapping>
            <servlet-name>springDispatcherServlet</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping> 

 配置拦截器

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xmlns:p="http://www.springframework.org/schema/p"  
    xmlns:mvc="http://www.springframework.org/schema/mvc"  
    xmlns:context="http://www.springframework.org/schema/context"  
    xmlns:util="http://www.springframework.org/schema/util"  
    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  
            http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"> 

      
  <!-- 使用注解映射 -->
  <context:component-scan base-package="com.etc.controller"/>      
   <mvc:annotation-driven/>
    <!-- 视图解析器,在servlet中返回字符串就可以定位到指定的文件 -->    
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"/><!-- 前缀 -->
        <property name="suffix" value=".jsp"></property><!-- 后缀 -->
    </bean>     
</beans>

创建HelloController.java

package com.my.deal.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloController {
    //地址映射
    @RequestMapping(value="/hello")  
    public  String  hello(){
        System.out.println("hello,springmvc");
        return "hello";  //hello是逻辑视图名,根据配置文件 实际路径为:  /web-inf/jsp/hello.jsp
    }

}

最后在web-inf下创建jsp文件夹,并在该文件夹下面创建hello.jsp,打开浏览器输入http://localhost:8080/xiangmu/hello

就能访问到hello.jsp了

posted @ 2019-05-09 20:02  QAQqiulin  阅读(170)  评论(0编辑  收藏  举报