Spring MVC:

简介:SpringMVC是一种基于Java,实现了Web MVC设计模式,请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将Web层进行职责解耦。基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,SpringMVC也是要简化我们日常Web开发

1.SpringMVC中重要组件

(1)DispatchServerlet:前端控制器,接受所有请求(如果配置“/”不包括jsp文件)

(2)HandlerMapping:解析请求格式,判断具体执行何种方法

(3)HandlerAdapter:负责调用具体的方法

(4)ViewResovler:视图解析器,解析结果,准备跳转到具体的物理视图

Req->DispatchServerlet->HandlerMapping->HandlerAdapter->Controller->ViewResovler->User

2.配置环境

(1)导入架包。大部分跟spring的配置一样,多了springmvc部分

方法一:

(2)配置web.xml文件,因为tomacat不能启用spring的功能,需要用web.xml来使tomacat加载springmvc,在这里面加载pring的配置文件。来将控制权移交给spring。即进入DispatcherServlet前端控制器中,找不到类名是,按F4可立即进入类所在的源码

若不配置<init-parm>会在/WEB-INF/<servlet-name>-servlet.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/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"><servlet><servlet-name>springmvc123</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><!-- 自启动 --><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc123</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>

(3)配置springmvc文件。此时前面已经加载了DispatcherServlet,进入解析器Handlermapping中了,在src下配置spring用到的controller控制器,adapter适配器,以及相应的view视图来跳转

此文件被web.xml中的DispatcherServlet所加载

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsd"><bean id="demo123" class="com.likui.controller.DemoController"></bean><bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"><property name="urlMap"><map><!-- 解析控制器逻辑名字 --><entry key="demo" value-ref="demo123"></entry></map></property></bean><bean id="handlerAdaper" class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean><bean id="view" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- 如果不加下面属性,那么需要自己设置视图中的跳转界面语句 --><property name="prefix" value="/"></property><property name="suffix" value=".jsp"></property></bean></beans>

(4)在src下新建controller包,在这里面写控制器执行的动作,下面为控制器执行适配器并用视图实现跳转

