国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

(2)前端控制器的擴展配置, 視圖解析器類型以及MVC執(zhí)行流程的概述

這篇具有很好參考價值的文章主要介紹了(2)前端控制器的擴展配置, 視圖解析器類型以及MVC執(zhí)行流程的概述。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

核心配置文件的說明

注冊前端控制器的細節(jié)

在web.xml文件注冊SpringMVC的前端控制器DispatcherServlet時在url-pattern標簽中使用//*的區(qū)別

  • /可以匹配.html或.js或.css等方式的請求路徑,但不匹配*.jsp的請求路徑

  • /*可以匹配所有請求(包括.jsp請求), 例如在過濾器中使用/*表示匹配所有請求

  • DispatcherServlet并沒有能力將jsp翻譯成對應的Servlet,所以如果讓它處理*.jsp請求會導致頁面無法訪問

由于SpringMVC核心配置文件是由DispatcherServlet初始化時自動解析的,所以它的名稱和位置必須固定,或者在web.xml文件中進行指定,等Tomcat自動解析

  • SpringMVC核心配置文件默認需要放在WEB-INF目錄下且文件名稱為springMVC-servlet.xml(springMVC由servlet-name決定)

  • init-param初始化參數(shù)標簽的子標簽param-value設置SpringMVC配置文件位置和名稱

  • load-on-startup標簽設置DispatcherServlet的初始化時間(它在啟動過程中有大量的初始化操作,這些操作默認在第一次請求時執(zhí)行,會嚴重影響訪問速度)

<?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ā)送的請求統(tǒng)一進行處理-->
    <servlet>
        <servlet-name>springMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--設置SpringMVC配置文件的位置和名稱-->
        <init-param>
            <!--contextConfigLocation為固定值-->
            <param-name>contextConfigLocation</param-name>
            <!--使用classpath:表示從類路徑查找配置文件,例如maven工程中的src/main/resources-->
            <param-value>classpath:springMVC.xml</param-value>
        </init-param>
        <!--將前端控制器DispatcherServlet的初始化時間提前到服務器啟動時,默認第一次請求時初始化-->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>springMVC</servlet-name>
        <!--設置springMVC的核心控制器所能處理的請求的請求路徑-->
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

Tomcat中的Servlet

DefaultServlet是Tomcat中專門處理靜態(tài)資源(除jsp和servlet)請求的Servlet, 遇到這些靜態(tài)資源請求時Tomcat會在服務器下找到這個資源并返回

  • 所有web工程的web.xml文件的配置都是繼承于Tomcat服務器的web.xml配置,如果我們修改了當前web工程的配置,就會覆蓋Tomcat服務器的web.xml配置

DispatcherServlet的url-pattern=/表示代替DefaultServlet處理靜態(tài)資源請求

  • DispatcherServlet前端控制器處理請求的方式是看哪個控制器方法的請求映射的路徑是這個靜態(tài)資源名,找到則執(zhí)行控制器方法找不到則報錯
<servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
    <init-param>
        <param-name>debug</param-name>
        <param-value>0</param-value>
    </init-param>
    <init-param>
        <param-name>listings</param-name>
        <param-value>false</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <!--DefaultServlet可以處理除jsp外的所有請求-->
    <url-pattern>/</url-pattern>
</servlet-mapping>

JspServlet是Tomcat中專門負責處理*.jsp請求的,將jsp翻譯成對應的Servlet,訪問這個Servlet把jsp頁面中所有的內容以響應數(shù)據(jù)的方式輸出到瀏覽器

若DispatcherServlet的url-pattern=/* 表示代替JspServlet處理.jsp請求,由于DispatcherServlet沒有能力處理這種請求就會導致 * .jsp頁面不能訪問*

<servlet>
    <servlet-name>jsp</servlet-name>
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
    <init-param>
        <param-name>fork</param-name>
        <param-value>false</param-value>
    </init-param>
     <init-param>
        <param-name>xpoweredBy</param-name>
        <param-value>false</param-value>
    </init-param>
    <load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
    <!--JspServlet它專門處理*.jsp請求-->
    <servlet-name>jsp</servlet-name>
    <url-pattern>*.jsp</url-pattern>
    <url-pattern>*.jspx</url-pattern>
</servlet-mapping>

視圖解析器的類型

InternalResourceViewResolver是SpringMvc自帶的視圖解析器可以用來拼接頁面地址,得到最終jsp頁面物理地址后解析頁面中的語法并轉發(fā)到視圖對應頁面

<?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 http://www.springframework.org/schema/context/spring-context-4.0.xsd">
	<!-- 掃描所有組件 -->
	<context:component-scan base-package="com.atguigu"></context:component-scan>
	<!-- 配置一個視圖解析器 ,能幫我們拼接頁面地址-->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/pages/"></property>
		<property name="suffix" value=".jsp"></property>
	</bean>
</beans>

Thymeleaf是第三方的視圖解析器也可以幫我們拼接頁面地址,得到最終html頁面的物理地址后解析頁面中的語法并在服務器當中轉發(fā)到視圖對應的頁面文章來源地址http://www.zghlxwxcb.cn/news/detail-607830.html

<?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">
    <!--自動掃描控制層組件-->
    <context:component-scan base-package="com.atguigu.mvc.controller"></context:component-scan>
    <!--配置Thymeleaf視圖解析器-->
    <bean id="viewResolver" class="org.thymeleaf.spring5.view.ThymeleafViewResolver">
        <property name="order" value="1"/>
        <property name="characterEncoding" value="UTF-8"/>
        <property name="templateEngine">
            <bean class="org.thymeleaf.spring5.SpringTemplateEngine">
                <property name="templateResolver">
                    <bean class="org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver">
                        <!--視圖前綴-->
                        <property name="prefix" value="/WEB-INF/templates/"/>
                        <!--視圖后綴-->
                        <property name="suffix" value=".html"/>
                        <property name="templateMode" value="HTML5"/>
                        <property name="characterEncoding" value="UTF-8" />
                    </bean>
                </property>
            </bean>
        </property>
    </bean>
</beans>

到了這里,關于(2)前端控制器的擴展配置, 視圖解析器類型以及MVC執(zhí)行流程的概述的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【OC】使用協(xié)議(Protocol)在Cocoa應用程序中實現(xiàn)視圖控制器之間的通信

    在Cocoa應用程序開發(fā)中,視圖控制器(ViewController)之間的通信是非常常見的需求。為了實現(xiàn)這種通信,我們可以使用協(xié)議(Protocol)來定義一個接口,然后讓視圖控制器遵循該協(xié)議并實現(xiàn)相應的方法。本文將介紹如何使用協(xié)議在Cocoa應用程序中實現(xiàn)視圖控制器之間的通信。 首

    2024年02月05日
    瀏覽(19)
  • 【設計模式】前端控制器模式

    【設計模式】前端控制器模式

    前端控制器模式(Front Controller Pattern)是用來提供一個集中的請求處理機制,所有的請求都將由一個單一的處理程序處理。該處理程序可以做認證/授權/記錄日志,或者跟蹤請求,然后把請求傳給相應的處理程序。以下是這種設計模式的實體。 前端控制器(Front Controller) ?

    2024年02月13日
    瀏覽(21)
  • k8s控制器之job--第九彈 job如何使用擴展進行并行處理

    下面是一個 Job 的模板文件: 與 pod template 不同,此處的 job template 并不是一個 Kubernetes API 對象,而僅僅是 Job 對象的 yaml 文件(其中包含一些占位符)。例子文件中的 $ITEM 對 Kubernetes 并沒有任何意義,僅僅是一個占位符,必須在使用時用實際數(shù)值替換。 在此例子中,容器唯

    2024年02月10日
    瀏覽(28)
  • k8s 控制器StatefulSet原理解析

    k8s 控制器StatefulSet原理解析

    ??明明跟你說過:個人主頁 ??個人專欄:《Kubernetes航線圖:從船長到K8s掌舵者》??? ??行路有良友,便是天堂?? 目錄 一、前言 1、k8s概述 2、有狀態(tài)服務和無狀態(tài)服務? 二、StatefulSet基本概念 1、StatefulSet特性? 2、StatefulSet與Deployment、DaemonSet的對比? 三、StatefulSet核心組件

    2024年04月17日
    瀏覽(22)
  • verilog實現(xiàn)I2C控制器 (小梅哥思路)----詳細解析

    verilog實現(xiàn)I2C控制器 (小梅哥思路)----詳細解析

    模塊框圖如下所示 輸入輸出信號: 整體的思路如下: 通過輸入的命令組合,完成一次8字節(jié)數(shù)據(jù)的傳輸。定義了6種命令, WR 寫數(shù)據(jù)請求 (6’b000_001) STA 起始位請求(6’b000_010) RD 讀數(shù)據(jù)請求(6’b000_100) STO 停止位請求(6’b001_000) ACK 應答位請求(6’b010_000) NACK 無應答請求(

    2024年02月03日
    瀏覽(44)
  • 一種對不同類型齊格勒-尼科爾斯 P-I-D 控制器調諧算法研究(Matlab代碼實現(xiàn))

    一種對不同類型齊格勒-尼科爾斯 P-I-D 控制器調諧算法研究(Matlab代碼實現(xiàn))

    ???????? 歡迎來到本博客 ???????? ??博主優(yōu)勢: ?????? 博客內容盡量做到思維縝密,邏輯清晰,為了方便讀者。 ?? 座右銘: 行百里者,半于九十。 ?????? 本文目錄如下: ?????? 目錄 ??1 概述 ??2 運行結果 ??3?參考文獻 ??4 Matlab代碼及文章講解

    2024年02月10日
    瀏覽(30)
  • web中為什么要引入service層以及前端控制器DispatchServlet的作用以及原理剖析

    review: 最初的做法是: 一個請求對應一個Servlet,這樣存在的問題是servlet太多了 把一些列的請求都對應一個Servlet, IndexServlet/AddServlet/EditServlet/DelServlet/UpdateServlet - 合并成FruitServlet 通過一個operate的值來決定調用FruitServlet中的哪一個方法 使用的是switch-case 在上一個版本中,Ser

    2024年02月04日
    瀏覽(21)
  • 了解SPI總線CAN控制器 MCP2515配置 一文即可

    了解SPI總線CAN控制器 MCP2515配置 一文即可

    最近工作中遇到需要6路CAN通信的情況,單片機自帶的4路已不滿足實際需求,故采用了SPI總線的CAN控制器芯片MCP2515,通過SPI通信的CAN擴展芯片最高可實現(xiàn) 1Mbps 的遵循 CAN 2.0B 的協(xié)議通信,配置起來也比較繁瑣,故寫誕生了這篇文章。本篇中僅對基礎功能進行測試,如有疑問可

    2024年02月06日
    瀏覽(29)
  • 【Gazebo入門教程】第五講 控制器插件的編寫與配置(上)

    【Gazebo入門教程】第五講 控制器插件的編寫與配置(上)

    前言 : 在先前的博客中,我們不僅完成了對機器人模型的建立和仿真,并且創(chuàng)建了機器人的工作空間,即仿真環(huán)境的設置,那么想要通過控制機器人傳感器來完成對于機器人的控制就需要進一步研究,學會如何使用 控制插件 ,通過編寫代碼在Gazebo中加載C++庫完成對于機器人

    2023年04月08日
    瀏覽(60)
  • 【.net core】獲取或排除指定控制器的 Swagger 文檔配置

    在api接口開發(fā)完成后,我們經常會使用swagger文檔配置來查看相關接口信息,有時候也會查看指定某個控制器來生成swagger文檔,或是排除某些控制器等操作,如下為示例

    2024年02月12日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包