中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

石家莊哪個公司做網(wǎng)站好百度競價代運營

石家莊哪個公司做網(wǎng)站好,百度競價代運營,wordpress看圖插件,國企建筑公司有哪些一、SpringMVC簡介 1-介紹 Spring Web MVC是基于Servlet API構(gòu)建的原始Web框架,從一開始就包含在Spring Framework中。正式名稱“Spring Web MVC”來自其源模塊的名稱( spring-webmvc ),但它通常被稱為“Spring MVC”。 在控制層…

一、SpringMVC簡介

1-介紹

Spring Web MVC是基于Servlet API構(gòu)建的原始Web框架,從一開始就包含在Spring Framework中。正式名稱“Spring Web MVC”來自其源模塊的名稱( spring-webmvc ),但它通常被稱為“Spring MVC”。

在控制層框架歷經(jīng)Strust、WebWork、Strust2等諸多產(chǎn)品的歷代更迭之后,目前業(yè)界普遍選擇了SpringMVC作為Java EE項目表述層開發(fā)的首選方案。之所以能做到這一點,是因為SpringMVC具備如下顯著優(yōu)勢:

  • Spring 家族原生產(chǎn)品,與IOC容器等基礎(chǔ)設(shè)施無縫對接

  • 表述層各細(xì)分領(lǐng)域需要解決的問題全方位覆蓋,提供全面解決方案

  • 代碼清新簡潔,大幅度提升開發(fā)效率

  • 內(nèi)部組件化程度高,可插拔式組件即插即用,想要什么功能配置相應(yīng)組件即可

  • 性能卓著,尤其適合現(xiàn)代大型、超大型互聯(lián)網(wǎng)項目要求

原生的Servlet?API開發(fā)代碼片段?

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  String userName = request.getParameter("userName");System.out.println("userName="+userName);
}

?基于SpringMVC開發(fā)代碼片段

更加專注的進行業(yè)務(wù)邏輯的開發(fā)

@RequestMapping("/user/login")
public String login(@RequestParam("userName") String userName, Integer id){log.debug("userName="+userName);return "result";
}

?2-主要作用以及優(yōu)點

1)主要作用

SSM框架構(gòu)建起單體項目的技術(shù)棧需求!其中的SpringMVC負(fù)責(zé)表述層(控制層)實現(xiàn)簡化!

SpringMVC的作用主要覆蓋的是表述層,例如:

最終總結(jié):

1. ?簡化前端參數(shù)接收(形參列表)
2. ?簡化后端數(shù)據(jù)響應(yīng)(在返回值中體現(xiàn))
3. ?以及其他......

?2)優(yōu)點

1.基于MVC架構(gòu)

基于MVC架構(gòu),功能分工明確。解耦合,

2.容易理解,上手快;使用簡單。

就可以開發(fā)一個注解的SpringMVC項目,SpringMVC也是輕量級的,jar很小。不依賴的特定的接口和類。

3.作為Spring框架一部分,能夠使用Spring的IoC和Aop。方便整合Strtus,MyBatis,Hiberate,JPA等其他框架。

4.SpringMVC強化注解的使用,在控制器,Service,Dao都可以使用注解。方便靈活。

使用@Controller創(chuàng)建處理器對象,@Service創(chuàng)建業(yè)務(wù)對象,@Autowired或者@Resource在控制器類中注入Service,? Service類中注入Dao。

3-核心組件以及調(diào)用流程理解

1)SpringMVC含義

MVC是一種軟件架構(gòu)的思想,將軟件按照模型、視圖、控制器來劃分

  • M: Model:模型層,指工程中的JavaBean,作用是處理數(shù)據(jù)。JavaBean分為兩類:實體類Bean:專門存儲業(yè)務(wù)數(shù)據(jù)的,如 Student、User 等業(yè)務(wù)處理Bean:指Service或Dao對象,專門用于處理業(yè)務(wù)邏輯和數(shù)據(jù)訪問。
  • V: View:視圖層,指工程中的html或jsp等頁面,作用是與用戶進行交互,展示數(shù)據(jù)
  • C: Controller:控制層,指工程中的servlet,作用是接收請求和響應(yīng)瀏覽器

