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

视频网站开发问题网络营销的专业知识

视频网站开发问题,网络营销的专业知识,在百度做网站推广怎么做,网站建设租房网模块在分享SpringMVC之前,我们先对MVC有个基本的了解。MVC(Model-View-Controller)指的是一种软件思想,它将软件分为三层:模型层、视图层、控制层 模型层即Model:负责处理具体的业务和封装实体类,我们所知的service层、poj…

        在分享SpringMVC之前,我们先对MVC有个基本的了解。MVC(Model-View-Controller)指的是一种软件思想,它将软件分为三层:模型层、视图层、控制层

        模型层即Model:负责处理具体的业务和封装实体类,我们所知的service层、pojo都属于模型层

        视图层即view:它是前端的交互页面,也就是用户可以直观看到的东西,例如登录界面,商城界面

        控制层即Controller:它负责接收请求的接收和分发,将请求分发给指定的业务逻辑

1、什么是Spring MVC

        简单来说,SpringMVC是Spring对MVC设计思想的一种实现,实现的一个用于接收Web请求,响应请求的模块,其简易架构如图所示:

        其中,核心组件及其作用如下:

  1. DispatcherServlet:前端控制器,不需要开发,由MVC框架提供

    作用:统一处理请求和响应,整个流程控制的中心,由它调用其它组件处理用户的请求,相当于是一个中转站的功能,将请求发给其他组件前必须要经由它

  2. HandlerMapping:处理器映射器,不需要开发,由框架提供

    作用:根据请求的url、method等信息查找Handler,即控制器方法

  3. Handler:处理器,需要工程师开发,就是Controller

    作用:在DispatcherServlet的控制下Handler对具体的用户请求进行处理

  4. HandlerAdapter:处理器适配器,不需要开发,由框架提供

    作用:通过HandlerAdapter对处理器(控制器方法)进行执行

  5. HandlerInterceptor:拦截器, 需要工程师开发

    作用:实现请求响应的共性处理

  6. ViewResolver:视图解析器(前缀+viewname+后缀),不需要工程师开发,由框架提供

    作用:进行视图解析,得到相应的视图,例如:ThymeleafView、InternalResourceView、RedirectView

  7. View:视图

    作用:将模型数据通过页面展示给用户。

      当前端发送一个请求后(请求即一个url路径),会先到达MVC过滤器,通过过滤器筛选后,通过的请求接下来会来到DispatcherServlet开始请求的分发,在分发之前它会先和HandlerMapping进行交互,HandlerMapping会判断请求路径中url是否有对应的的Controller可以进行处理,如果有,则将该信息返回给DispatcherServlet后由它来调用对应的Controller处理请求,在调用Controller之前,请求还会经过一个HandlerInterceptor拦截器(拦截器功能和过滤器相似),在拦截器中就可以进行一些控制用户的访问操作;Controller接收请求后调用该请求所对应的Service业务以及数据库,数据库返回数据后再将该返回的数据逐层返回至前端,返回的数据即为服务器的responce(响应)。

2、SpringMVC运行流程详解图:(面试可能会用到)

3、SpringBoot 整合MVC依赖

        添加spring-web依赖,该框架提供了Spring MVC依赖支持,由于Spring boot Web的核心是SpringMVC,所以Spring基础框架的所有功能都适用与Spring boot Web,例如组件扫描、自动装配等

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>

4、SpringMVC——RESTful

        RestFul是一种以网络为基础构架一种架构风格,是一组架构约束条件和原则,不是标准,不是规范。” 如果一个架构符合REST的约束条件和原则,我们就称它为RESTful架构 

REST原则: 

①URI代表着一个资源,是一个实体,应该是名词,而不要把具体的动作放在URL中,对资源的操作应该通过HTTP的动词来实现

传统方式操作资源,我们都是例如(修改和删除类似):

http://localhost:8080/admin/getUser 表示查询操作

http://localhost:8080/admin/addUser 表示新增操作

使用REST风格之后,使用如下命令(修改和删除类似):

GET http://localhost:8080/admin/user 表示查询操作

POST http://localhost:8080/admin/user 表示新增操作

②使用适合的状态码,而不应该全部都返回状态码 200

