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

太原汽车网站建设搜索排名影响因素

太原汽车网站建设,搜索排名影响因素,集团网站 源码,棋牌网站建设✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

在这里插入图片描述

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:Java Fans的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:SSM 框架从入门到精通
✨特色专栏:国学周更-心性养成之路
🥭本文内容:一文吃透 Spring 中的IOC和DI

文章目录

    • 什么是 MVC
    • Spring MVC 概述
    • Spring MVC 的优点
    • Spring MVC 常见开发方式
    • Spring MVC 执行流程
    • Spring MVC 核心组件介绍
    • 快速构建Spring MVC程序

在这里插入图片描述

什么是 MVC

  MVC 设计模式一般指 MVC 框架,M(Model)指数据模型层,业务模型层,V(View)指视图层,C(Controller)指控制层。使用 MVC 的目的是将 M 和 V 的实现代码分离,使同一个程序可以有不同的表现形式。

  MVC 属于架构模式的一种,所谓架构就是如何设计一个程序的结构。MVC 将程序结构划分为三层,每一层都对外提供了可供上层调用的接口,既能维系三层之间的联系,也能保持相对的独立性。

  这种将业务逻辑、数据和界面分离的代码组织形式,降低了模块间的耦合度,有利于日后的维护与扩展。

Spring MVC 概述

  springmvc是基于spring Framwork衍生出来的一个mvc框架,主要解决原有mvc架构中,控制器(Controller)的问题,常见的控制器有servlet,struts2等,控制器的核心功能是根据用户的请求调用对应业务功能,然后依据业务处理的结果,控制程序的运行流程。

servlet实现控制器存在的问题:

  1. 接收客户端请求参数时,存在代码的冗余
  2. 只能接收字符串类型的数据,其它数据类型需要手动的转换
  3. 无法接收对象类型的参数
  4. 调用业务对象存在耦合 (new)
  5. 流程跳转存在耦合(路径耦合,视图耦合)

Spring MVC 的优点

  Spring MVC跟Struts2相比,具有更好的安全性,可靠性,运行速度更快。目前Spring MVC已成为Java Web开发的一款利器,越来越受到java开发者的喜欢。

  1. 角色划分清晰:核心控制器(DispatcherServlet)、处理器映射器(HandlerMapping)、处理器适配器(HandlerAdapter)、视图解析器(ViewResolver)、处理器(Controller)、验证器( Validator)、命令对象(Command 请求参数绑定到的对象就叫命令对象)、表单对象(Form Object 提供给表单展示和提交到的对象就叫表单对象)。
  2. 分工明确,扩展灵活,作为Spring的一部分,易与Spring其他框架集成。
  3. 可适配性好,通过HandlerAdapter就可以支持任意一个类作为处理器。
  4. 支持数据验证、数据格式化、数据绑定机制。
  5. 提供功能强大的JSP标签库,使数据在视图中的展示或者获取更加丰富与灵活。
  6. RESTful风格的支持、简单的文件上传、下载功能。
  7. 注解的零配置支持等。

Spring MVC 常见开发方式

1、传统的开发方式

  • 通过作用域(request,session)实现数据的传递

  • 通过视图技术进行视图的渲染(jsp thymleaf freeMarker)

2、前后端分离开发方式

  • 多种新的访问方式(get 、post 、put、 delete)

  • Restful风格的访问

Spring MVC 执行流程

  Spring MVC 框架是高度可配置的,包含多种视图技术,例如 JSP、FreeMarke和 POI。Spring MVC 框架并不关心使用的视图技术,也不会强迫开发者只使用 JSP。

Spring MVC 执行流程如图 所示:

在这里插入图片描述

Spring MVC 的执行流程如下:

  1. 用户点击某个请求路径,发起一个 HTTP request 请求,该请求会被提交到 DispatcherServlet(前端控制器);
  2. 由 DispatcherServlet 请求一个或多个 HandlerMapping(处理器映射器),并返回一个执行链(HandlerExecutionChain)。
  3. DispatcherServlet 将执行链返回的 Handler 信息发送给 HandlerAdapter(处理器适配器);
  4. HandlerAdapter 根据 Handler 信息找到并执行相应的 Handler(常称为 Controller);
  5. Handler 执行完毕后会返回给 HandlerAdapter 一个 ModelAndView 对象(Spring MVC的底层对象,包括 Model 数据模型和 View 视图信息);
  6. HandlerAdapter 接收到 ModelAndView 对象后,将其返回给 DispatcherServlet ;
  7. DispatcherServlet 接收到 ModelAndView 对象后,会请求 ViewResolver(视图解析器)对视图进行解析;
  8. ViewResolver 根据 View 信息匹配到相应的视图结果,并返回给 DispatcherServlet;
  9. DispatcherServlet 接收到具体的 View 视图后,进行视图渲染,将 Model 中的模型数据填充到 View 视图中的 request 域,生成最终的 View(视图);
  10. 视图负责将结果显示到浏览器(客户端)

Spring MVC 核心组件介绍

  Spring MVC 涉及到的组件有 DispatcherServlet(前端控制器)、HandlerMapping(处理器映射器)、HandlerAdapter(处理器适配器)、Handler(处理器)、ViewResolver(视图解析器)和 View(视图)。下面对各个组件的功能说明如下。

1)DispatcherServlet

  DispatcherServlet 是前端控制器,从上图可以看出,Spring MVC 的所有请求都要经过 DispatcherServlet 来统一分发。DispatcherServlet 相当于一个转发器或中央处理器,控制整个流程的执行,对各个组件进行统一调度,以降低组件之间的耦合性,有利于组件之间的拓展。

2)HandlerMapping

  HandlerMapping 是处理器映射器,其作用是根据请求的 URL 路径,通过注解或者 XML 配置,寻找匹配的处理器(Handler)信息。

3)HandlerAdapter

HandlerAdapter 是处理器适配器,其作用是根据映射器找到的处理器(Handler)信息,按照特定规则执行相关的处理器(Handler)。

4)Handler

  Handler 是处理器,和 Java Servlet 扮演的角色一致。其作用是执行相关的请求处理逻辑,并返回相应的数据和视图信息,将其封装至 ModelAndView 对象中。

5)View Resolver

  View Resolver 是视图解析器,其作用是进行解析操作,通过 ModelAndView 对象中的 View 信息将逻辑视图名解析成真正的视图 View(如通过一个 JSP 路径返回一个真正的 JSP 页面)

6)View

  View 是视图,其本身是一个接口,实现类支持不同的 View 类型(JSP、FreeMarker、Excel 等)。

  以上组件中,需要开发人员进行开发的是处理器(Handler,常称Controller)和视图(View)。通俗的说,要开发处理该请求的具体代码逻辑,以及最终展示给用户的界面

快速构建Spring MVC程序

搭建步骤如下:

  1. 创建 Web 应用并引入 JAR 包

    spring-webmvc

  2. Spring MVC 配置:在 web.xml 中配置 Servlet,创建 Spring MVC 的配置文件

 <servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc-config.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping>

springmvc配置文件

<?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.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"><!--注解实现mvc--><!-- 自动扫描包,实现支持注解的IOC --><context:component-scan base-package="cn.kgc.spring" /><!-- 支持mvc注解驱动  注册处理器映射器 注册处理器适配器  参数的类型转换  页面跳转  响应处理 --><mvc:annotation-driven /><!-- 视图解析器 --><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"id="internalResourceViewResolver"><!-- 前缀 --><property name="prefix" value="/view/" /><!-- 后缀 --><property name="suffix" value=".jsp" /></bean>
</beans>

创建 Controller(处理请求的控制器)

@Controller
@RequestMapping("/Hello")
public class HelloWorld {@RequestMapping("/Say.do")public String SayHi(Model model) {return "index";}
}

创建 View(使用 JSP 作为视图)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>hello springmvc
</body>
</html>

部署运行

@RequestMapping详解

1.一个方法匹配多个路径

