当前位置: 首页 > news >正文

青岛网站制作企业福建福州罗源建设局网站

青岛网站制作企业,福建福州罗源建设局网站,视频门户网站建设项目标书,老房装修改造哪家好#x1f493; 博客主页#xff1a;从零开始的-CodeNinja之路 ⏩ 收录文章#xff1a;【Spring MVC】快速学习使用Spring MVC的注解及三层架构 #x1f389;欢迎大家点赞#x1f44d;评论#x1f4dd;收藏⭐文章 目录 Spring Web MVC一: 什么是Spring Web MVC#xff1… 博客主页从零开始的-CodeNinja之路 ⏩ 收录文章【Spring MVC】快速学习使用Spring MVC的注解及三层架构 欢迎大家点赞评论收藏⭐文章 目录 Spring Web MVC一: 什么是Spring Web MVC二:Spring MVC中常用注解的使用2.1 RequestMapping:地址映射2.2 RequestBody:请求正文2.3 PathVariable:路径变量2.4 RequestPart:上传文件2.5 RequestParam:重命名2.6 RestController:数据控制器2.7 ResponseBody:数据格式2.8 CookieValue:获取Cookie2.9 SessionAttribute:获取Session2.10 Data:类注解 三:应用分层-三层架构四:总结 Spring Web MVC 一: 什么是Spring Web MVC SpringWebMVC是基于ServletAPI构建的原始Web框架从⼀开始就包含在Spring框架中。它的正式名称“SpringWebMVC”来⾃其源模块的名称(Spring-webmvc)但它通常被称为)SpringMVC). MVC是⼀种架构设计模式,也⼀种思想,⽽SpringMVC是对MVC思想的具体实现.除此之外,SpringMVC还是⼀个Web框架. 总结来说SpringMVC是⼀个实现了MVC模式的Web框架 MVC的定义 MVC是ModelViewController的缩写它是软件⼯程中的⼀种软件架构设计模式它把软件系统分 为模型、视图和控制器三个基本部分 • View(视图)指在应⽤程序中专⻔⽤来与浏览器进⾏交互展⽰数据的资源. • Model(模型)是应⽤程序的主体部分⽤来处理程序中数据逻辑的部分. • Controller控制器可以理解为⼀个分发器⽤来决定对于视图发来的请求需要⽤哪⼀个模型 来处理以及处理完后需要跳回到哪⼀个视图。即⽤来连接视图和模型 二:Spring MVC中常用注解的使用 2.1 RequestMapping:地址映射 RequestMapping既可修饰类也可以修饰⽅法当修饰类和⽅法时访问的地址是类路径⽅ 法路径. RequestMapping标识⼀个类设置映射请求的请求路径的初始信息 RequestMapping标识⼀个⽅法设置映射请求请求路径的具体信息 RequestMapping(/user) RestController public class UserController {RequestMapping(/sayHi)public String sayHi(){return hello,Spring MVC;} }2.2 RequestBody:请求正文 RequestBody:请求正⽂意思是这个注解作⽤在请求正⽂的数据绑定请求参数必须在写在请求正 ⽂中 RequestMapping(value /m7) public Object method7(RequestBody Person person) {return person.toString(); }2.3 PathVariable:路径变量 pathvariable:路径变量 和字⾯表达的意思⼀样,这个注解主要作⽤在请求URL路径上的数据绑定 默认传递参数写在URL上SpringMVC就可以获取到 后端实现代码 RequestMapping(/m8/{id}/{name}) public String method8(PathVariable Integer id, PathVariable(name) StringuserName){return 解析参数id:id,name:userName; }如果⽅法参数名称和需要绑定的URL中的变量名称⼀致时,可以简写,不⽤给PathVariable的属性赋 值,如上述例⼦中的id变量 如果⽅法参数名称和需要绑定的URL中的变量名称不⼀致时,需要PathVariable的属性value赋值, 如上述例⼦中的userName变量 2.4 RequestPart:上传文件 RequestPart主要是用于客户端上传文件交给服务器进行处理 后端代码实现: RequestMapping(/m9) public String getfile(RequestPart(file) MultipartFile file) throwsIOException {//获取⽂件名称String fileName file.getOriginalFilename();//⽂件上传到指定路径file.transferTo(new File(D:/temp/ file.getOriginalFilename()));return 接收到⽂件名称为: fileName; }2.5 RequestParam:重命名 某些特殊的情况下前端传递的参数key和我们后端接收的key可以不⼀致⽐如前端传递了⼀个 time给后端⽽后端是使⽤createtime字段来接收的这样就会出现参数接收不到的情况如果出现 这种情况我们就可以使⽤ RequestParam 来重命名前后端的参数值 后端实现代码 RequestMapping(/m4) public Object method_4(RequestParam(time) String createtime) {return 接收到参数createtime: createtime; }可以得出结论: 使⽤ RequestParam 进⾏参数重命名时,请求参数只能和 RequestParam 声明的名称⼀ 致,才能进⾏参数绑定和赋值.使⽤ RequestParam 进⾏参数重命名时,参数就变成了必传参数. 2.6 RestController:数据控制器 是Contronller和ResponseBody的封装,用于返回数据同时能够将注解内容交给Spring进行管理 RestController Controller ResponseBody Controller :定义⼀个控制器,Spring框架启动时加载,把这个对象交给Spring管理. ResponseBody :定义返回的数据格式为⾮视图,返回⼀个text/html信息 2.7 ResponseBody:数据格式 ResponseBody :定义返回的数据格式为⾮视图,返回⼀个text/html信息 ResponseBody public class IndexController {RequestMapping(/index)public Object index(){return /index.html;} }ResponseBody 既是类注解,⼜是⽅法注解 如果作⽤在类上,表⽰该类的所有⽅法,返回的都是数据,如果作⽤在⽅法上,表⽰该⽅法返回的是数据. 也就是说:在类上添加 ResponseBody 就相当于在所有的⽅法上添加了 ResponseBody 注解. 同样,如果类上有 RestController 注解时表⽰所有的⽅法上添加了 ResponseBody 注 解,也就是当前类下所有的⽅法返回值做为响应数据 设置状态码 SpringMVC会根据我们⽅法的返回结果⾃动设置响应状态码,程序员也可以⼿动指定状态码 通过SpringMVC的内置对象HttpServletResponse提供的⽅法来进⾏设置 ResponseBodypublic String setStatus(HttpServletResponse response) {response.setStatus(401);return 设置状态码成功;}2.8 CookieValue:获取Cookie Cook是用户客户端用于保存用户的基本信息,以便于用户在下一次登录时可以直接进入 RequestMapping(/getCookie) public String cookie(CookieValue(bite) String bite) {return bite bite; }2.9 SessionAttribute:获取Session Session是服务器为了保存⽤⼾信息⽽创建的⼀个特殊的对象 Session的本质就是⼀个哈希表,存储了⼀些键值对结构.Key就是SessionID,Value就是⽤⼾信息(⽤ ⼾信息可以根据需求灵活设计). SessionId是由服务器⽣成的⼀个唯⼀性字符串,从Session机制的⻆度来看,这个唯⼀性字符串称 为)SessionId).但是站在整个登录流程中看待,也可以把这个唯⼀性字符串称为)token). 当⽤⼾登陆的时候,服务器在Session中新增⼀个新记录,并把sessionId返回给客⼾端.(通过 HTTP响应中的Set-Cookie字段返回).客⼾端后续再给服务器发送请求的时候,需要在请求中带上sessionId.(通过HTTP请求中的 Cookie字段带上).服务器收到请求之后,根据请求中的sessionId在Session信息中获取到对应的⽤⼾信息,再进⾏后 续操作.找不到则重新创建Session,并把SessionID返回 RequestMapping(/getSess2) public String sess2(SessionAttribute(value username,required false)String username) {return usernameusername; }Cookie和Session的区别 • Cookie是客⼾端保存⽤⼾信息的⼀种机制.Session是服务器端保存⽤⼾信息的⼀种机制. • Cookie和Session之间主要是通过SessionId关联起来的,SessionId是Cookie和Session之间的 桥梁 • Cookie和Session经常会在⼀起配合使⽤.但是不是必须配合. ◦ 完全可以⽤Cookie来保存⼀些数据在客⼾端.这些数据不⼀定是⽤⼾⾝份信息,也不⼀定是 SessionId ◦ Session中的sessionId也不需要⾮得通过Cookie/Set-Cookie传递,⽐如通过URL传递. 2.10 Data:类注解 Lombok是⼀个Java⼯具库通过添加注解的⽅式简化Java的开发其中Data 注解会帮助我们⾃动⼀些⽅法,包含getter/setter,equals,toString等 Lombok的作⽤如下图所⽰ 如果觉得Data⽐较粗暴(⽣成⽅法太多),lombok也提供了⼀些更精细粒度的注解 注解作⽤Getter⾃动添加getter⽅法Setter⾃动添加setter⽅法ToString⾃动添加toString⽅法EqualsAndHashCode⾃动添加equals和hashCode⽅法NoArgsConstructor⾃动添加⽆参构造⽅法AllArgsConstructor⾃动添加全属性构造⽅法顺序按照属性的定义顺序NonNull属性不能为nullRequiredArgsConstructor⾃动添加必需属性的构造⽅法finalNonNull的属性为必需 DataGetterSetterToStringEqualsAndHashCodeRequiredArgsConstructorNoArgsConstructor 因此可以说明在创建类对象时可以通过引入lambok工具包中的Data注解,可以自动为我们添加其很多常用的赋值方法 三:应用分层-三层架构 ⽬前现在更主流的开发⽅式是前后端分离的⽅式,后端开发⼯程师不再需要关注前端的实现,所以对 于Java后端开发者,⼜有了⼀种新的分层架构:把整体架构分为表现层、业务逻辑层和数据层.这种分层 ⽅式也称之为三层架构. 表现层:就是展⽰数据结果和接受⽤⼾指令的是最靠近⽤⼾的⼀层业务逻辑层:负责处理业务逻辑,⾥⾯有复杂业务的具体实现数据层:负责存储和管理与应⽤程序相关的数据 可以看到,咱们前⾯的代码,并不符合这种设计思想,⽽是所有的代码堆砌在⼀起 按照上⾯的层次划分,SpringMVC站在后端开发⼈员的⻆度上,也进⾏了⽀持, • 请求处理、响应数据负责接收⻚⾯的请求给⻚⾯响应数据. • 逻辑处理负责业务逻辑处理的代码. • 数据访问负责业务数据的维护操作包括增、删、改、查等操作 • Controller控制层。接收前端发送的请求对请求进⾏处理并响应数据。 • Service业务逻辑层。处理具体的业务逻辑。 • Dao数据访问层也称为持久层。负责数据访问操作包括数据的增、删、改、查 MVC和三层架构的区别和联系 关于⼆者的关系,⼀直存在不同的观点.有⼈认为三层架构是MVC模式的⼀种实现,也有⼈认为MVC是 三层架构的替代⽅案,等等各种说法都有.根本原因是⼤家站在不同的⻆度来看待这个问题的. JavaEE部分的学习重在实践,⼤家根据⾃⼰的理解,能够⾃圆其说,说出⾃⼰的观点即可,也不建议 ⼤家去背书. 从概念上来讲,⼆者都是软件⼯程领域中的架构模式. MVC架构模式由三部分组成,分别是:模型(Model),视图(View)和控制器(Controller). 三层架构将业务应⽤划分为:表现层,业务逻辑层,数据访问层. MVC中,视图和控制器合起来对应三层架构中的表现层.模型对应三层架构中的业务逻辑层,数据层, 以及实体类 ⼆者其实是从不同⻆度对软件⼯程进⾏了抽象. MVC模式强调数据和视图分离,将数据展⽰和数据处理分开,通过控制器对两者进⾏组合. 三层架构强调不同维度数据处理的⾼内聚和低耦合,将交互界⾯,业务处理和数据库操作的逻辑分开. ⻆度不同也就谈不上互相替代了在⽇常的开发中可以经常看到两种共存的情况⽐如我们设计模型 层的时候往往也会拆分出业务逻辑层Service层和数据访问层Dao层 四:总结 1.学习SpringMVC,其实就是学习各种Web开发需要⽤的到注解 a. RequestMapping:路由映射 b. RequestParam:后端参数重命名 c. RequestBody:接收JSON类型的参数 d. PathVariable:接收路径参数 e. RequestPart:上传⽂件 f. ResponseBody:返回数据 g. CookieValue:从Cookie中获取值 h. SessionAttribute:从Session中获取值 i. RequestHeader:从Header中获取值 j. Controller:定义⼀个控制器,Spring框架启动时加载,把这个对象交给Spring管理.默认返回 视图. k. RestController:ResponseBodyController返回数据 2. Cookie和Session都是会话机制,Cookie是客⼾端机制,Session是服务端机制.⼆者通过SessionId 来关联.SpringMVC内置HttpServletRequest,HttpServletResponse两个对象.需要使⽤时,直接在 ⽅法中添加对应参数即可,Cookie和Session可以从HttpServletRequest中来获取,也可以直接使⽤ HttpServletResponse设置Http响应状态码.
http://www.pierceye.com/news/392591/

