1. 程式人生 > >springboot訪問jsp頁面時候卻變成了下載檔案

springboot訪問jsp頁面時候卻變成了下載檔案

前幾天在自己寫springboot專案的時候遇到個棘手 的問題,就是我訪問專案url的時候本來應該跳轉到jsp頁面呢,然而卻變成了下載檔案,開啟檔案一看竟然是我要訪問的jsp頁面內容,感到很奇怪,於是就仔細檢查程式碼,檢查是否加上了responseBody

是否把路徑寫作了,配置檔案裡是否有錯誤問題,找了半天都沒有發現問題,百度了一番,說是沒有加入jsp的相關依賴。然後就嘗試著加入下邊的依賴。

<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.tomcat.embed</groupId>
			<artifactId>tomcat-embed-jasper</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.tomcat</groupId>
			<artifactId>tomcat-jsp-api</artifactId>
		</dependency>

嘗試重新啟動一下,果然就好了,此時我的springboot版本是

<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.1.BUILD-SNAPSHOT</version>
		<relativePath /> <!-- lookup parent from repository -->
	</parent>

但是通過一番研究和觀察發現,對於下邊這個版本根本不需要上邊的操作仍然正常可以訪問專案的jsp頁面。

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.3.5.RELEASE</version>
		<relativePath /> <!-- lookup parent from repository -->
	</parent>

這裡明顯就是RELEASE與SNAPSHOT的問題了,然後瞭解了一下,大概意思就是SNAPSHOT是不穩定版本,正在開發當中,RELEASE是穩定版本。

Snapshot版本代表不穩定、尚處於開發中的版本,快照版本。

Release版本則代表穩定的版本,發行版本。

什麼時候用Snapshot版本?

依賴庫中的jar正處於開發的階段,會被經常被更新,這種情況下,如果使用Release,會頻繁增加版本號,導致版本號的濫用。

在上傳jar時,選擇Snapshot和Release上傳時,在版本號的構建上有所不同, 

 上傳同樣的版本號jar包時,Snapshot在版本號的後面會自動追加一串新的數字,就是所謂的日期標籤,這樣在不斷更新jar包時,可以不用每次都要將版本號提高一個版本,可以有效的維護版本號。

穩定版使用Snapshot版本行不行?

不行,因為會造成不穩定。比如說,今天你依賴某個snapshot版本的第三方庫成功構建了自己的應用,明天再構建時可能就會失敗,因為今晚第三方可能已經更新了它的snapshot庫。你再次構建時,Maven會去遠端repository下載snapshot的最新版本,你構建時用的庫就是新的jar檔案了,這時正確性就很難保證了。穩定版應該依賴Release版本的jar包,這樣更新時需要更新版本號,版本號沒變時,依賴的jar包也不會變。

我自己的個人看法就是不穩定版本它沒有完全整合jsp檢視解析,穩定版本集成了jsp的解析器(眾所周知)。所以大家在搭建環境的時候要根據具體的版本資訊來新增依賴。

如果對您有幫助請點個贊哦,還有就是希望您能加個關注,會不定期更新微服務的相關技術。歡迎您的批評指正。