Spring MVC與許多其他Web框架一樣,是圍繞前端控制器模式設(shè)計的,其中中央 `Servlet` ?`DispatcherServlet` 做整體請求處理調(diào)度!

除了`DispatcherServlet`SpringMVC還會提供其他特殊的組件協(xié)作完成請求處理和響應(yīng)呈現(xiàn)。

?2)完整流程表述:

(1)客戶端發(fā)起請求:用戶通過瀏覽器或其他客戶端想服務(wù)器發(fā)起http請求

你在瀏覽器中,輸入了一個網(wǎng)址,發(fā)起了一個請求

(2)請求到達前端控制器(DispatcherServlet):請求首先被DispatcherServlet接收,它是SpringMVC的前端控制器,是整個流程的起點。

請求到達了SpringMVC的 總指揮(DispatcherServlet)。

(3)處理器映射器(Handler Mapping)確定處理器:?DispatcherServlet使用處理器映射器來確定請求應(yīng)該由哪個控制器(Handler)處理。處理器映射器根據(jù)配置或注解找到匹配的處理器。

DispatcherServlet 找到了一個處理器(Controller)來處理你的請求。

(4)控制器處理請求:找到匹配的控制器后,控制器執(zhí)行相應(yīng)的方法來處理請求。這個方法可能包含業(yè)務(wù)邏輯、數(shù)據(jù)處理等。

這個處理器(Controller)執(zhí)行一些操作,可能涉及到數(shù)據(jù)庫查詢、數(shù)據(jù)處理等。

(5)模型處理數(shù)據(jù):?控制器可以與模型(Model)交互,進行數(shù)據(jù)處理和業(yè)務(wù)邏輯。模型通常包含應(yīng)用程序的數(shù)據(jù)和業(yè)務(wù)規(guī)則。

處理器(Controller)把需要顯示的數(shù)據(jù)交給了一個“視圖”(View)。

(6)視圖解析器(View Resolver)確定視圖:?控制器處理完請求后,它返回一個邏輯視圖的名稱。視圖解析器將邏輯視圖名稱解析為實際的視圖(View),這可以是JSP、Thymeleaf等。

視圖(View)的任務(wù)是把數(shù)據(jù)渲染成最終的頁面內(nèi)容。

(7)視圖渲染:?視圖負(fù)責(zé)將模型中的數(shù)據(jù)渲染到視圖中,生成最終的響應(yīng)內(nèi)容。這可以是HTML、JSON等格式。?

最終,渲染好的頁面通過 DispatcherServlet 返回給你的瀏覽器。

?(8)響應(yīng)發(fā)送到客戶端:?渲染后的視圖作為響應(yīng)發(fā)送回DispatcherServlet。

?返回 ing 。

?(9)響應(yīng)返回客戶端:?DispatcherServlet將最終的響應(yīng)返回給客戶端,完成了整個請求-響應(yīng)的循環(huán)。

好了 , 你在瀏覽器上看到了頁面的內(nèi)容。

3)SpringMVC涉及組件理解

DispatcherServlet : SpringMVC提供,我們需要使用web.xml配置使其生效,它是整個流程處理的核心,所有請求都經(jīng)過它的處理和分發(fā)![ CEO ]

HandlerMapping : SpringMVC提供,我們需要進行IoC配置使其加入IoC容器方可生效,它內(nèi)部緩存handler(controller方法)和handler訪問路徑數(shù)據(jù),被DispatcherServlet調(diào)用,用于查找路徑對應(yīng)的handler![秘書]

HandlerAdapter : SpringMVC提供,我們需要進行IoC配置使其加入IoC容器方可生效,它可以處理請求參數(shù)和處理響應(yīng)數(shù)據(jù)數(shù)據(jù),每次dispatcherServlet都是通過handlerAdapter間接調(diào)用handler,他是handler和dispatcherServlet之間的適配器![經(jīng)理]

