国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

SpringBoot這些Web知識點,你知道嗎?

開發(fā) 前端
使用Jetty和Tomcat,如果你使用war打包,它應該可以正常工作。當使用java -jar啟動時,可執(zhí)行war可以正常工作,也可以部署到任何標準容器。在使用可執(zhí)行jar時,不支持jsp。

環(huán)境:SpringBoot2.7.16

1. Servlet/Filter/*Listener注冊

任何Spring bean的Servlet、Filter或 *Listener實例都會自動注冊到容器中。如果你想從應用程序中引用一個值,@Value獲取application.properties值。

@Component
public class DemoServlet extends HttpServlet {
  @Override
  protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    resp.getWriter().println("demo servlet") ;
  }
}

直接將Servlet注冊為Bean,容器會自動注冊。有一點需要注意:如果僅僅只有一個Servlet,那它的訪問url是 '/' 。這會與默認的DispatcherServlet路徑一樣。如果你有多個Servlet,那么訪問路徑將是:'/beanName/',如上面的DemoServlet默認的訪問路徑:'/demoServlet/'。

如果基于約定的映射不夠靈活,可以使用ServletRegistrationBean、FilterRegistrationBean和ServletListenerRegistrationBean類進行完全控制。

過濾器Filter默認映射路徑是:'/*'。

提示:

若要查看應用程序中每個Filter的順序,請為web日志記錄組啟用調(diào)試級別日志記錄(logging.level.web=debug)。注冊過濾器的詳細信息,包括它們的順序和URL模式,將在啟動時記錄下來。

2. Servlet Conetxt初始化

嵌入式Servlet容器不會直接執(zhí)行Servlet3.0+ javax.servlet.ServletContainerInitializer接口或Spring的org.springframework.web.WebApplicationInitializer接口。這樣做是有意為之,目的是降低在war中運行的第三方庫破壞Spring Boot應用程序的風險。

如果需要在Spring Boot應用程序中執(zhí)行Servlet上下文初始化,應該注冊一個實現(xiàn)org.springframework.boot.web.servlet.ServletContextInitializer接口的bean。onStartup方法提供了對ServletContext的訪問,如果有必要,可以很容易地將其用作現(xiàn)有WebApplicationInitializer的適配器。

3. 掃描Servlet/Filter/*Listener

在使用嵌入式容器時,可以通過使用@ServletComponentScan來啟用自動注冊帶有@WebServlet、@WebFilter和@WebListener注解的類。

@ServletComponentScan在獨立容器中沒有效果,取而代之的是容器的內(nèi)置發(fā)現(xiàn)機制。

4. ServletWebServerApplicationContext

在底層,Spring Boot使用了另一種類型的ApplicationContext來支持嵌入式servlet容器。ServletWebServerApplicationContext是一種特殊類型的WebApplicationContext,它通過搜索單個ServletWebServerFactory bean來引導自己。通常TomcatServletWebServerFactory、jetttyservletwebserverfactory或UndertowServletWebServerFactory都是自動配置的。

在嵌入式容器設(shè)置中,ServletContext被設(shè)置為服務(wù)器啟動的一部分,該啟動發(fā)生在應用程序上下文初始化期間。因此,ApplicationContext中的bean不能可靠地用ServletContext進行初始化。解決這個問題的一種方法是注入ApplicationContext作為bean的依賴項,并僅在需要時訪問ServletContext。另一種方法是在服務(wù)器啟動后使用回調(diào)函數(shù)。這可以使用ApplicationListener來監(jiān)聽ApplicationStartedEvent,如下所示:

public class PackContext implements ApplicationListener<ApplicationStartedEvent> {
  private ServletContext servletContext;
  @Override
  public void onApplicationEvent(ApplicationStartedEvent event) {
      ApplicationContext applicationContext = event.getApplicationContext() ;
      this.servletContext = ((WebApplicationContext) applicationContext).getServletContext() ;
  }
}

5. 自定義Servlet容器

可以使用Spring Environment屬性來配置常見的Servlet容器設(shè)置。通常,會在application.properties或application.yaml文件中定義屬性。

常見的服務(wù)器設(shè)置包括:

  • 網(wǎng)絡(luò)設(shè)置:偵聽傳入HTTP請求的端口(server.port)、綁定到server.address的接口地址等。
  • 會話設(shè)置:會話是否持久(server.servlet.session.persistent),會話超時(server.servlet.session.timeout),會話數(shù)據(jù)的位置(server.servlet.session.store-dir),以及會話cookie配置(server.servlet.session.cookie.*)。
  • 錯誤管理:錯誤頁的位置(server.error.path)等等。
  • SSL
  • HTTP compression

Spring Boot盡可能地嘗試公開通用設(shè)置,但并不總是可行。對于這些情況,專用的命名空間提供特定于服務(wù)器的自定義(請參見server.tomcat和server.undertow)。例如,可以用嵌入式Servlet容器的特定功能配置訪問日志。

字符編碼

用于請求和響應處理的嵌入式servlet容器的字符編碼行為可以使用server.servlet.encoding.*配置屬性進行配置。

當請求的Accept-Language頭指示請求的區(qū)域設(shè)置時,servlet容器將自動將其映射到字符集。每個容器都提供默認的區(qū)域設(shè)置到字符集映射,您應該驗證它們是否滿足應用程序的需要。如果沒有,請使用server.servlet.encoding.mapping配置屬性自定義映射,如下:

server:
  servlet:
    encoding:
      mapping:
        ko: "UTF-8"

通過編程自定義

如果需要以編程方式配置嵌入式servlet容器,可以注冊一個實現(xiàn)WebServerFactoryCustomizer接口的Spring bean。WebServerFactoryCustomizer提供對ConfigurationServletWebServerFactory的訪問,其中包括許多自定義setter方法。示例:

@Component
public class MyWebServerFactoryCustomizer implements WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> {
  @Override
  public void customize(ConfigurableServletWebServerFactory server) {
    // 設(shè)置服務(wù)端口
    server.setPort(9000) ;
    // 設(shè)置異步超時時間
    server.addConnectorCustomizers((connector) -> connector.setAsyncTimeout(Duration.ofSeconds(20).toMillis())) ; 
  }
}

直接自定義ConfigurableServletWebServerFactory

對于需要從ServletWebServerFactory進行擴展的更高級的用例,你可以自己公開此類類型的bean。該接口提供如下配置

public interface ConfigurableServletWebServerFactory extends ConfigurableWebServerFactory, ServletWebServerFactory, WebListenerRegistry 
  void setContextPath(String contextPath);
  void setDisplayName(String displayName);
  void setSession(Session session);
  void setRegisterDefaultServlet(boolean registerDefaultServlet);
  void setMimeMappings(MimeMappings mimeMappings);
  void setDocumentRoot(File documentRoot);
  void setInitializers(List<? extends ServletContextInitializer> initializers);
  void addInitializers(ServletContextInitializer... initializers);
  void setJsp(Jsp jsp);
  void setLocaleCharsetMappings(Map<Locale, Charset> localeCharsetMappings);
  void setInitParameters(Map<String, String> initParameters);
  void setCookieSameSiteSuppliers(List<? extends CookieSameSiteSupplier> cookieSameSiteSuppliers);
  void addCookieSameSiteSuppliers(CookieSameSiteSupplier... cookieSameSiteSuppliers);
}


6. JSP限制

當運行使用嵌入式servlet容器(并打包為可執(zhí)行歸檔文件)的Spring Boot應用程序時,JSP支持存在一些限制。

  • 使用Jetty和Tomcat,如果你使用war打包,它應該可以正常工作。當使用java -jar啟動時,可執(zhí)行war可以正常工作,也可以部署到任何標準容器。在使用可執(zhí)行jar時,不支持jsp。
  • Undertow不支持JSP。
  • 創(chuàng)建自定義error.jsp頁面不會覆蓋錯誤處理的默認視圖。應該使用自定義錯誤頁面。

以上是本篇文章的全部內(nèi)容,希望對你有所幫助。

責任編輯:武曉燕 來源: Spring全家桶實戰(zhàn)案例源碼
相關(guān)推薦

2023-02-15 08:12:19

http超時過濾器

2024-06-28 09:37:14

技巧.NET開發(fā)

2020-10-28 11:20:55

vue項目技

2019-11-25 21:46:12

數(shù)據(jù)湖云計算數(shù)據(jù)倉庫

2021-03-19 18:13:21

手機內(nèi)存軟件

2020-11-18 07:52:08

2020-12-24 15:26:07

Redis數(shù)據(jù)庫

2015-06-29 09:06:51

2021-02-02 08:21:28

網(wǎng)絡(luò)面試通信

2023-01-16 08:09:51

SpringMVC句柄

2015-07-03 11:20:41

編程學習方法

2021-08-05 18:21:29

Autowired代碼spring

2016-01-11 09:48:07

2018-05-11 15:53:59

2023-06-08 08:06:07

error錯誤頁原理

2017-11-09 15:29:21

CPU溫度常識

2018-03-07 06:37:14

開源項目源代碼云計算

2018-02-06 09:40:25

PythonOOP繼承

2019-02-12 11:15:15

Spring設(shè)計模式Java

2019-07-08 10:18:38

MPLSIP數(shù)據(jù)
點贊
收藏

51CTO技術(shù)棧公眾號

美女一区二区视频| 国产日韩在线亚洲字幕中文| 久久精品国产综合| 特黄aaaaaaaaa毛片免费视频| 麻豆成人av在线| 欧美韩国日本在线| 97精品国产| 久久综合色8888| 欧美精品二区三区四区免费看视频 | 夜夜嗨av一区二区三区网页| 日韩精品一区二区三区电影| 韩国精品一区二区三区| 欧美综合第一页| 成人免费91| 亚洲精品成人免费| 免费黄网站在线播放| 欧美性猛交xxxx| jizzjizzjizz亚洲| 久久精品视频一区| 久久精品视频16| 国产黄色成人av| 中文字幕一区综合| 日日欢夜夜爽一区| 欧美日韩在线观看一区| 亚洲一区二区三区高清| 国产一区二区免费电影| 伊人青青综合网| 亚洲曰本av电影| 综合久久一区| 亚洲一区二区三区成人在线视频精品 | 影音先锋电影在线观看| 亚洲人成网站影音先锋播放| 人人干人人干人人| 中文一区一区三区高中清不卡| 91九色在线观看视频| 成人性视频网站| 日本www在线播放| 99久久精品国产麻豆演员表| 国产精品一色哟哟| 国产麻豆日韩欧美久久| 中文字幕综合在线观看| 九九精品视频在线看| 国产高潮呻吟久久久| 狠狠色丁香婷婷综合久久片| 97超碰人人爱| 97久久精品人人爽人人爽蜜臀| 男人添女人下面高潮视频| 久久综合色8888| 男人艹女人网站| 亚洲成a人片综合在线| 日韩亚洲视频在线观看| 欧美三级在线看| 少女频道在线观看高清| 国产欧美一区二区| 成人短视频软件网站大全app| 天天综合网天天综合色| 婷婷五月综合缴情在线视频| 亚洲人体在线| 国产精品99久| 国产精华一区二区三区| 菠萝蜜一区二区| 亚洲精品一区二区网址| 在线久久视频| 久久99精品国产自在现线| 97aⅴ精品视频一二三区| 精品国产露脸精彩对白| 麻豆中文字幕在线观看| 国产精品tv| 91亚洲精品久久久蜜桃| 男女激情无遮挡| 国产色产综合色产在线视频| 大胆高清日本a视频| 亚洲成人动漫一区| 日本在线免费网| 亚洲美女中文字幕| 韩国女主播一区二区三区| 国产精品在线看| 老司机精品福利视频| 亚洲精品无码国产| 一区二区三区在线视频观看| 波多野结衣一区二区| 国产一区二区三区精品久久久| 高清一区二区三区| 国产一区二区不卡视频| 国产白丝精品91爽爽久久| xxxx影院| 精品国产免费人成在线观看| 国产精品色婷婷在线观看| 国产精品亚发布| 久久99国产精品尤物| 成人嫩草影院免费观看| 欧美猛男gaygay网站| 日韩毛片免费看| 亚洲精品欧美极品| hitomi一区二区三区精品| 台湾av在线二三区观看| 国产亚洲欧美视频| 国产精品久久久久一区二区三区厕所| 亚洲精品一区二区毛豆| 国产欧美中文在线| 黄黄的网站在线观看| 欧美大秀在线观看| 久久狠狠一本精品综合网| 欧美性猛交xxx乱久交| 欧美精品日日鲁夜夜添| 1769国产精品视频| 日本一区二区三区四区在线观看 | porn视频在线观看| 久久精品国产亚洲精品| 欧美成人嫩草网站| 欧美丰满熟妇bbbbbb百度| 欧美性生活大片视频| 激情视频极品美女日韩| 中文字幕在线亚洲精品| 婷婷久久综合九色综合伊人色| 欧美电影在线观看网站| 久久视频在线观看中文字幕| 亚洲人成网站色在线观看| 色猫猫成人app| 欧美一区二视频在线免费观看| 亚洲伦在线观看| 日本a人精品| 亚洲自拍三区| 欧美优质美女网站| 激情婷婷综合| 亚洲性生活网站| 亚洲天堂2020| 视频一区二区三区中文字幕| 亚洲欧洲成人| 青青草一区二区| 国产欧美精品一区二区色综合| 男人av在线播放| 你懂的网址一区二区三区| 精品女厕一区二区三区| 加勒比色综合久久久久久久久 | 欧美日韩小视频| 蜜桃成人av| 国产区二区三区| 在线观看国产精品淫| 免费在线看一区| 色a资源在线| 久久香蕉综合色| 91精品国产综合久久国产大片| 韩国久久久久| 3p视频在线观看| 99精彩视频在线观看免费| 精品人伦一区二区三区蜜桃网站| 香蕉久久夜色精品国产更新时间| 欧美一级黄色影院| 九九热这里只有精品6| 国产亚洲va综合人人澡精品| 日韩在线亚洲| 妞干网在线视频| 国产精品久久久久久av| 亚洲激情第一区| 99精品美女| 无遮挡的视频在线观看| 日本一区二区在线| 亚洲精品成人久久久| 国产激情一区二区三区四区 | 精品国产电影| 欧美少妇bbb| 最新亚洲视频| 国产三线在线| 青青在线视频免费观看| 综合国产在线视频| 91年精品国产| 成人h动漫免费观看网站| 国产网站观看9久| 国产精品一区二区久久| 在线观看一区不卡| 日韩av一区二区三区| 黄色成人免费网| 久久久久久久久久久久久国产精品 | 亚洲美女视频在线观看| 久久精品高清| av在线免费观看网站| 视频一区免费观看| 在线视频中文亚洲| 国产精品福利电影一区二区三区四区| 精品国产乱码久久久久久1区2匹| 天天影院图片亚洲| 日韩精品在在线一区二区中文 | 国内精品卡一卡二卡三新区| 亚洲综合大片69999| 日韩欧美一级在线播放| 日韩在线综合| 一二三区精品| 成人免费黄色大片| 91精品美女| 国产黄在线观看免费观看不卡| 久久精品精品电影网| **欧美大码日韩| 欧美日韩一卡| 美女视频在线免费| 久久久久久久久久久久91| 亚洲aⅴ日韩av电影在线观看| 亚洲激情 国产| 国产精品入口麻豆原神| 激情婷婷久久|