Spring MVC教程第一篇

2023-11-08

转自:

Spring MVC教程第一篇

Spring MVC是Java平台下的一个框架
Spring MVC是一个开源框架,它用于开发Java Web应用程序

Spring框架由Rod Johnson编写,在2003年6月采用Apache 2.0许可证首次发布
以下是笔者采用Spring Framework版本4.1.6编写

Spring web MVC框架提供MVC(模型 - 视图 - 控制器)架构,我们开采用此架构快速的开发Web应用程序 

  • 模型(Model):封装了应用程序数据
  • 视图(View):负责渲染模型数据,将返回的模型数据转换为HTML输出
  • 控制器(Controller):负责处理用户请求并构建适当的模型,并将其传递给视图转换为HTML

DispatcherServlet组件类

Spring Web模型 - 视图 - 控制器(MVC)框架是围绕DispatcherServlet设计的,
它处理所有的HTTP请求和响应。 Spring Web MVC DispatcherServlet请求流程如下所示:

SpringMVC处理httpRequest流程如下所示:

  1. 在接收到HTTP请求后,DispatcherServlet会检索HandlerMapping然后调用指定的Controller
  2. Controller接受请求并采用GETPOST方法进入相应的服务方法中, 服务方法根据业务逻辑设置相应的数据模型,然后返回viewName给DispatcherServlet
  3. DispatcherServlet将从ViewResolver
  4. 当视图完成DispatcherServlet将模型数据传递到最终的视图,浏览器中显示数据 

SpringMVC所需的配置

使用web.xml文件中的URL映射来映射DispatcherServlet处理的请求

例: 
    HelloWorld DispatcherServlet示例 

<web-app id="WebApp_ID" 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">

    <display-name>Spring MVC Application</display-name>

   <servlet>
      <servlet-name>HelloWeb</servlet-name>
      <servlet-class>
         org.springframework.web.servlet.DispatcherServlet
      </servlet-class>
      <load-on-startup>1</load-on-startup>
   </servlet>

   <servlet-mapping>
      <servlet-name>HelloWorld</servlet-name>
      <url-pattern>*.jsp</url-pattern>
   </servlet-mapping>

</web-app>

web.xml文件保存位置

web.xml文件将保存Web应用程序的WebContent/WEB-INF目录
HelloWeb DispatcherServlet初始化时,
框架将尝试从位于应用程序的WebContent/WEB-INF目录中的名为[servlet-name]-servlet.xml的文件加载应用程序上下文。
在本例中将使用的文件HelloWorld-servlet.xml 

SpringMVC会根据<servlet-mapping>标记指示哪些URL将由DispatcherServlet处理。

此例中规定使用 ***.jsp结尾的HTTP请求都将由HelloWorld DispatcherServlet处理。

注意事项:
       如不使用默认文件名 [servlet-name]-servlet.xml 或路径WebContent/WEB-INF
    需在web.xml中进行相关定义 ---添加servlet侦听器ContextLoaderListener 定义配置文件的位置

<web-app...>

<!-------- DispatcherServlet definition goes here----->
....
<context-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>/WEB-INF/HelloWorld-servlet.xml</param-value>
</context-param>

<listener>
   <listener-class>
      org.springframework.web.context.ContextLoaderListener
   </listener-class>
</listener>
</web-app>

-

HelloWorld-servlet.xml 

<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"
   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">

   <context:component-scan base-package="com.java265" />

   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="prefix" value="/WEB-INF/jsp/" />
      <property name="suffix" value=".jsp" />
   </bean>

</beans>

-----相关说明-----

HelloWorld-servlet.xml 

  • [servlet-name]-servlet.xml文件将用于创建定义的bean,它会覆盖在全局范围中使用相同名称定义的任何bean的定义。

  • <context:component-scan ...>标签将用于激活Spring MVC注释扫描功能,允许使用@Controller@RequestMapping等注释。

  • InternalResourceViewResolver将定义用于解析视图名称的规则。根据上面定义的规则,hello的逻辑视图将委托给位于/WEB-INF/jsp/helloworld.jsp这个视图来实现。