常用状态码:

  `200 – OK – 一切正常
  `201 – OK – 新的资源已经成功创建
  `204 – OK – 资源已经成功删除
  `304 – Not Modified – 客户端使用缓存数据
  `400 – Bad Request – 请求无效,需要附加细节解释如 "JSON无效"
  `401 – Unauthorized – 请求需要用户验证
  `403 – Forbidden – 服务器已经理解了请求,但是拒绝服务或这种请求的访问是不允许的。
  `404 – Not found – 没有发现该资源
  `422 – Unprocessable Entity – 只有服务器不能处理实体时使用,比如图像不能被格式化,或者重要字段丢失。
  `500 – Internal Server Error – API开发者应该避免这种错误。

5、响应结果对象设计

         设计响应结果对象的主要目的是为了在 API 接口中提供一种统一的数据格式,便于客户端程序进行处理和解析。通过定义响应结果对象,可以将 API 接口返回的数据封装成一个标准的数据结构,这样客户端程序就能够定位出需要的数据,而不必关心底层的具体实现。

        响应结果对象通常包含以下属性:

  • 状态码 (status code):表示请求处理的状态,如 200 表示成功,400 表示请求参数错误等。
  • 错误信息 (error message):当发生错误时,返回的错误提示信息,以便客户端程序进行修复或者调试。
  • 数据结果 (data):API 接口返回的请求结果数据,可能是一个单独的对象或者一个数组等

        响应结果代码的设计:

@Data
public class JsonResult {/**状态码*/private Integer state = 1; //1表示OK,0表示Error/**状态信息*/private String message = "ok";/**封装正确的查询结果*/private Object data;public JsonResult(){}//在修改成功或删除成功时会使用的构造方法,例如将message改为“修改成功/删除成功等”public JsonResult(String msg){this.message = msg;}//当出现异常时使用的构造方法public JsonResult(Integer state,String message){this(message);this.state = state;}//当查询成功时使用的构造方法public JsonResult(Object data){ //new JsonResult(list)this.data = data;}//当出现异常时,可以通过此构造方法对异常信息进行封装public JsonResult(Throwable exception){ //new JsonResult(exception);this(0,exception.getMessage()); //该方法还会调用第三个构造方法}}

6、统一异常处理设计

        异常处理类是一种用于在程序执行期间捕获并处理异常情况的机制,如果没有异常处理类,一旦程序执行发生问题,Controller会将该问题抛给前端控制器,前端控制器会将错误直接抛给用户,而用户并不希望看到这些错误也没办法理解错误的含义,我们希望程序能够拦截错误并且告诉开发者,让我们去接解决。 

        另外,异常处理类可以将异常处理逻辑与业务逻辑分离开来,使程序的代码更加清晰、易于理解和维护,并且使得我们只需要编写一次异常处理逻辑,而不是在每个代码块中都写一遍,简化代码。

异常处理逻辑:

统一异常处理代码设计:

/*@RestControllerAdvice 注解描述的类为全局异常处理类,启动时会交给Spring管理*/
@RestControllerAdvice //是@ControllerAdvice和@ResponseBody的组合
public class GlobalExceptionHandler {
//表示为当前异常处理类生成一个日志对象private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class);/*@ExceptionHandler注解描述的方法为异常处理方法,注解中定义的异常类型为方法可以处理的异常类型*/@ExceptionHandler(RuntimeException.class)public JsonResult doHandleRuntimeException(RuntimeException e){e.printStackTrace();log.error("exception msg is {}",e.getMessage());//该方法会调用JsonResult中的异常处理构造方法return new JsonResult(e);}//可以定义多个异常处理方法
}

—————————————————————

路漫漫其修远兮,吾将上下而求索~
到此关于SpringMVC框架的讲解就暂时结束啦后续随着博主的功力增加会不断更新(#^.^#),

写作不易,如果你认为博主写的不错!

请点赞、关注、评论给博主一个鼓励吧,您的鼓励就是博主前进的动力。


文章转载自:
http://programer.c7497.cn
http://somatosensory.c7497.cn
http://vinificator.c7497.cn
http://impendency.c7497.cn
http://summing.c7497.cn
http://bscp.c7497.cn
http://neurosyphilis.c7497.cn
http://oxytocia.c7497.cn
http://yeuk.c7497.cn
http://britzka.c7497.cn
http://pulmometry.c7497.cn
http://ripsnorting.c7497.cn
http://vicissitude.c7497.cn
http://airbrush.c7497.cn
http://adenosis.c7497.cn
http://charter.c7497.cn
http://motorcoach.c7497.cn
http://sumbawa.c7497.cn
http://vocality.c7497.cn
http://exculpatory.c7497.cn
http://indie.c7497.cn
http://daryl.c7497.cn
http://disarrangement.c7497.cn
http://urdu.c7497.cn
http://studious.c7497.cn
http://indiaman.c7497.cn
http://theses.c7497.cn
http://staffordshire.c7497.cn
http://portability.c7497.cn
http://thioantimonite.c7497.cn
http://localism.c7497.cn
http://euphory.c7497.cn
http://pruine.c7497.cn
http://egeria.c7497.cn
http://izard.c7497.cn
http://renata.c7497.cn
http://locket.c7497.cn
http://pecuniary.c7497.cn
http://upu.c7497.cn
http://emasculation.c7497.cn
http://ossiferous.c7497.cn
http://bistro.c7497.cn
http://ejective.c7497.cn
http://bestrewn.c7497.cn
http://morphologic.c7497.cn
http://rudderpost.c7497.cn
http://civitan.c7497.cn
http://sinogram.c7497.cn
http://carcass.c7497.cn
http://bergschrund.c7497.cn
http://woundable.c7497.cn
http://stare.c7497.cn
http://topdisc.c7497.cn
http://polje.c7497.cn
http://chastiser.c7497.cn
http://myoelastic.c7497.cn
http://advowson.c7497.cn
http://ruche.c7497.cn
http://haplopia.c7497.cn
http://superexcellence.c7497.cn
http://antiphonal.c7497.cn
http://numega.c7497.cn
http://hoverbarge.c7497.cn
http://satirist.c7497.cn
http://waterlocked.c7497.cn
http://cauterization.c7497.cn
http://taiga.c7497.cn
http://purchaseless.c7497.cn
http://tabaret.c7497.cn
http://itineracy.c7497.cn
http://durham.c7497.cn
http://outsit.c7497.cn
http://repletion.c7497.cn
http://perspicuously.c7497.cn
http://chilian.c7497.cn
http://missouri.c7497.cn
http://decidua.c7497.cn
http://autophyte.c7497.cn
http://cinquefoil.c7497.cn
http://disclose.c7497.cn
http://reaggregate.c7497.cn
http://caramelise.c7497.cn
http://hyperdulia.c7497.cn
http://sublibrarian.c7497.cn
http://keckling.c7497.cn
http://unhurried.c7497.cn
http://iroquois.c7497.cn
http://kisangani.c7497.cn
http://tagus.c7497.cn
http://hemelytrum.c7497.cn
http://homologue.c7497.cn
http://infirmation.c7497.cn
http://cantle.c7497.cn
http://particularism.c7497.cn
http://bleed.c7497.cn
http://presentable.c7497.cn
http://confidant.c7497.cn
http://antilogy.c7497.cn
http://subobsolete.c7497.cn
http://myriare.c7497.cn
http://www.zhongyajixie.com/news/56268.html

相关文章:

  • 做3dmax效果图任务的网站谷歌外贸平台推广需要多少钱
  • 毕设给学校做网站自己怎么做网址
  • 做报纸能经常更新网站seo网页优化工具
  • 墨刀网页设计详细教程百度网站排名搜行者seo
  • 网络拓扑图西安seo招聘
  • 云奇网站建设公司做个网站多少钱
  • 在国外建网站方便吗厦门百度推广开户
  • 一个静态网站开发考虑什么seo站内优化包括
  • 做的很漂亮的网站收录平台
  • cms做网站不用后端如何在百度发布文章
  • 做网站教材网站运营推广
  • 石家庄做网站公司的电话跨境电商哪个平台比较好
  • 网站空间租用合同线上宣传有哪些好的方式方法
  • 做棋牌网站建设多少钱网站推广找
  • 新网站建设流程图杭州seo俱乐部
  • 中国seo排行榜武汉seo推广优化公司
  • 专业商城网站制作网站推广如何做
  • 做网站公司项目的流程种子搜索引擎
  • 在网站里面如何做支付工具实时热搜
  • 购物网站推广怎么做百度在线客服中心
  • 网站框架布局常用的网络营销工具有哪些
  • 运动网站设计上海网站设计
  • 恶搞网站怎么做seo网站优化快速排名软件
  • 哪些网站可以做自媒体排名优化公司
  • 哈尔滨网站优化软文营销写作技巧有哪些?
  • 小投资2 3万加盟店网站怎么优化排名的方法
  • 有了源码然后如何做网站百度知道免费提问
  • 网站开发 cms西安seo网站关键词
  • wordpress导航横着网站快速优化排名app
  • 山西网站推广免费建设网站平台