SpingMvc入门

SpingMvc入门

  • 1.MVC Spring的工作流程:
  • 2.sping mvc入门
  • 3.静态资源处理

前言

Spring MVC是一种基于Java的web应用开发框架,它采用了MVC(Model-View-Controller)设计模式来帮助开发者组织和管理应用程序的各个组件。

1.MVC Spring的工作流程:

1.客户端向服务器发送一个HTTP请求。
1.1前端控制器DispatcherServlet接收到请求,并将其分派给合适的处理器HandlerMapping。
1.2HandlerMapping根据请求的URL映射找到对应的处理器Handler。
1.3处理器Handler根据业务逻辑处理请求,并返回一个模型对象和视图名称。
1.4视图解析器通过视图名称解析出真正的视图对象。
1.5处理器Handler将模型数据传递给视图对象。
1.6视图对象使用模型数据生成最终的HTML响应。
1.7最终的HTML响应由前端控制器DispatcherServlet发送给客户端。
在整个流程中,前端控制器DispatcherServlet负责协调请求的处理,并处理一些共性的功能,如异常处理、国际化等。HandlerMapping负责将请求映射到合适的处理器Handler,处理器Handler执行具体的业务逻辑并返回模型数据和视图名称,视图解析器将视图名称解析为真正的视图对象,最后视图对象生成HTML响应。
这个工作流程可以帮助开发者将应用程序的不同组件进行有效的分离和管理,提高了代码的可维护性和可扩展性。同时,Spring MVC还提供了一些额外的功能,如数据校验、表单处理、拦截器等,以满足不同应用场景的需求。
流程图
在这里插入图片描述

2.sping mvc入门

