网站建设方向课程苏州网站建设选苏州梦易行

news/2025/9/24 8:46:43/文章来源:
网站建设方向课程,苏州网站建设选苏州梦易行,罗湖高端网站建设费用,wordpress 扒站教程文章目录 前言一、SpringMvc1、简介2、核心组件和调用流程2.1 涉及组件的理解 3、小案例快速体验3.1场景需求3.1.1 导入依赖3.1.2 controller声明3.1.3 核心配置类3.1.4 环境搭建3.1.6 配置tomcat3.1.7 测试 二、SpringMvc 接收参数1.路径设置注解2、param接收参数四种类型2.1 … 文章目录 前言一、SpringMvc1、简介2、核心组件和调用流程2.1 涉及组件的理解 3、小案例快速体验3.1场景需求3.1.1 导入依赖3.1.2 controller声明3.1.3 核心配置类3.1.4 环境搭建3.1.6 配置tomcat3.1.7 测试 二、SpringMvc 接收参数1.路径设置注解2、param接收参数四种类型2.1 直接接收值2.2 RequetParam2.3 一名多值2.4 实体类型 3、路径参数接收4、json格式接收参数5、EnableWebMvc 注解6、接收请求头和cookie6.1 接收请求头6.2 接收Cookie 7、原生API的获取8、共享域对象操作8.1 属性共享域回顾 接收参数总结![在这里插入图片描述](https://img-blog.csdnimg.cn/27a784ecdfb44831aa7c452a741dee64.png) 前言 再此之前我已经学习也发过了关系mavenSpringFramework以及Mybatis的文章了 现在我们开始来学习关于SpringMvc这个控制层框架。 一、SpringMvc 1、简介 Spring Web MVC是基于Servlet API构建的原始Web框架从一开始就包含在Spring Framework中。正式名称“Spring Web MVC”来自其源模块的名称 spring-webmvc 但它通常被称为“Spring MVC”。 在没有SpringMvc该框架之前我们都是使用servlet以及过滤器等来接收前端信息或者返回给用户信息Springmvc可以帮助我们 1. 简化前端参数接收( 形参列表 )2. 简化后端数据响应(返回值)这也是Springmvc最主要的两个功能。 2、核心组件和调用流程 Spring MVC与许多其他Web框架一样是围绕前端控制器模式设计的其中中央 Servlet DispatcherServlet 做整体请求处理调度 除了DispatcherServletSpringMVC还会提供其他特殊的组件协作完成请求处理和响应呈现。 2.1 涉及组件的理解 DispatcherServlet : SpringMVC提供我们需要使用web.xml配置使其生效它是整个流程处理的核心所有请求都经过它的处理和分发[ CEO ]HandlerMapping : SpringMVC提供我们需要进行IoC配置使其加入IoC容器方可生效它内部缓存handler(controller方法)和handler访问路径数据被DispatcherServlet调用用于查找路径对应的handler[秘书]HandlerAdapter : SpringMVC提供我们需要进行IoC配置使其加入IoC容器方可生效它可以处理请求参数和处理响应数据数据每次DispatcherServlet都是通过handlerAdapter间接调用handler他是handler和DispatcherServlet之间的适配器[经理]Handler : handler又称处理器他是Controller类内部的方法简称是由我们自己定义用来接收参数向后调用业务最终返回响应结果[打工人]ViewResovler : SpringMVC提供我们需要进行IoC配置使其加入IoC容器方可生效视图解析器主要作用简化模版视图页面查找的但是需要注意前后端分离项目后端只返回JSON数据不返回页面那就不需要视图解析器所以视图解析器相对其他的组件不是必须的[财务] 自己的理解 在我们前端访问页面时需要访问一个地址该访问页面会调用我们java中的一个方法HandlerHandlerMapping 相当于将我们的访问地址与该Handler 映射访问所有地址都会先经过DispatcherservletCEO去查HandlerMapping秘书有没有该地址对应的方法如果有接着HandlerAdapter经理服务它是handler与dispatchersevlet的一个适配器用来将我们的request内容变为我们handler可以直接接收的字符同时也可以将handler返回的json等变回浏览器支持的格式ViewResovler财务可以简化模板视图页面的查找可以添加一个统一的前缀与后缀比如前缀为 cky/ 后缀为.html 如果我们直接返回 login 就会自动拼接成cky/login.html 会自动去返回该模板页面。ViewResovler并不是必须的如果后端不返回页面就不需要视图解析器。 3、小案例快速体验 3.1场景需求 ![在这里插入图片描述](https://img-blog.csdnimg.cn/11b2a36dcd1e476a9e2d5851e46bfb32.png 创建一个idea maven项目(注意导成web项目)编写handler方法请求响应一个输出。 3.1.1 导入依赖 propertiesspring.version6.0.6/spring.versionservlet.api9.1.0/servlet.apimaven.compiler.source17/maven.compiler.sourcemaven.compiler.target17/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding /propertiesdependencies!-- springioc相关依赖 --dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion${spring.version}/version/dependency!-- web相关依赖 --!-- 在 pom.xml 中引入 Jakarta EE Web API 的依赖 --!--在 Spring Web MVC 6 中Servlet API 迁移到了 Jakarta EE API因此在配置 DispatcherServlet 时需要使用Jakarta EE 提供的相应类库和命名空间。错误信息 “‘org.springframework.web.servlet.DispatcherServlet’is not assignable to ‘javax.servlet.Servlet,jakarta.servlet.Servlet’” 表明你使用了旧版本的Servlet API没有更新到 Jakarta EE 规范。--dependencygroupIdjakarta.platform/groupIdartifactIdjakarta.jakartaee-web-api/artifactIdversion${servlet.api}/versionscopeprovided/scope/dependency!-- springwebmvc相关依赖 --dependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion${spring.version}/version/dependency/dependencies3.1.2 controller声明 Controller public class HelloController {//handlers/*** handler就是controller内部的具体方法* RequestMapping(/springmvc/hello) 就是用来向handlerMapping中注册的方法注解!* ResponseBody 代表向浏览器直接返回数据!*/RequestMapping(/springmvc/hello)ResponseBodypublic String hello(){System.out.println(HelloController.hello);return hello springmvc!!;} } 3.1.3 核心配置类 声明springmvc涉及组件信息的配置类 //TODO: SpringMVC对应组件的配置类 [声明SpringMVC需要的组件信息]//TODO: 导入handlerMapping和handlerAdapter的三种方式//1.自动导入handlerMapping和handlerAdapter [推荐]//2.可以不添加,springmvc会检查是否配置handlerMapping和handlerAdapter,没有配置默认加载//3.使用Bean方式配置handlerMapper和handlerAdapter EnableWebMvc Configuration ComponentScan(basePackages com.atguigu.controller) //TODO: 进行controller扫 //WebMvcConfigurer springMvc进行组件配置的规范,配置组件,提供各种方法! 前期可以实现 public class SpringMvcConfig implements WebMvcConfigurer {Beanpublic HandlerMapping handlerMapping(){return new RequestMappingHandlerMapping();}Beanpublic HandlerAdapter handlerAdapter(){return new RequestMappingHandlerAdapter();}} 3.1.4 环境搭建 对于使用基于 Java 的 Spring 配置的应用程序建议这样做如以下示例所示 //TODO: SpringMVC提供的接口,是替代web.xml的方案,更方便实现完全注解方式ssm处理! //TODO: Springmvc框架会自动检查当前类的实现类,会自动加载 getRootConfigClasses / getServletConfigClasses 提供的配置类 //TODO: getServletMappings 返回的地址 设置DispatherServlet对应处理的地址 public class MyWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {/*** 指定service / mapper层的配置类*/Overrideprotected Class?[] getRootConfigClasses() {return null;}/*** 指定springmvc的配置类* return*/Overrideprotected Class?[] getServletConfigClasses() {return new Class?[] { SpringMvcConfig.class };}/*** 设置dispatcherServlet的处理路径!* 一般情况下为 / 代表处理所有请求!*/Overrideprotected String[] getServletMappings() {return new String[] { / };} }3.1.6 配置tomcat 注意选择 Tomcat Server 之后又出现了Tomcat 8080 in use的问题 解决办法点击此处 3.1.7 测试 二、SpringMvc 接收参数 1.路径设置注解 package com.cky.controller;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; Controller //组件 ResponseBody //直接返回给浏览器信息 RestController //ControllerResponseBody RequestMapping(/user) public class UserContorller {RequestMapping //什么都不加 表示直接使用类方法上的访问地址public String index(){return null;}GetMapping(/login)RequestMapping(value /login,method RequestMethod.GET)public String login(){return null;}RequestMapping(/register)public String register(){return null;} } 注解 /*** RequestMapping 地址映射* RequestMapping 对/的要求不高 比如/user/login 也可以写成 user/login 或者/user/login/* WebSevrlet 开头就必须加/* 1、精准地址可以1个也可以多个 多个的时候 用{地址1地址2...}* 2、模糊地址 * * 表示一层模糊 **表示任意层模糊* 比如 user/* 》user/a user/b 等* user/** 》 user/a/b/... user 等* 3、类上和方法上添加ReqquestMapping 的区别* 类上 可以不加 加的话 表示一个通用的地址* 方法上必须加 表示精准的访问地址* 如果类上没有 则直接使用方法上的* 如果类上有 访问地址就是类上方法上的* 4、请求方式指定* get、post、put、delete* 客户端-http-ds-handler* 默认不加请求方式情况 是任何访问都可以* 请求方式指定 比如 RequestMapping(value /user/login,method RequestMethod.POST)* 可以多个 RequestMapping(value /user/login,method {RequestMethod.POST,RequestMethod.GET})* 如果请求方式不正确会返回405异常* 5、注解进阶 这种只能用在方法上* get GetMapping(/login)》 RequestMapping(value /login,method RequestMethod.GET)* post PostMapping(/login)* put PutMapping(/login)* delete DeleteMapping(/login)*/2、param接收参数四种类型 2.1 直接接收值 直接接值 可传可不传 不传不会报错 传值必须与形参名相同 对于这种不用返回视图函数的 记得加上 ResponseBody //表示我们直接向浏览器返回数据 否则浏览器会报错 RequestMapping(emp/login)public String login(String name,Integer age){System.out.println(name:name,age:age);return name:name,age:age ;}2.2 RequetParam //RequestParamname/value“重置参数名”requiredtrue/false 【默认为true,当配置为false时我们可以配置默认值】defaultValue // 注解 默认是必须传值 当设置为false时 可以设置默认值 RequestMapping(emp/register)public String register(RequestParam(value user,required false,defaultValue root) String username, int pwd){System.out.println(name:username,pwd:pwd);return name:username,pwd:pwd ; }2.3 一名多值 参数上必须要加上RequestParam不然就会只将一个值 直接传给列表接收 //一key 多值RequestMapping(emp/test)public String test(RequestParam ListString hbs){System.out.println(hbs);return ok;}2.4 实体类型 首先要有实体类 有get和set方法 package com.cky.pojo;import lombok.Data;Data public class Employee {private String name;private int age; } //实体类接收RequestMapping(emp)public String employee(Employee employee){System.out.println(employee);return employee.getName();}}性来传值实体类属性可以直接再实体类上设置默认值。3、路径参数接收 比如 user/root/123456 root 和123456 是我们要接收的参数 在这里 我们就要设置动态路径参数 {key}代表这里是路径参数 参数上 要加PathVariable 注解 证明接收的是路径参数 否则会按照Param参数来接值 该注解 也可以重置参数名 以及可以确定是否必须传参数 以及默认值 传入时必须按照实体类属 //路径参数接收RequestMapping(path/{name}/{pwd})public String path(PathVariable String name,PathVariable Integer pwd){System.out.println(name:name,pwd:pwd);return name:name,pwd:pwd;4、json格式接收参数 前端传递 JSON 数据时Spring MVC 框架可以使用 RequestBody 注解来将 JSON 数据转换为 Java 对象。RequestBody 注解表示当前方法参数的值应该从请求体中获取并且需要指定 value 属性来指示请求体应该映射到哪个参数上。 其使用方式和示例代码如下 1、前端发送 JSON 数据的示例使用postman测试 { name: 张三, age: 18, gender: 男 }2、定义一个用于接收 JSON 数据的 Java 类例如 Data public class Person { private String name; private int age; private String gender; // getter 和 setter 略 }3、创建一个handler 在控制器中使用 RequestBody 注解来接收 JSON 数据并将其转换为 Java 对象例如 package com.cky.controller;import com.cky.pojo.Person;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.ResponseBody;ControllerResponseBodypublic class PersonController { PostMapping(/json/data) //RequestBody 代表我们接收的是信息体 //java并不接收 json的数据格式 我们需要配置 public String test(RequestBody Person person){System.out.println(person);return person.getName()person.getGender(); }} 4、配置json转换器 java原生并不接收json数据我们需要进行配置 让Handleradapter 可以进行json转换 首先导入json依赖 dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactIdversion2.15.0/version /dependency接着要在配置类上加上**EnableWebMvc**注解。效果等同于在 XML 配置中可以使用 mvc:annotation-driven 元素我们来解析mvc:annotation-driven对应的解析工作 EnableWebMvc注解表示 让HandlerAdapter配置了json转化器 5、结果 5、EnableWebMvc 注解 在配置类上添加上 该注解效果等同于在 XML 配置中可以使用 mvc:annotation-driven 元素 使用该注解 就等同于同时添加上了 我们所谓的经理Handleradapter和秘书Handlermapping同时为经理添加上了json转换器写上该注解之后其实配置类中就不用导入第三方经理和秘书的类。 可省略 Beanpublic HandlerAdapter HandlerMapping(){return new RequestMappingHandlerAdapter();}Beanpublic HandlerMapping handlerMapping(){return new RequestMappingHandlerMapping();}6、接收请求头和cookie 6.1 接收请求头 接收请求头 要加上注解 RequestHeader(xxx) xxx代表我们要接收请求头的内容 Controller ResponseBody public class HeaderContorller {RequestMapping(header)public String cookie(RequestHeader(Host) String host){return host;} }6.2 接收Cookie 可以使用 CookieValue 注释将 HTTP Cookie 的值绑定到控制器中的方法参数。 RequestMapping(save)public String save(HttpServletResponse httpServletResponse){Cookie cookienew Cookie(username,root);httpServletResponse.addCookie(cookie);//保存了一个cookie 名为username 值为rootreturn ok;}RequestMapping(cookie)//通过CookieValue 来获取相应cookie值的内容public String cookie(CookieValue(username) String name){return name;}7、原生API的获取 比如java的一些原生api我们可以在形参列表中自动获取 比如 Autowired //直接注入 ioc容器获取该类的组件对象 装配到ioc容器中private ServletContext servletContext;public String apiget(HttpServletResponse httpServletResponse, HttpServletRequest httpServletRequest, HttpSession httpSession){//接下来要进行什么操作 直接使用即可httpSession.getServletContext();httpServletRequest.getServletContext();return null;}/**对于servletContext 我们如何获取呢* 方案1: 使用request/session获取* httpSession.getServletContext();* httpServletRequest.getServletContext();* 方案2* 直接全局注入*/springmvc会在初始化容器的时候讲servletContext对象存储到ioc容器中 8、共享域对象操作 8.1 属性共享域回顾 在 JavaWeb 中共享域指的是在 Servlet 中存储数据以便在同一 Web 应用程序的多个组件中进行共享和访问。常见的共享域有四种ServletContext、HttpSession、HttpServletRequest、PageContext。 ServletContext 共享域ServletContext 对象可以在整个 Web 应用程序中共享数据是最大的共享域。一般可以用于保存整个 Web 应用程序的全局配置信息以及所有用户都共享的数据。在 ServletContext 中保存的数据是线程安全的。HttpSession 共享域HttpSession 对象可以在同一用户发出的多个请求之间共享数据但只能在同一个会话中使用。比如可以将用户登录状态保存在 HttpSession 中让用户在多个页面间保持登录状态。HttpServletRequest 共享域HttpServletRequest 对象可以在同一个请求的多个处理器方法之间共享数据。比如可以将请求的参数和属性存储在 HttpServletRequest 中让处理器方法之间可以访问这些数据。一次请求多次转发只有在服务器端跳转才有用PageContext 共享域PageContext 对象是在 JSP 页面Servlet 创建时自动创建的。它可以在 JSP 的各个作用域中共享数据包括pageScope、requestScope、sessionScope、applicationScope 等作用域。 共享域的作用是提供了方便实用的方式在同一 Web 应用程序的多个组件之间传递数据并且可以将数据保存在不同的共享域中根据需要进行选择和使用。 setAttribute getAttribute 接收参数总结

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

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

相关文章

江苏省建设工程质量监督站网站优设网专利

1.概述 本文将重点介绍通过Spring设置Hibernate 3 –我们将研究如何同时使用XML和Java配置通过Hibernate 3和MySQL设置Spring 3。 2. Hibernate 3的Java Spring配置 使用Spring和Java配置来设置Hibernate 3很简单: import java.util.Properties; import javax.sql…

教做世界美食的网站wordpress 新建页面 超链接

一、介绍 相同点: eglCreatePbufferSurface 和 eglCreateWindowSurface 都是 OpenGL ES 中用于创建不同类型的EGL表面的函数,以便在OpenGL ES中进行渲染。 不同点: 选择使用哪种表面类型取决于你的需求。如果你只是需要在内存中进行离屏渲…

服务器在国外未备案网站asp网页制作教程

1.验证(Authentication) 确认通信对方身份的过程。 2.证书(Certificate) 一份数字签名声明,用于证明某个实体(个人、公司等)的身份和公钥。证书可以是自签名的,也可以是由证书颁发…

网站开发 实训 报告门户网站开发注意事项

来源:电子产品世界CPU(Centralprocessingunit)是现代计算机的核心部件,又称为“微处理器”。对于PC而言,CPU的规格与频率常常被用来作为衡量一台电脑性能强弱重要指标。Intelx86架构已经经历了二十多个年头,而x86架构的CPU对我们大…

微信公众号模板素材网站wordpress扫码付费可见插件

在业务项目的开发中,我们经常需要将 Java 对象进行转换,比如从将外部微服务得到的对象转换为本域的业务对象 domainobject,将 domainobject 转为数据持久层的 dataobject,将 domainobject 转换为 DTO 以便返回给外部调用方等。在转…

企业建网站方案怎么制作网站镜像

串口(RS - 232) 串行接口是将FPGA连接到PC的一种简单方法。我们只需要一个收发模块。 异步发射器 它通过序列化要传输的数据来创建一个信号“TxD”。 异步接收器 它从FPGA外部接收信号“RxD”,并对其进行“反序列化”,以便在FPGA内部轻松使用。 RS-232串行接口是如何工作…

Python爬虫实现大乐透历史数据抓取

前言 公司楼下恰好毗邻中国体育彩票中心,午间饭后,与同事们总会相约前往,各自投下两注希望,既是为中国的公益事业贡献一份力量,也怀揣着对瞬间改变命运的微妙幻想。对于中奖概率的理性认知,我们并不缺乏,但内心…

【读书笔记】《深入理解计算机系统(原书第三版)》第一章 计算机系统漫游

引言 计算机系统是由硬件和系统软件组成的,它们共同工作来运行应用程序。 1.1 信息就是 位 + 上下文 ASCII标准:用一个唯一的单字节大小的整数值来表示每个字符。大部分的现代计算机系统都使用 ASCII 标准来表示文本…

如何将PPT每一页批量导出为高清JPG图片?一文讲清处理流程

如何将PPT每一页批量导出为高清JPG图片?一文讲清处理流程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consola…

实用指南:计算机视觉:基于YOLOv11 实例分割与OpenCV 在 Java 中的实现图像实例分割

实用指南:计算机视觉:基于YOLOv11 实例分割与OpenCV 在 Java 中的实现图像实例分割pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; f…

哪个公司做网站最好深圳网站建设拟解决问题

在IC设计项目的验证过程中,功能测试(通过使用测试平台)有助于定位设计错误或漏洞。这个验证过程有三个阶段:构建和启动测试平台、验证基本测试用例以及验证边界情况。 在前两个阶段,漏洞很容易被检测到,因…

百度网站地图北京专业网站制作公司

一、Spring Cloud(Base工程构建) 1.1 Spring Cloud 简述 1.1.1 Spring Cloud 版本推荐 在讲解 Spring Cloud 之前,首先推荐一下各个依赖的版本,以免出现版本错误 版本推荐 必须根据以上版本,否则可能会出现一些不…

品牌创意型网站建设山东省城乡建设厅官网

目录 1.背景介绍1.1. 项目背景1.2. 项目难点1.3. 项目环境 2. flask后端开发实现的功能3. flask部署和前后端对接3.1. flask运行配置和服务器部署3.2. flask前后端传参 4. 后端测试工具4.1. 工具介绍4.2. 工具使用 后记 1.背景介绍 1.1. 项目背景 就是前几个月临时接手了一个…

html网站开发心得体会大丰市市城乡建设局网站

来源:中国电子信息产业发展研究院10月19日,由北京市人民政府、工业和信息化部主办,工业和信息化部装备工业发展中心、中国电子信息产业发展研究院(以下简称“赛迪研究院”)等机构共同承办的“世界智能网联汽车大会”进…

互联网app下载手机优化加速有什么用

dubbo自定义了很多xml标签,例如,那么这些自定义标签是怎么与spring结合起来的呢?我们先看一个简单的例子。一 编写模型类1 packagecom.hulk.testdubbo.model;23 public classHero {4 privateString name;5 private intage;67 publicString ge…

北京网站设计济南兴田德润团队怎么样专门代写平台

点击上方蓝字关注我们(本文阅读时间:4 分钟)活动介绍▌MAUI 跨平台应用开发实战前端应用开发往往需要面对 iOS、Android、Windows 等多平台开发的问题。如能用一种开发工具进行多平台的开发,可以跨平台共享 UI 布局和设计&#xf…

电子商务公司名称大全简单大气wordpress优化软件

可以设置小程序跳转,引流也不错支持小程序后台流量主激励视频广告用户下载一次观看一次视频广告,收入非常可观支持小程序后台流量主banner广告支持全网短视频解析,苹果安卓通用支持后台无限生成卡密支持自定义文字广告支持图片广告支持小程序…

网站数据库模板下载90设计手机站

小张一年前入职,当时毕业已经一年了,一年换了4份工作。最少的才呆了一周。 小张的简历很正规,彩色打印,整整5页。技能篇写的很全,基本上市面上的技术都写到了,都是精通。面试的时候,表现也很好&…

Java实现双色球历史是否中奖查询

Java实现双色球历史是否中奖查询 在一些问答里,很多彩友都在问:如何查看自己的双色球号码在历史期次中有没有中过奖?作为开发者兼彩友,这个问题就简单了,决定解决一下这个问题,先上结果: 双色球历史是否中奖查询…

iframe引入界面有el-date-picker日期框,点击出现闪退问题处理 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …