一、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的数据。

二十、MVC的WEB框架(Spring MVC)的更多相关文章

  1. 十三、MVC的WEB框架(Structs2)

    一.Structs2的应用 Structs2是基于MVC的WEB框架.一般基于框架的程序要运行成功,对于JAR包的版本,配置文件的正确性有着苛刻的要求,一个地方错了,都会导致框架程序运行出错. 1.首 ...

  2. Python开发【第二十二篇】:Web框架之Django【进阶】

    Python开发[第二十二篇]:Web框架之Django[进阶]   猛击这里:http://www.cnblogs.com/wupeiqi/articles/5246483.html 博客园 首页 ...

  3. Java框架-Spring MVC理解001

    Spring MVC理解 1.servlet--Spring MVC的本质 2.Spring MVC其实是一个工具,具体的理解可以分为两步:第一步,了解这个工具是怎么创建出来的:第二步,了解这个工具是 ...

  4. 用maven创建web项目(spring Mvc)

    用maven创建web项目(spring Mvc) 1.打开cmd进入到你要创建maven项目的目录下: 2.输入以下命令.然后根据提示输入相应的groupId.artifactId.version: ...

  5. 从一个简单案例上手Spring MVC,同时分析Spring MVC面试问题

    很多公司都会用Spring MVC,而且初级程序员在面试时,一定会被问到这方面的问题,所以这里我们来通过一个简单的案例来分析Spring MVC,事实上,我们在培训中就用这个举例,很多零基础的程序员能 ...

  6. Spring mvc系列一之 Spring mvc简单配置

    Spring mvc系列一之 Spring mvc简单配置-引用 Spring MVC做为SpringFrameWork的后续产品,Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块 ...

  7. Spring MVC(2)Spring MVC 组件开发

    一.控制器接收各类请求参数 代码测试环境: 接收各类参数的控制器--ParamsController package com.ssm.chapter15.controller; @Controller ...

  8. 第三百二十三节,web爬虫,scrapy模块以及相关依赖模块安装

    第三百二十三节,web爬虫,scrapy模块以及相关依赖模块安装 当前环境python3.5 ,windows10系统 Linux系统安装 在线安装,会自动安装scrapy模块以及相关依赖模块 pip ...

  9. 二十六:Struts2 和 spring整合

    二十六:Struts2 和 spring整合 将项目名称为day29_02_struts2Spring下的scr目录下的Struts.xml文件拷贝到新项目的scr目录下 在新项目的WebRoot-- ...

  10. 第三百二十八节,web爬虫讲解2—urllib库爬虫—状态吗—异常处理—浏览器伪装技术、设置用户代理

    第三百二十八节,web爬虫讲解2—urllib库爬虫—状态吗—异常处理—浏览器伪装技术.设置用户代理 如果爬虫没有异常处理,那么爬行中一旦出现错误,程序将崩溃停止工作,有异常处理即使出现错误也能继续执 ...

随机推荐

  1. 4、My Scripts

    脚本目录列表 1.在windows编写的shell脚本利用dos2unix命令格式化一下(P308) 2.bash命令参数调试(P309) 3.使用set命令调试部分脚本内容(P312) 4.开发脚本 ...

  2. 使用explain来分析SQL语句实现优化SQL语句

    用法:explain sql 作用:用于分析sql语句 mysql> explain select * from quser_1 where loginemail = "quctest ...

  3. react native 第三方组件react-native-swiper 轮播组件

    github地址:https://github.com/leecade/react-native-swiper 使用方法:安装:npm i react-native-swiper –save 查看模块 ...

  4. 关于js中splice方法返回的结果

    一.前言 刚刚在使用splice()方法,发现这个方法返回的是删除后的数组元素,如果要获取删除指定元素后的数组,直接调用原来的数组即可!因为splice()会改变原来数组!之前对splice()方法一 ...

  5. sql存储过程基本语法

    一.定义变量 --简单赋值 declare @a int print @a --使用select语句赋值 declare @user1 nvarchar() select @user1='张三' pr ...

  6. mysql Percona-XtraBackup backup

    全量备份FULL BACKUP https://www.percona.com/doc/percona-xtrabackup/2.4/backup_scenarios/full_backup.html ...

  7. log4net配置使用

    1.配置文件 app.config <?xml version="1.0" encoding="utf-8" ?> <configuratio ...

  8. hibernate的三种状态和缓存

    hibernate的三种状态: 1.瞬时态:对象里面没有id值,对象与session没有关联 类似,把class类new出来,不存进session 2.持久态:对象里面有id值,对象与session关 ...

  9. leecode第六十一题(旋转链表)

    /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode ...

  10. vuex深入理解 modules

    一.什么是module? 背景:在Vue中State使用是单一状态树结构,应该的所有的状态都放在state里面,如果项目比较复杂,那state是一个很大的对象,store对象也将对变得非常大,难于管理 ...