二十、MVC的WEB框架(Spring MVC)

一、Spring MVC

运行原理:客户端请求提交到DispatcherServlet,由DispatcherServlet控制器查询HandlerMapping,找到并分发到指定的Controller中,然后Controller调用业务逻辑处理后,返回ModelAndView。DispatcherServlet查询一个或者多个ViewResoler视图解析器,找到ModelAndView指定的视图,然后视图负责将结果显示到客户端。

1、同样还是导入相应的jar包,将用到的jar包,导入到项目的WebContent/WEB-INF/lib目录下。

2、web.xml文件

在WEB-INF目录下创建一个web.xml文件,用来配置Spring MVC的入口DispatcherServlet(类似structs2配置的StructsPrepareAndExecuteFilter过滤器),目的就是把所有的请求都提交给DispatcherServlet处理。

  注:<servlet-name>springmvc</servlet-name>servlet名字的配置,方便配置springmvc的servlet.xml名字对应,springmvc-servelt.xml。

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4 xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
        <servlet>
            <servlet-name>springmvc</servlet-name>
            <!--配置springMVC的分发器-->
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>springmvc</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
</web-app>

3、创建springmvc-servlet.xml

  在WEB-INF目录下创建springmvc-servlet.xml,文件名与web.xml的

标签<servlet-name>springmvc</servlet-name>配置的名字对应。

springmvc-servlet.xml是Spring MVC的映射配置文件,当有访问的路径为/index,它会把请求交给id=indexController的bean处理这个请求,这个类是IndexController

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-/SPRING//DTD BEAN//EN"
    "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans>
        <bean id="simpleUrlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
            <property name="mappings">
                <props>
                    <prop key="/index">indexController</prop>
                </props>
            </property>
        </bean>
        <bean id="indexController" class="com.demo.controller.IndexController"></bean>
    </beans>

4、创建控制器类IndexController

控制器IndexController实现接口Controller,提供方法handleRequest来处理请求。然后Spring MVC会通过ModelAndView对象把模型model和视图view结合在一起。

package com.demo.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

public class IndexController implements Controller{
    pubic ModelAndView handleRequest(HttpServeltRequest request,HttpServletResponse response) throws Exception{
        ModelAndView mav=new ModelAndView("index.jsp");
        mav.addObject("name","I love you!");//模型数据是product,内容是I love you
        return mav;
    }
}

5、创建index.jsp

在WebContent目录下创建一个index.jsp,然后通过EL表达式获取name的内容

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false"%>
<h1>${name}</h1>

6、原理总结:

  6.1、当用户访问/index

  6.2、根据web.xml中配置,所有的访问都会经过DispatcherServlet处理,然后进入SpringMVC处理流程。

  6.3、根据配置文件springmvc-servlet.xml,访问路径/index,然后进入到IndexController控制器类。

  6.4、在IndexController控制器中指定跳转页面到index.jsp。并传递name的数据

  6.5、在index.jsp显示name的数据。

原文地址:https://www.cnblogs.com/drq1/p/8583555.html