Controller定义

DispatcherServlet将请求委派给控制器以执行特定于其的功能 

@Controller
@RequestMapping("/hello")
public class HelloController{

   @RequestMapping(method = RequestMethod.GET)
   public String printHello(ModelMap model) {
      model.addAttribute("message", "Hello Spring MVC Framework!");
      return "helloWorld";
   }

}

创建JSP视图

Spring MVC支持许多类型的视图用于不同的表示技术。
包括 - JSP,HTML,PDF,Excel工作表,XML,Velocity模板,XSLT,JSON,Atom 和 RSS 源,JasperReports等。
 

<html>
   <head>
   <title>Spring MVC-Java265.com</title>
   </head>
   <body>
   <h2>${message}</h2>
   </body>
</html>

注意事项:
   此处${message}是Controller中设置的相关属性 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring MVC教程第一篇 的相关文章

  • Spring MVC 数据绑定入门

    一 应用intellij IDEA创建SpringMVC项目 简单介绍一下 eclipse和idea有些概念上的差别 eclipse中的workspace相当于idea中的project eclipse中的project相当于idea中的m
  • SSM myBatis 配置及自动生成Bean 和 Dao

    因为我发现在做SSM 的配置的时候 配置中出现一点问题都会导致项目打包失败或者其他问题 但是我发现网上很多都没有贴出每个配置文件的代码 如果是新手在配置上就会走很多的弯路 所以这里我贴出所有配置文件的代码 这样会方便很多新手快速的构建正确的
  • 【SpringMVC】SpringMVC和Spring集成

    文章目录 SpringMVC和Spring集成 首先目录结构如下 1 配置web xml
  • log4j:WARN No appenders could be found for logger 问题解决

    在springmvc的web项目中常常会在tomcat启动的时候出现这种提示 log4j WARN No appenders could be found for logger org springframework web context
  • jeeplus多商户商城,分销商城

    ZSCAT springcloud 多商户商城 下载 https gitee com catshen zscat sw pc h5 小程序 app uniapp集成 分销商城 积分商城 不用写xml配置 独特的日志记录方式 包含用户角色 权
  • java 用redis如何处理电商平台,秒杀、抢购超卖

    原地址 http blog csdn net u012116196 article details 51782934 一 刚来公司时间不长 看到公司原来的同事写了这样一段代码 下面贴出来 1 这是在一个方法调用下面代码的部分 java vi
  • SpringMVC如何在web.xml中配置DispatcherServlet呢?

    转自 SpringMVC如何在web xml中配置DispatcherServlet呢 下文讲述SpringMVC中对DispatcherServlet进行配置的方法分享 如下所示 实现思路 只有在web xml中Servlet处理类指向D
  • springmvc+sitemesh2+freemarker整合

    1 背景 最近在搭建自己的springmvc sitemesh2 freemarker框架时 遇到了一个问题 就是sitemesh2整合springmvc时 springmvc没有正确的渲染sitemesh2的模板页面 在一番百度之后 发现
  • 【SpringMVC】JSON注解&全局异常处理机制

    欢迎来到我的CSDN主页 我是Java方文山 一个在CSDN分享笔记的博主 在这里 我要推荐给大家我的专栏 Spring MVC 无论你是编程小白 还是有一定基础的程序员 这个专栏都能满足你的需求 我会用最简单易懂的语言 带你走进Sprin
  • org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springfr

    架构 springMVC Spring Hibernate 报错信息提示 错误 Servlet MVC方法注释方法调用失败 嵌套异常模糊映射无法映射的testzhouylcontrollerf方法 严重 StandardWrapper Th
  • Spring+SpringMVC+mybatis+Quartz整合

    Quartz与SpringMVC的整合 简介 Quartz是一个完全由java编写的开源作业调度框架 为在Java应用程序中进行作业调度提供了简单却强大的机制 Quartz允许开发人员根据时间间隔来调度作业 它实现了作业和触发器的多对多的关
  • Dubbo+spring+springmvc+mybatis+Maven+Jetty+Mysql+Ajax多框架融合学习网址收藏

    原文地址 http blog csdn net wp1603710463 article details 49232797 Dubbo spring springmvc mybatis Maven Jetty Mysql Ajax多框架融合
  • Spring boot项目设定返回数据为JSON固定格式

    1 配置处理json的配置类 package com test config import com alibaba fastjson support spring FastJsonHttpMessageConverter import or
  • AbstractUrlHandlerMapping类功能简介说明

    转自 AbstractUrlHandlerMapping类功能简介说明 下文笔者将讲述AbstractUrlHandlerMapping类的相关简介说明 如下所示 AbstractUrlHandlerMapping是AbstractHand
  • JSR303使用说明文档

    1 引言 参数校验是我们程序开发中必不可少的过程 用户在前端页面上填写表单时 前端js程序会校验参数的合法性 当数据到了后端 为了防止恶意操作 保持程序的健壮性 后端同样需要对数据进行校验 后端参数校验最简单的做法是直接在业务方法里面进行判
  • 7、Shiro+SpringMVC+oracle+maven整合

    本章节主要介绍Shiro SpringMVC oracle maven整合 并实现shiro的身份验证和授权 建表并插入数据 1 用户表 CREATETABLEusers Table user id number 10 primarykey
  • Spring MVC中如何限制Controller为POST或GET方式接收参数呢?

    转自 Spring MVC中如何限制Controller为POST或GET方式接收参数呢 在Web页面开发中 最常用的接收参数值方式有 GET和POST方式 那么SpringMVC中如何定义参数的接收方式呢 实现思路 只需在注解的时 使用m
  • SpringMVC拦截器(资源和权限管理)

    原文地址 http blog csdn net tonytfjing article details 39207551 1 DispatcherServlet SpringMVC具有统一的入口DispatcherServlet 所有的请求都
  • springmvc / /* /img/**等问题

    在配置springmvc的前端控制器 DispatcherServlet的时候有三种配置方式 action 访问以 action结尾 由DispatcherServlet进行解析 第二种 所以访问的地址都由DispatcherServlet
  • Java SpringMVC开发前的准备工作

    转自 Java SpringMVC开发前的准备工作 下文讲述Java开发前的相关准备工作 如下所示 JDK配置 tomcat配置 eclipse配置 一 JDK配置 需在开发机器上安装相应的JDK版本 然后可使用下列方法检测其是否安装成功

随机推荐

  • 解析Qt的ui_*.h文件

    mainwindow h常见的几行 namespace Ui class MainWindow private Ui MainWindow ui mainwindow cpp常见的几行 include ui mainwindow h Mai
  • MQTT协议实现Eclipse Paho学习总结一

    http blog csdn net yangzl2008 article details 8861069 一 概述 遥测传输 MQTT 是轻量级基于代理的发布 订阅的消息传输协议 设计思想是开放 简单 轻量 易于实现 这些特点使它适用于受
  • C++继承,语法+案例,超详细!!

    类的继承 继承是代码重用的一种方法 通过继承创建的新类称为 派生类 或 子类 被继承的类称为 基类 或 父类 继承即子类无需重新编写父类成员代码的情况下继承父类所有的成员 子类只需书写新增成员的代码 语法 class 子类名 继承方式 父类
  • echo打印颜色

    Linux echo命令打印带有颜色的字 一 命令格式如下 echo e 033 字背景颜色 文字颜色m字符串 033 0m 例如 echo e 033 47 30m I love Android 033 0m 其中47的位置代表背景色 3
  • 仓库管理系统GreaterWMS的安装

    本文是应网友 ubuntu 和 Nathan 要求写的 因为看起来 Nathan 比较着急 就突击了一下 因为时间仓促 错误在所难免 敬请谅解 什么是 GreaterWMS GreaterWMS是完全开源的仓库管理系统 该库存管理系统是目前
  • 云平台学习笔记(三)-MobaXterm使用

    内网 外网的IP都可以 这个界面方面可视化管理
  • MATLAB数据关联性(相关性)分析

    分析某个因素与其它因素之间的关联强弱 举个例子X0 X1 X2 X3 X4 X5分别代表热效率 煤气流量 空气流量 热值 蒸汽流量 给水流量 这里分析X1 X2 X3 X4 X5与X0的关联度 定义如下 图片摘自知乎 X0 xlsread
  • qgis导入在线地图网址

    https webst01 is autonavi com appmaptile style 3D6 26x 3D 7Bx 7D 26y 3D 7By 7D 26z 3D 7Bz 7D zmax 18 zmin 0 type xyz url
  • TortoiseGit 入门指南14:比较差异

    版本控制系统最常见的应用是查看发生了哪些变化 Git 通过比较两个 文件 或者两个 提交 的 差异 differences 来实现这个功能 对于文本文件 TortoiseGit 提供了名为 TortoiseGitMerge 的内置工具来查看
  • 图像梯度(微分)及其MATLAB求解

    1 一阶梯度 MATLAB中的gradient 函数 实现的是中心梯度 2 二阶梯度 h fspecial laplacian 获得的模板是 h 0 1667 0 6667 0 1667 0 6667 3 3333 0 6667 0 166
  • java压缩文本内容

    java压缩文本内容工具类如下 package com my util import java io ByteArrayInputStream import java io ByteArrayOutputStream import java
  • 【压测系】1.apifox 自动化压测示例

    作为后端程序员 之前使用过的接口调试工具postMan restclient等 近期看到csdn右边的小广告弹窗 我这边无意之间点击打开下载之后 被它的很多功能一下子 吸引住了 比如有压测工具的功能 自动化测试 团队协作 重要的是不收费 为
  • mysql基础,快来复习一波!

    mysql基础 快来复习一波 一 数据库服务的启动与登录 1 1 通过服务的方式启动 1 2 手动启动的方式 1 3 控制台连接数据库 1 3 1 登录格式1 u和p后面没有空格 1 3 2登录格式2 1 3 3 登录格式3 1 3 4退出
  • 49天精通Java,第12天,Java接口的作用和意义

    作者简介 哪吒 CSDN2022博客之星Top1 CSDN2021博客之星Top2 多届新星计划导师 博客专家 专注Java硬核干货分享 立志做到Java赛道全网Top N 本文收录于Java基础教程 入门篇 包含面向对象 基本数据类型 数
  • vue 自定义函数

    vue 自定义函数 存储localStorage export const setStore name content gt if name return if typeof content string content JSON stri
  • Chisel基础之Scala

    前言 Scala is yet another programming language which supports common programming paradigms We chose to use it for several
  • 格式装换到OFD

    https www yozodcs com page example html
  • 【6月第一周学习记录】Utrecht University Game&Media Technology-Computer vision计算机视觉(0):一点Linear Algebra基础

    1 Matrix rotation and translation 矩阵四则运算和平移旋转 2 homogeneous coordinates geomatric operations 齐次坐标系中的一些几何变换操作方法 平移和缩放 剪切变
  • laravel8框架-语言包的安装和配置

    1 查找 laravel框架语言包地址 根目录 resources lang 默认有个 en 语言包 2 下载 和 安装 下载地址 https packagist org 搜索 laravel lang 参考网址 https packagi
  • Spring MVC教程第一篇

    转自 Spring MVC教程第一篇 Spring MVC是Java平台下的一个框架 Spring MVC是一个开源框架 它用于开发Java Web应用程序 Spring框架由Rod Johnson编写 在2003年6月采用Apache 2