相关文章:

  • 网站设计中新闻版块怎么做乐清新闻联播
  • 网站开发维护员挣钱吗全球电子商务公司排行
  • 祥云县住房和城乡建设网站百度热议排名软件
  • 网站开发攻克时间网站模版制作教程
  • 遵义一般做一个网站需要多少钱菲斯曼售后服务中心
  • 教务系统网站建设模板下载东莞企业高端网站建设
  • 淮南建设公司网站网站建设对教育解决方案
  • 泰兴建设局网站wordpress资料图片不显示
  • 外贸推广免费网站图片 网站源码
  • 博客推广那个网站列好邢台网红桥
  • 艺之都网站建设微信app开发腾讯视频分享到wordpress
  • 洛阳最好的做网站的公司哪家好建网站需要哪些文件夹
  • 舟山企业网站建设导出wordpress用户
  • 肇庆新农村建设内容在哪个网站有关天猫网站开发的论文
  • 网站建设代码生成器php网站开发专员招聘
  • 视频教学网站cms陕西网站备案查询
  • 湖州网站设计浙北数据wordpress自定义搜索页面
  • 昆明公司网站开发流线型的网站建设
  • 南京建设网站企业泊头市建设网站
  • 前端跟后端哪个就业难北京网站建设seo优化
  • 简述网站开发建设的基本流程做一个京东这样的网站需要多少钱
  • 与通信工程专业做项目的网站微信开发显示wordpress
  • 自己做链接网站萍乡做网站哪家好
  • 做网站最适合用多大的图片医院 网站建设 新闻
  • 网站开发职业分析产品展示的手机网站
  • 精通网站建设pdf网上自学电脑课程
  • 一站式网站建设业务沈阳网站建设 熊掌号
  • 58同城网站建设目的劳务公司怎么注册需要什么要求
  • 龙华网站建设设计公司国家中小学智慧教育平台
  • 摄影网站采用照片做宣传_版权费是多少?pythom+网站开发规范