案列
1.spring-mvc.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:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"><!--1) 扫描com.zking.zf及子子孙孙包下的控制器(扫描范围过大,耗时)--><context:component-scan base-package="com.niyin"/><!--2) 此标签默认注册DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter --><mvc:annotation-driven /><!--3) 创建ViewResolver视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- viewClass需要在pom中引入两个包:standard.jar and jstl.jar --><property name="viewClass"value="org.springframework.web.servlet.view.JstlView"></property><property name="prefix" value="/WEB-INF/jsp/"/><property name="suffix" value=".jsp"/></bean><!--4) 单独处理图片、样式、js等资源 --><!-- <mvc:resources location="/css/" mapping="/css/**"/><mvc:resources location="/js/" mapping="/js/**"/><mvc:resources location="WEB-INF/images/" mapping="/images/**"/>--><mvc:resources location="/static/" mapping="/static/**"/></beans>

2.添加依赖

<!-- jstl+standard -->
<jstl.version>1.2</jstl.version>
<standard.version>1.1.2</standard.version>
<!-- spring -->
<spring.version>5.0.2.RELEASE</spring.version>
...
<!-- spring mvc相关依赖 -->
<dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version>
</dependency>
<dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>${jstl.version}</version>
</dependency>
<dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>${standard.version}</version>
</dependency>

.配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"version="3.1"><display-name>Archetype Created Web Application</display-name><!-- Spring和web项目集成start --><!-- spring上下文配置文件 --><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-context.xml</param-value></context-param><!-- 读取Spring上下文的监听器 --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- Spring和web项目集成end --><!-- 中文乱码处理 --><filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><async-supported>true</async-supported><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- Spring MVC servlet --><servlet><servlet-name>SpringMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--此参数可以不配置,默认值为:/WEB-INF/springmvc-servlet.xml--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value></init-param><load-on-startup>1</load-on-startup><!--web.xml 3.0的新特性,是否支持异步--><async-supported>true</async-supported></servlet><servlet-mapping><servlet-name>SpringMVC</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
</web-app>

已经配好啦

案列:

package com.niyin.web;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class IndexController {
@RequestMapping("/hello")public String hello(){System.out.println("hello spring ...");return "hello";}
}
<%--Created by IntelliJ IDEA.User: 林墨Date: 2023/9/4Time: 20:59To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
springmvc你好
</body>
</html>

运行结果
在这里插入图片描述

3.静态资源处理

在spring-mvc.xml中

<mvc:resources location=“/static/” mapping=“/static/**”/>

加入即可访问到
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/129050.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

海南大学金秋悦读《乡村振兴战略下传统村落文化旅游设计》2023新学年许少辉八一新书​

海南大学金秋悦读《乡村振兴战略下传统村落文化旅游设计》2023新学年许少辉八一新书​

4、Nginx 配置实例-反向代理

文章目录 4、nginx 配置实例-反向代理4.1 反向代理实例一4.1.1 实验代码 4.3 反向代理实例二4.3.1 实验代码 【尚硅谷】尚硅谷Nginx教程由浅入深 志不强者智不达&#xff1b;言不信者行不果。 4、nginx 配置实例-反向代理 4.1 反向代理实例一 实现效果&#xff1a;使用 nginx…

14.Xaml ProgressBar控件 进度条控件

1.运行效果 2.运行源码 a.Xaml源码 <Grid Name="Grid1"><!--Orientation="Horizontal" 进度条的方向 水平的还是垂直的Value="40" 进度的数值Minimum="0" 最小值Maximum

notepad++ 配置 python 以及Anaconda中的python(已解决)

说明&#xff0c;无论是自己的电脑单独安装的python 还是Anaconda虚拟环境安装的python都是一样的。区别就是 独立安装的python 的exe文件路径添加的环境变量了&#xff0c;不需要制定它的路径直接运行下面的命令就可以&#xff0c;而Anaconda中的python.exe的文件夹并没有在虚…

RTSP流媒体服务器EasyNVR安防视频云服务平台如何手动配置Onvif探测功能?

安防监控系统EasyNVR视频云存储平台可实现设备接入、实时直播、录像、检索与回放、视频云存储、视频分发等视频能力服务&#xff0c;可覆盖全终端平台&#xff08;pc、手机、平板等终端&#xff09;&#xff0c;在智慧工厂、智慧工地、智慧社区、智慧校园等场景中有大量落地应用…

2023上半年京东运动鞋服市场数据分析(京东数据运营)

大众线下运动生活恢复&#xff0c;掀起新一轮户外潮流&#xff0c;运动热潮迭起。由此产生的运动鞋服及专业装备需求&#xff0c;为运动品牌们带来了诸多增长机会。近日各大运动品牌陆续发布上半年财报&#xff0c;回答了品牌对复苏机遇、发展挑战的应对情况。接下来结合具体数…

[ 云计算 华为云 ] 解决办法:如何更换华为云云耀云服务器L实例的镜像 | 文末送书

文章目录 问题描述分析原因解决办法文末送书《ANSYS Workbench项目分析与案例实操详解》博主推荐理由本书内容简介本书作者简介 废话在前&#xff08;直接看解决办法的这段可以过&#xff09;&#xff1a;讲道理&#xff0c;一般情况下云服务器&#xff0c;镜像是随便更换的&am…

计算机专业毕业设计项目推荐02-个人医疗系统(Java+原生Js+Mysql)

个人医疗系统&#xff08;Java原生JsMysql&#xff09; **介绍****系统总体开发情况-功能模块****各部分模块实现** 介绍 本系列(后期可能博主会统一为专栏)博文献给即将毕业的计算机专业同学们,因为博主自身本科和硕士也是科班出生,所以也比较了解计算机专业的毕业设计流程以…

《React vs. Vue vs. Angular:2023年的全面比较》

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

linux配置本地yum源

在本地部署服务器时&#xff0c;因为无法联网导致没法使用外网yum源&#xff0c;会对安装服务有些影响。 不过可以通过本地光盘部署yum源赖解决问题。 1.查看一下虚拟机是否有sr0这个文件 ll /dev/sr0 2.创建一个文件做挂载 mkdir /media/cdrom/ mount /dev/sr0 /media/cdrom…

JBoss JMXInvokerServlet 反序列化漏洞复现(CVE-2015-7501)

一、漏洞说明 JBoss中/invoker/JMXInvokerServlet路径对外开放&#xff0c;JBoss的jmx组件支持反序列化。JBoss在/invoker/JMXInvokerServlet请求中读取了用户传入的对象&#xff0c;然后我们利用Apache Commons Collections中的Gadget执行任意代码。 二、影响版本 JBoss Enter…

Nosql之Redis配置与命令

目录 关系数据库与非关系型数据库 关系型数据库 非关系型数据库 关系型数据库和非关系型数据库区别 非关系型数据库产生背景 Redis Redis简介 redis优点 速度快的原因 Redis 安装部署 redis命令 Redis 服务控制 Redis 命令工具 redis-cli redis-benchmark Redis…

痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.3)- 串行NOR Flash下载算法(J-Link工具篇)

https://www.cnblogs.com/henjay724/p/13770137.html 大家好&#xff0c;我是痞子衡&#xff0c;是正经搞技术的痞子。今天痞子衡给大家介绍的是J-Link工具下i.MXRT的串行NOR Flash下载算法设计。 在i.MXRT硬件那些事系列之《在串行NOR Flash XIP调试原理》一文中&#xff0c;痞…

开赛啦!第六届“中国法研杯”司法人工智能挑战赛精彩启幕

9月9日&#xff0c;第六届“中国法研杯”司法人工智能挑战赛&#xff08;简写为“LAIC2023”&#xff09;在福建厦门正式拉开帷幕&#xff0c;主办方中国司法大数据研究院&#xff08;以下简称“中国法研”&#xff09;以及厦门市思明区政府、厦门海丝办有关领导共同参加了启动…

尚硅谷大数据项目《在线教育之离线数仓》笔记008

视频地址&#xff1a;尚硅谷大数据项目《在线教育之离线数仓》_哔哩哔哩_bilibili 目录 P123 P124 P125 P126 P127 P128 P129 P123 Apache Superset是一个现代的数据探索和可视化平台。它功能强大且十分易用&#xff0c;可对接各种数据源&#xff0c;包括很多现代的大数…

时序分解 | MATLAB实现RIME-VMD霜冰优化算法优化VMD变分模态分解信号分量可视化

时序分解 | MATLAB实现RIME-VMD霜冰优化算法优化VMD变分模态分解信号分量可视化 目录 时序分解 | MATLAB实现RIME-VMD霜冰优化算法优化VMD变分模态分解信号分量可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 RIME-VMD【23年新算法】霜冰优化算法优化VMD变分模态分…

Advanced FX Creator v2.6e多种粒子特效与光照资源

这是一个包含动态粒子魔法2和全局照明效果的特效资源,300多个预制件,包括各种先进的效果!!! 下载链接在底部

代码随想录第46天|139.单词拆分,了解多重背包,背包总结

139.单词拆分 动规五部曲 1.确定valid数组以及下标的含义 valid[i] : 字符串长度为i的话&#xff0c;valid[i]为true&#xff0c;表示可以拆分为一个或多个在字典中出现的单词。 2.valid初始化 valid[0]一定要为true&#xff0c;否则递推下去后面都都是false了 3.递推公式…

《低代码指南》——低代码+AI,智能化的构建数字应用

LCHub低代码社区:对低代码平台在AI领域的应用及其成果进行了深入阐述。他强调,在AI时代,工程化的重要性不容忽视,同时,复杂系统建设和数据模型驱动开发也占据了核心地位。 顾伟不仅深入探讨了低代码零代码平台在业界的不同分类和使用场景,还详细解读了低代码平台的功能架…

C++ STL教程

C 标准模板库的核心包括&#xff1a;&#xff08;1&#xff09;容器&#xff08;Containers&#xff09;&#xff1b;&#xff08;2&#xff09;算法&#xff08;Algorithms&#xff09;&#xff1b;&#xff08;3&#xff09;迭代器&#xff08;iterators&#xff09; &#…