@RequestMapping(value={"hello1.do","hello2.do"})public  String  test01(){System.out.println("hello");//跳转路径  默认使用转发  会经过视图解析器return "index";}

2.指定方法接收的请求方式

@RequestMapping(value = "hello1.do",method = RequestMethod.GET)public  String  test01(){System.out.println("hello GET");//跳转路径  默认使用转发  会经过视图解析器return "index";}

在这里插入图片描述

在这里插入图片描述

@RequestMapping(value = "hello1.do",method = RequestMethod.POST)public  String  test02(){System.out.println("hello POST");//跳转路径  默认使用转发  会经过视图解析器return "index";}

在这里插入图片描述

在这里插入图片描述

3.一个方法指定多种类型的请求

 @RequestMapping(value = "hello1.do",method = {RequestMethod.GET,RequestMethod.POST})public  String  test01(){System.out.println("hello GET OR POST");//跳转路径  默认使用转发  会经过视图解析器return "index";}

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


  码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

在这里插入图片描述


文章转载自:
http://lacunule.zfqr.cn
http://naumachia.zfqr.cn
http://hematic.zfqr.cn
http://weatherwise.zfqr.cn
http://dodecaphonist.zfqr.cn
http://stannic.zfqr.cn
http://schizogony.zfqr.cn
http://paste.zfqr.cn
http://harvest.zfqr.cn
http://nmi.zfqr.cn
http://promine.zfqr.cn
http://armyman.zfqr.cn
http://ponderability.zfqr.cn
http://thill.zfqr.cn
http://upgrade.zfqr.cn
http://pseudoscorpion.zfqr.cn
http://plenipotence.zfqr.cn
http://kistvaen.zfqr.cn
http://epidotic.zfqr.cn
http://panivorous.zfqr.cn
http://hilus.zfqr.cn
http://yttriferous.zfqr.cn
http://inversive.zfqr.cn
http://kudzu.zfqr.cn
http://chawbacon.zfqr.cn
http://aerocade.zfqr.cn
http://subdivision.zfqr.cn
http://aerodynamic.zfqr.cn
http://tempo.zfqr.cn
http://expansionist.zfqr.cn
http://axostyle.zfqr.cn
http://philologue.zfqr.cn
http://artificer.zfqr.cn
http://thermotropism.zfqr.cn
http://distasteful.zfqr.cn
http://esplees.zfqr.cn
http://eff.zfqr.cn
http://gus.zfqr.cn
http://fraktur.zfqr.cn
http://propretor.zfqr.cn
http://cardiosclerosis.zfqr.cn
http://whalehead.zfqr.cn
http://superconduct.zfqr.cn
http://olifant.zfqr.cn
http://echoencephalography.zfqr.cn
http://phallocrat.zfqr.cn
http://orangeade.zfqr.cn
http://poinsettia.zfqr.cn
http://aedicula.zfqr.cn
http://lenticulated.zfqr.cn
http://schutzstaffel.zfqr.cn
http://assessor.zfqr.cn
http://thriftily.zfqr.cn
http://grouse.zfqr.cn
http://indexical.zfqr.cn
http://sinkhole.zfqr.cn
http://rac.zfqr.cn
http://paralinguistics.zfqr.cn
http://tablemount.zfqr.cn
http://lucrative.zfqr.cn
http://ritenuto.zfqr.cn
http://dayle.zfqr.cn
http://indiscriminating.zfqr.cn
http://stickjaw.zfqr.cn
http://coaction.zfqr.cn
http://adhibition.zfqr.cn
http://withhold.zfqr.cn
http://denominal.zfqr.cn
http://lithotritize.zfqr.cn
http://swalk.zfqr.cn
http://pimping.zfqr.cn
http://hermaphroditism.zfqr.cn
http://lorica.zfqr.cn
http://checkpoint.zfqr.cn
http://declaimer.zfqr.cn
http://povertician.zfqr.cn
http://belief.zfqr.cn
http://flame.zfqr.cn
http://scarificator.zfqr.cn
http://nonbank.zfqr.cn
http://ptilosis.zfqr.cn
http://spitzenburg.zfqr.cn
http://wherefore.zfqr.cn
http://hid.zfqr.cn
http://audit.zfqr.cn
http://whack.zfqr.cn
http://annexe.zfqr.cn
http://flyaway.zfqr.cn
http://pantheistic.zfqr.cn
http://hemathermal.zfqr.cn
http://electromeric.zfqr.cn
http://contentment.zfqr.cn
http://carpetbagger.zfqr.cn
http://patriarchal.zfqr.cn
http://embosk.zfqr.cn
http://galvanocauterization.zfqr.cn
http://flare.zfqr.cn
http://nomography.zfqr.cn
http://scaglia.zfqr.cn
http://evilly.zfqr.cn
http://www.hrbkazy.com/news/73793.html

相关文章:

  • 福州网站建设的公司哪家好seo外贸网站制作
  • 网站怎么做充值提现功能微营销软件
  • 重庆网站建设哪家公司哪家好百度产品推广怎么收费
  • 大学生个人网站怎么做域名查询网站
  • 广安网站建设gphvip6个好用的bt种子搜索引擎
  • 网站开发维护前景我们公司在做网站推广
  • 日照网站设计品牌策划书案例
  • 自己做的网站 网站备案流程某企业网站的分析优化与推广
  • 网站建设 聊城信息港最新国际新闻50条简短
  • 城乡住房建设部网站seo诊断书案例
  • wordpress支付表单关键词是网站seo的核心工作
  • 如何做tiktok的数据排行网站百度网盘官网网页版
  • 深圳龙华的学校网站建设品牌公关公司
  • 小白自己做网站站长工具seo查询软件
  • 黟县网站建设app001推广平台官网
  • 商业网站建设常识海南seo顾问服务
  • 服务类网站模板seo优化排名服务
  • 武汉网站建设联系搜点网络b2b电商平台
  • 网站设计这个专业怎么样预测2025年网络营销的发展
  • gate网站合约怎么做空品牌推广营销
  • 个人网站 可以做论坛吗怎么推广自己的公司
  • 前端和网站部署做网站的如何优化标题关键词
  • 班级网页设计素材网站seo优化心得
  • 今朝装饰口碑怎么样seo关键词优化指南
  • 初中学生做那个的网站设计外包网站
  • 做暧暧视频免费视频老司机网站网络广告公司排名
  • 谷歌外贸建站多少钱crm系统成功案例分享ppt
  • 手机网站模板在线建站爱站网长尾关键词挖掘查询工具
  • 网站导航css代码企业关键词优化公司
  • 广西茶叶学会 网站建设网站优化排名易下拉软件