package com.likui.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 DemoController implements Controller{@Overridepublic ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {// TODO Auto-generated method stubSystem.out.println("执行springmvc控制器!");ModelAndView mav=new ModelAndView("main");return mav;}}

(5)新建main.jsp文件,这样就可以用view视图来跳转到他了

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body>hello!</body></html>

(6)执行效果图

右键点击运行在服务器上,在浏览器网址后面输入demo控制器名字,之后就会跳转到main.jsp界面

方法二:

3.使用注解方式来配置springmvc.xml文件

(1)springmvc.xml文件

<?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:aop="http://www.springframework.org/schema/aop"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:context="http://www.springframework.org/schema/context"  xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-3.0.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"><!-- 扫描注解 --><context:component-scan base-package="com.likui.controller"></context:component-scan><!-- 注解驱动 --><mvc:annotation-driven></mvc:annotation-driven><!-- 静态资源 --><mvc:resources location="/js/" mapping="/js/**"></mvc:resources><mvc:resources location="/css/" mapping="/css/**"></mvc:resources><mvc:resources location="/images/" mapping="/images/**"></mvc:resources></beans>

(2)相应的注解具体使用方法DemoController

package com.likui.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class DemoController {@RequestMapping("demo")public String demo() {System.out.println("demo");return "main.jsp";}}

(3)main.jsp内容

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body>hello springmvc!</body></html>

(4)执行结果

JavaWeb学习之路——SSM框架之SpringMVC(七)相关推荐

  1. JavaWeb学习之路——SSM框架之SpringMVC(八)

    SpringMVC参数传递:把内容写到方法(HandlerMethod)参数中,SpringMVC只要有这个内容,则会注入,在这里使用注解的方式来传递参数 前提使用springmvc注解功能,相应配置 ...

  2. JavaWeb学习之路——SSM框架之SpringMVC(九)

    SpringMVC跳转.视图解析器和@ResponseBody的用法 1.跳转方式 (1)默认方式字符串内容来转发 (2)设置返回值内容转发 添加redirect:资源路径·  重定向 添加forwa ...

  3. JavaWeb学习之路——SSM框架之Spring(五)

    前情提要请看JavaWeb学习之路--SSM框架之Spring(四)                                         整合Spring和Mybatis框架 1.在项目的 ...

  4. JavaWeb学习之路——SSM框架之Mybatis(三)

    数据库配置和相关类创建看上篇:JavaWeb学习之路--SSM框架之Mybatis(二) https://blog.csdn.net/kuishao1314aa/article/details/832 ...

  5. JavaWeb学习之路——SSM框架之Spring(四)

    SSM框架学习-Spring01 1,.Spring介绍 Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同 ...

  6. JavaWeb学习之路——SSM框架之Mybatis(二)

    1.简介: 框架: 是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架.前者是从应用方面而后者是从目的方面给出的定义.它是一个半 ...

  7. JavaWeb学习之路——SSM框架之Spring(六)

    AOP:面向切面编程 1.介绍--AOP:面向切面编程.正常程序都是从上到下执行相关代码,aop是在纵向执行流程中添加横切面, 从左到右的关系.不需要修改成语原有代码,它将代码动态的切入到类的指定方法 ...

  8. SSM框架:SpringMVC

    SSM框架:SpringMVC 文章目录 前言 一.回顾 1. 学习方法说明 2. 回顾MVC架构 1.什么是MVC 2.MVC的结构分析 3.Model1时代 4.Model2时代 3. 回顾Ser ...

  9. SSM框架(spring+springmvc+mybatis)+Mysql实现的社区物业管理系统(功能包含分角色,报修管理、抄表管理、车位管理、房屋管理、业主管理、投诉管理、报修统计分析等)

    博客目录 SSM框架(spring+springmvc+mybatis)+Mysql实现的社区物业管理系统 实现功能截图 系统功能 使用技术 代码 完整源码 SSM框架(spring+springmv ...

最新文章

  1. OpenCV 多层感知器训练代码示例
  2. javascript函数全解
  3. Linux tree命令
  4. 10012 - How Big Is It?
  5. ISCC2021 真作假时假亦真
  6. 一个打印螺旋数的程序
  7. gg参数:dblogreader
  8. 【Linux系统编程】I/O多路复用select、poll、epoll的区别使用
  9. 牛客网编程练习之编程马拉松:解读密码
  10. 装修材料石膏线品牌加盟类织梦模板
  11. python安装snaps_如何管理Ubuntu Snaps:没人告诉你的东西
  12. LINUX编译mate-desktop/pluma-1.26.0文本编辑器
  13. [Linux] RIO C++封装
  14. 二叉链表java_二叉树的二叉链表存储(java实现)
  15. 【Multisim仿真】双向晶闸管功能演示
  16. Java日志体系(三) jul 配置文件详解,日志示例
  17. 春运又双叒来啦!阿里出手帮你抢票
  18. 原生Android打造一个炫酷的底部导航栏
  19. 国家统计局:中国未现通货紧缩
  20. 投资理财-疯狂的2021年

热门文章

  1. style 放入css文件失效_React中使用CSS的7种方式
  2. JavaWeb生成图片验证码
  3. 八、Flume的构架,安装和基本使用
  4. 十三、前端基本功:DOM练习
  5. Kaggle入门五大步,跟着做就对了
  6. 华为诺亚开源贝叶斯优化库:超参数调优河伯、组合优化器CompBO
  7. 斯坦福助理教授马腾宇:ML非凸优化很难,如何破?
  8. ​亚马逊出品:非均匀扰动的对抗鲁棒性理论分析
  9. 当推荐系统遇上图学习:基于图学习的推荐系统最新综述
  10. CVPR 2020 | 反传统的无监督人脸旋转方案:旋转-渲染