Handler : handler又稱處理器,他是Controller類內(nèi)部的方法簡稱,是由我們自己定義,用來接收參數(shù),向后調(diào)用業(yè)務(wù),最終返回響應(yīng)結(jié)果![打工人]

ViewResovler : SpringMVC提供,我們需要進行IoC配置使其加入IoC容器方可生效!視圖解析器主要作用簡化模版視圖頁面查找的,但是需要注意,前后端分離項目,后端只返回JSON數(shù)據(jù),不返回頁面,那就不需要視圖解析器!所以,視圖解析器,相對其他的組件不是必須的![財務(wù)]

?3)圖解說明

?

4-問題與思考

1、什么是MVC架構(gòu),它的核心思想是什么?

MVC(模型-視圖-控制器)是一種軟件設(shè)計模式,將應(yīng)用程序分為三個部分,分別是模型(負(fù)責(zé)處理數(shù)據(jù)和業(yè)務(wù)邏輯)、視圖(負(fù)責(zé)顯示用戶界面)、控制器(負(fù)責(zé)處理用戶輸入和管理流程)。MVC的核心思想是分離關(guān)注點,使得各部分可以獨立開發(fā)和維護。

2、在沒有MVC之前,Web應(yīng)用是如何組織和開發(fā)的?存在哪些問題?

在沒有MVC之前,Web應(yīng)用通常采用緊密耦合的設(shè)計,HTML、業(yè)務(wù)邏輯和數(shù)據(jù)處理混合在一起,導(dǎo)致難以維護和擴展。

3、為什么MVC成為一種流行的設(shè)計模式,而且在Web開發(fā)中得到廣泛應(yīng)用?MVC架構(gòu)解決了那些方面的問題?

MVC架構(gòu)的引入解決了分離關(guān)注點、提高可維護性、降低耦合度的問題。它使得開發(fā)者可以更好地組織代碼,降低了變更一個部分對其他部分的影響,提高了代碼的可重用性和可測試性。

4、所以什么是 SpringMVC ?

SpringMVC是Spring框架中的一個模塊,用于支持基于模型-視圖-控制器(MVC)設(shè)計模式的Web應(yīng)用程序開發(fā)。它提供了一種結(jié)構(gòu)化的方式來組織和開發(fā)Web應(yīng)用,使得代碼更加模塊化、可維護,并且易于擴展。SpringMVC是建立在核心Spring框架之上的,因此可以很好地集成Spring的其他模塊。

二、SpringMVC快速體驗

1-體驗場景需求

2-配置分析

1. ?DispatcherServlet,在web.xml配置!設(shè)置處理所有請求!
2. ?HandlerMapping,HandlerAdapter,Handler需要加入到IoC容器,供DS調(diào)用!
3. ?Handler需要配置到HandlerMapping中供DS查找!

3-準(zhǔn)備項目

1)創(chuàng)建項目

? ?springmvc-base-quick

? ?注意:需要轉(zhuǎn)成maven/web程序!!

2)導(dǎo)入依賴

<properties><spring.version>6.0.6</spring.version><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties><dependencies><!-- springioc相關(guān)依賴  --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><!-- web相關(guān)依賴  --><!-- 在 pom.xml 中引入 Jakarta EE Web API 的依賴 --><!--在 Spring Web MVC 6 中,Servlet API 遷移到了 Jakarta EE API,因此在配置 DispatcherServlet 時需要使用Jakarta EE 提供的相應(yīng)類庫和命名空間。錯誤信息 “‘org.springframework.web.servlet.DispatcherServlet’is not assignable to ‘javax.servlet.Servlet,jakarta.servlet.Servlet’” 表明你使用了舊版本的Servlet API,沒有更新到 Jakarta EE 規(guī)范。--><dependency><groupId>jakarta.platform</groupId><artifactId>jakarta.jakartaee-web-api</artifactId><version>9.1.0</version><scope>provided</scope></dependency><!-- springwebmvc相關(guān)依賴  --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency></dependencies>

?3)Controller聲明

@Controller
public class HelloController {//handlers/*** handler就是controller內(nèi)部的具體方法* @RequestMapping("/springmvc/hello") 就是用來向handlerMapping中注冊的方法注解!* @ResponseBody 代表向瀏覽器直接返回數(shù)據(jù)!*/@RequestMapping("/springmvc/hello")@ResponseBodypublic String hello(){System.out.println("HelloController.hello");return "hello springmvc!!";}
}

4)SpringIoC配置

<?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"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"><!-- 掃描controller對應(yīng)的包,將handler加入到ioc--><context:component-scan base-package="com.atguigu.controller" /><!-- 方案1: 手動配置handlerMapping 和 handlerAdapter --><!-- handlerMappingRequestMappingHandlerMapping 就是springmvc提供的組件支持@RequestMapping方式注冊的handler--><bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" /><!-- handlerAdapterRequestMappingHandlerAdapter 就是springmvc提供的組件支持@RequestMapping方式注冊的handler--><bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" /><!-- 方案2: 不配置解釋: springmvc會在啟動的時候,如果發(fā)現(xiàn)我們沒有配置handlerMapping,handlerAdapter,viewResolver就會加載spring-webmvc包下的配置DispatcherServlet.properties下的組件!DispatcherServlet.properties:org.springframework.web.servlet.HandlerMapping=org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,\org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping,\org.springframework.web.servlet.function.support.RouterFunctionMappingorg.springframework.web.servlet.HandlerAdapter=org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter,\org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter,\org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter,\org.springframework.web.servlet.function.support.HandlerFunctionAdapter........所以,我們可以不同寫,也會默認(rèn)加載! 注意: 一旦你配置了,就不會加載對應(yīng)的默認(rèn)組件切記!!!--><!-- viewResolver 不需要配置,因為我們不需要查找邏輯視圖!!! --></beans>

?5)web.xml配置

在一個MVC框架中,首要任務(wù)是有效地接收并處理請求。

為了實現(xiàn)這一目標(biāo),框架通常會設(shè)計一個前端控制器。

這個前端控制器位于框架的最前沿,負(fù)責(zé)接收所有進入系統(tǒng)的請求。

選擇在Servlet或者Filter中實現(xiàn)這一前端控制器。

這個前端控制器的任務(wù)不僅僅是作為請求的第一站,更是核心調(diào)度管理的關(guān)鍵組件。

這樣,它在整個MVC框架中既是前端的門衛(wèi),又是核心的調(diào)度者。

在Spring MVC中,前端控制器是由DispatcherServlet來實現(xiàn)的。

<?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_4_0.xsd"version="4.0"><!-- 配置SpringMVC中負(fù)責(zé)處理請求的核心Servlet,也被稱為SpringMVC的前端控制器 --><servlet><servlet-name>DispatcherServlet</servlet-name><!-- DispatcherServlet的全類名 --><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 通過初始化參數(shù)指定SpringMVC配置文件位置 --><init-param><!-- 如果不記得contextConfigLocation配置項的名稱,可以到DispatcherServlet的父類FrameworkServlet中查找 --><param-name>contextConfigLocation</param-name><!-- 使用classpath:說明這個路徑從類路徑的根目錄開始才查找 --><param-value>classpath:spring-mvc.xml</param-value></init-param><!-- 作為框架的核心組件,在啟動過程中有大量的初始化操作要做,這些操作放在第一次請求時才執(zhí)行非常不恰當(dāng) --><!-- 我們應(yīng)該將DispatcherServlet設(shè)置為隨Web應(yīng)用一起啟動 --><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>DispatcherServlet</servlet-name><!-- 對DispatcherServlet來說,url-pattern有兩種方式配置 --><!-- 方式一:配置“/”,表示匹配整個Web應(yīng)用范圍內(nèi)所有請求。這里有一個硬性規(guī)定:不能寫成“/*”。只有這一個地方有這個特殊要求,以后我們再配置Filter還是可以正常寫“/*”。 --><!-- 方式二:配置“*.擴展名”,表示匹配整個Web應(yīng)用范圍內(nèi)部分請求 --><url-pattern>/</url-pattern></servlet-mapping></web-app>

在 SpringBoot 中傳統(tǒng)的web.xml進行Servlet配置的方式已經(jīng)不需要了。Spring Boot提供了默認(rèn)的Servlet配置,并通過自動檢測和配置,使得大部分情況下無需手動干預(yù)。(默認(rèn)不用配置)?

4-測試成功

?5-總結(jié)

????????瀏覽器發(fā)送請求,若請求地址符合前端控制器的url-pattern,該請求就會被前端控制器DispatcherServlet處理。前端控制器會讀取SpringMVC的核心配置文件,通過掃描組件找到控制器,將請求地址和控制器中@RequestMapping注解的value屬性值進行匹配,若匹配成功,該注解所標(biāo)識的控制器方法就是處理請求的方法。處理請求的方法需要返回一個字符串類型的視圖名稱,該視圖名稱會被視圖解析器解析,加上前綴和后綴組成視圖的路徑,通過Thymeleaf對視圖進行渲染,最終轉(zhuǎn)發(fā)到視圖所對應(yīng)頁面

http://www.risenshineclean.com/news/26856.html

相關(guān)文章:

  • 開發(fā)一個網(wǎng)站需要多少時間代寫文章接單平臺
  • 珠海自適應(yīng)網(wǎng)站設(shè)計做網(wǎng)站哪家好
  • 個人買域名有什么用徐州seo培訓(xùn)
  • 做網(wǎng)站需要多大的內(nèi)存品牌推廣公司
  • 學(xué)生做網(wǎng)站賺錢網(wǎng)站推廣的常用方法有哪些?
  • 厚街鎮(zhèn)網(wǎng)站仿做seo關(guān)鍵詞排名優(yōu)化制作
  • 泉州網(wǎng)站建設(shè)推廣賺錢的軟件排行
  • 名詞解釋 網(wǎng)站內(nèi)容軟文推廣文章案例
  • 國內(nèi)vps做網(wǎng)站要備案嗎太原seo排名公司
  • 淘寶網(wǎng)站的論壇做的怎么樣寧波seo托管公司
  • 國家企業(yè)信息公示官網(wǎng)入口seo推廣系統(tǒng)排名榜
  • 上海城鄉(xiāng)住房建設(shè)部網(wǎng)站首頁近期的重大新聞
  • 網(wǎng)站建設(shè)有利于優(yōu)化seo教程技術(shù)
  • 鹽城公司做網(wǎng)站自己建站的網(wǎng)站
  • 泗水做網(wǎng)站普通話的順口溜6句
  • 做網(wǎng)站開發(fā)需要的英語水平推廣賺錢軟件
  • 蘭州網(wǎng)站建站搜索引擎優(yōu)化論文3000字
  • 軟件網(wǎng)站開發(fā)實訓(xùn)報告東莞網(wǎng)站排名提升
  • 做圍棋死活題的網(wǎng)站百度關(guān)鍵詞怎么優(yōu)化
  • cms網(wǎng)站開發(fā)網(wǎng)站模板樂事薯片軟文推廣
  • 河北省住房和城鄉(xiāng)建設(shè)廳信用網(wǎng)站知乎營銷推廣
  • wordpress pluto安康地seo
  • 義烏獨立站百度網(wǎng)盤在線登錄
  • 西安做網(wǎng)站的網(wǎng)絡(luò)公司優(yōu)化方案模板
  • 做網(wǎng)站沒有成本的方法網(wǎng)站推廣引流最快方法
  • 網(wǎng)站策劃預(yù)算怎么做南陽seo
  • php充值網(wǎng)站源碼小程序開發(fā)框架
  • 樹莓派上怎么做網(wǎng)站項目推廣渠道有哪些
  • 高端文化網(wǎng)站谷歌地球
  • 如何建設(shè)網(wǎng)頁游戲網(wǎng)站百度指數(shù)上多少就算熱詞