Tomcat配置圖片資源的虛擬路徑

   之前寫的一個小項目,用到了圖片上傳到服務器,然後就開始嘗試着去實現這個功能,最初的做法是把圖片上傳到項目的WEB-INF文件夾的image文件夾中,可以實現圖片上傳到服務器,可是之後卻發現了一個問題,就是重啓tomcat服務器,之前上傳到服務器的圖片都不見了,這就讓我鬱悶了很久。

      經過研究發現:

        我們在Java代碼中上傳圖片時,圖片的路徑是通過代碼  request.getSession().getServletContext().getRealPath("/img") 來獲取路徑的,而這句代碼返回的路徑是tomcat中webapps目錄下的工程路徑,圖片就直接保存到了tomcat中。當我們重新發布工程的時候,tomcat其實是先將原來的工程刪掉,然後再將改動過的新的工程放上去。而改動過的新的工程師來自與我們eclipse的工作空間中的工程,這就也難怪了,因爲我們是把圖片直接上傳到的tomcat服務器下,而不是放到工作空間的工程目錄下,自然重新部署後圖片就沒了。

      那麼有什麼方法能夠保存這些上傳到服務器的圖片呢?通過網上查找資料,最終找到了解決方法那就是配置圖片的虛擬路徑,接下來就讓我給大家講解一下如何配置虛擬路徑吧

    一、首先修改tomcat的配置,找到tomcat下的conf文件夾,打開server.xml配置文件,找到<Host></Host>標籤,在Host標籤中添加 (這裏的圖片我存放在 D:\GroupSystem的文件夾中)

<Context  docBase="D:\GroupSystem"  path="/photo"  reloadable="true" />

   配置方法如下圖:

    加入虛擬路徑後,進行訪問,http://localhost/photo/圖片名

    結果卻發現,仍然訪問不到,找了很多原因,大多數介紹圖片上傳的都是這樣介紹的,可是總出不來,折騰了一個上午,經大神提醒,eclipse對tomcat支持有時不是那麼友好,單修改tomcat配置可能沒有用,於是試着去用eclipse對tomcat進行配置管理,果然一下就成功了,eclipse配置tomcat方法如下:

 

二、在Eclipse中,雙擊Servers選項中的Tomcat v9.0 Server

 

 三、點擊Overview視窗中的Modules

 

四、這時我們點擊右側的第二個按鈕 Add External Web Module 添加圖片訪問路徑

 

五、添加圖片訪問路徑  (Document base 是你存放圖片的路徑     Path 是你訪問圖片的虛擬路徑 )

 

 

 六、配置結束,點擊重啓服務器,輸入虛擬路徑  http://localhost:8080/photo 訪問資源文件夾:

  我們會發現,配置好的虛擬路徑,居然找不到D:\GroupSystem文件夾,又通過上網查找,發現直接訪問資源文件夾D:\GroupSystem是找不到的,要接上具體訪問資源的文件名(即 圖片的名稱),例如:輸入http://localhost:8080/photo/pic.jpg就可以找到對應的圖片了

 

 

 

  最近在網上發現另外一種解決辦法,我在這裏補充說明一下:

            有的人可能會遇到這樣的問題:那就是在 tomcat → conf → server.xml 配置文件中添加了圖片的虛擬路徑 <Context  docBase="D:\GroupSystem"  path="/photo"  reloadable="true" />,但是當你重啓eclipse項目,再去打開tomcat → conf → server.xml 配置文件時,發現裏面的內容又會自動還原成原來默認的配置,這也就意味着你之前配置的圖片虛擬路徑不存在了,從而導致你配置的圖片虛擬路徑不起作用。

              那就會有人問了,爲什麼我們配置的server.xml文件會被自動還原成原來默認的配置呢? 

             這是因爲你的eclipse在整合Tomcat成功之後,會在你的eclipse視窗的Pagekage Explorer中自動生成一個Servers文件夾,Servers文件夾中也會有一個server.xml的文件,每一次重啓eclipse項目,eclipse中的server.xml都會去覆蓋掉 tomcat → conf → server.xml 配置文件,所以當你在遇到這類問題的時候,我們可以試着去修改eclipse中的server.xml文件配置。 

             說了這麼多,接下來就讓我給大家講解一下如何操作吧

             一、 打開你的eclipse,在eclipse視窗的Pagekage Explorer中找到Servers → Tomcat v9.0 Server at localhost-config → server.xml文件

 

      二、雙擊打開server.xml配置文件,找到<Host></Host>標籤,在Host標籤中添加 (這裏的圖片我存放在 D:\GroupSystem的文件夾中)

<Context  docBase="D:\GroupSystem"  path="/photo"  reloadable="true" />

  配置方法如下圖:

           

       三、右鍵Tomcat v9.0 Server at localhost [Stopped, Republish],選擇Start,啓動Tomcat(找到並點擊Console選項,能看到最後一行Server startup in 1889 ms 則表示Tomcat啓動成功)    

    

 

    四、然後我們找到tomcat下的conf文件夾,打開server.xml配置文件,可以看到server.xml配置文件中的<Host></Host>標籤自動添加了我們剛剛配置的圖片虛擬路徑

 

      五、我們再去Eclipse中,雙擊Servers選項中的Tomcat v9.0 Server

 

    六、點擊Overview視窗中的Modules

  

 

  七、可以看到,在Web Modules中也自動添加了我們剛剛配置的圖片虛擬路徑

 

  八、打開瀏覽器,在地址欄中輸入圖片虛擬路徑  http://localhost:8080/photo/pic.jpg 訪問圖片

 

 

        如果有遇到不懂或者有問題時,可以掃描下方二維碼,歡迎進羣交流與分享,希望能夠跟大家交流學習!

                                                         

      經過研究發現:

        我們在Java代碼中上傳圖片時,圖片的路徑是通過代碼  request.getSession().getServletContext().getRealPath("/img") 來獲取路徑的,而這句代碼返回的路徑是tomcat中webapps目錄下的工程路徑,圖片就直接保存到了tomcat中。當我們重新發布工程的時候,tomcat其實是先將原來的工程刪掉,然後再將改動過的新的工程放上去。而改動過的新的工程師來自與我們eclipse的工作空間中的工程,這就也難怪了,因爲我們是把圖片直接上傳到的tomcat服務器下,而不是放到工作空間的工程目錄下,自然重新部署後圖片就沒了。

      那麼有什麼方法能夠保存這些上傳到服務器的圖片呢?通過網上查找資料,最終找到了解決方法那就是配置圖片的虛擬路徑,接下來就讓我給大家講解一下如何配置虛擬路徑吧

    一、首先修改tomcat的配置,找到tomcat下的conf文件夾,打開server.xml配置文件,找到<Host></Host>標籤,在Host標籤中添加 (這裏的圖片我存放在 D:\GroupSystem的文件夾中)

<Context  docBase="D:\GroupSystem"  path="/photo"  reloadable="true" />

   配置方法如下圖:

    加入虛擬路徑後,進行訪問,http://localhost/photo/圖片名

    結果卻發現,仍然訪問不到,找了很多原因,大多數介紹圖片上傳的都是這樣介紹的,可是總出不來,折騰了一個上午,經大神提醒,eclipse對tomcat支持有時不是那麼友好,單修改tomcat配置可能沒有用,於是試着去用eclipse對tomcat進行配置管理,果然一下就成功了,eclipse配置tomcat方法如下:

 

二、在Eclipse中,雙擊Servers選項中的Tomcat v9.0 Server

 

 三、點擊Overview視窗中的Modules

 

四、這時我們點擊右側的第二個按鈕 Add External Web Module 添加圖片訪問路徑

 

五、添加圖片訪問路徑  (Document base 是你存放圖片的路徑     Path 是你訪問圖片的虛擬路徑 )

 

 

 六、配置結束,點擊重啓服務器,輸入虛擬路徑  http://localhost:8080/photo 訪問資源文件夾:

      經過研究發現:

        我們在Java代碼中上傳圖片時,圖片的路徑是通過代碼  request.getSession().getServletContext().getRealPath("/img") 來獲取路徑的,而這句代碼返回的路徑是tomcat中webapps目錄下的工程路徑,圖片就直接保存到了tomcat中。當我們重新發布工程的時候,tomcat其實是先將原來的工程刪掉,然後再將改動過的新的工程放上去。而改動過的新的工程師來自與我們eclipse的工作空間中的工程,這就也難怪了,因爲我們是把圖片直接上傳到的tomcat服務器下,而不是放到工作空間的工程目錄下,自然重新部署後圖片就沒了。

      那麼有什麼方法能夠保存這些上傳到服務器的圖片呢?通過網上查找資料,最終找到了解決方法那就是配置圖片的虛擬路徑,接下來就讓我給大家講解一下如何配置虛擬路徑吧

    一、首先修改tomcat的配置,找到tomcat下的conf文件夾,打開server.xml配置文件,找到<Host></Host>標籤,在Host標籤中添加 (這裏的圖片我存放在 D:\GroupSystem的文件夾中)

<Context  docBase="D:\GroupSystem"  path="/photo"  reloadable="true" />

   配置方法如下圖:

    加入虛擬路徑後,進行訪問,http://localhost/photo/圖片名

    結果卻發現,仍然訪問不到,找了很多原因,大多數介紹圖片上傳的都是這樣介紹的,可是總出不來,折騰了一個上午,經大神提醒,eclipse對tomcat支持有時不是那麼友好,單修改tomcat配置可能沒有用,於是試着去用eclipse對tomcat進行配置管理,果然一下就成功了,eclipse配置tomcat方法如下:

 

二、在Eclipse中,雙擊Servers選項中的Tomcat v9.0 Server

 

 三、點擊Overview視窗中的Modules

 

四、這時我們點擊右側的第二個按鈕 Add External Web Module 添加圖片訪問路徑

 

五、添加圖片訪問路徑  (Document base 是你存放圖片的路徑     Path 是你訪問圖片的虛擬路徑 )

 

 

 六、配置結束,點擊重啓服務器,輸入虛擬路徑  http://localhost:8080/photo 訪問資源文件夾:

  我們會發現,配置好的虛擬路徑,居然找不到D:\GroupSystem文件夾,又通過上網查找,發現直接訪問資源文件夾D:\GroupSystem是找不到的,要接上具體訪問資源的文件名(即 圖片的名稱),例如:輸入http://localhost:8080/photo/pic.jpg就可以找到對應的圖片了

 

 

 

  最近在網上發現另外一種解決辦法,我在這裏補充說明一下:

            有的人可能會遇到這樣的問題:那就是在 tomcat → conf → server.xml 配置文件中添加了圖片的虛擬路徑 <Context  docBase="D:\GroupSystem"  path="/photo"  reloadable="true" />,但是當你重啓eclipse項目,再去打開tomcat → conf → server.xml 配置文件時,發現裏面的內容又會自動還原成原來默認的配置,這也就意味着你之前配置的圖片虛擬路徑不存在了,從而導致你配置的圖片虛擬路徑不起作用。

              那就會有人問了,爲什麼我們配置的server.xml文件會被自動還原成原來默認的配置呢? 

             這是因爲你的eclipse在整合Tomcat成功之後,會在你的eclipse視窗的Pagekage Explorer中自動生成一個Servers文件夾,Servers文件夾中也會有一個server.xml的文件,每一次重啓eclipse項目,eclipse中的server.xml都會去覆蓋掉 tomcat → conf → server.xml 配置文件,所以當你在遇到這類問題的時候,我們可以試着去修改eclipse中的server.xml文件配置。 

             說了這麼多,接下來就讓我給大家講解一下如何操作吧

             一、 打開你的eclipse,在eclipse視窗的Pagekage Explorer中找到Servers → Tomcat v9.0 Server at localhost-config → server.xml文件

 

      二、雙擊打開server.xml配置文件,找到<Host></Host>標籤,在Host標籤中添加 (這裏的圖片我存放在 D:\GroupSystem的文件夾中)

<Context  docBase="D:\GroupSystem"  path="/photo"  reloadable="true" />

  配置方法如下圖:

           

       三、右鍵Tomcat v9.0 Server at localhost [Stopped, Republish],選擇Start,啓動Tomcat(找到並點擊Console選項,能看到最後一行Server startup in 1889 ms 則表示Tomcat啓動成功)    

    

 

    四、然後我們找到tomcat下的conf文件夾,打開server.xml配置文件,可以看到server.xml配置文件中的<Host></Host>標籤自動添加了我們剛剛配置的圖片虛擬路徑

 

      五、我們再去Eclipse中,雙擊Servers選項中的Tomcat v9.0 Server

 

    六、點擊Overview視窗中的Modules

  

 

  七、可以看到,在Web Modules中也自動添加了我們剛剛配置的圖片虛擬路徑

 

  八、打開瀏覽器,在地址欄中輸入圖片虛擬路徑  http://localhost:8080/photo/pic.jpg 訪問圖片

 

 

        如果有遇到不懂或者有問題時,可以掃描下方二維碼,歡迎進羣交流與分享,希望能夠跟大家交流學習!

                                                         

  我們會發現,配置好的虛擬路徑,居然找不到D:\GroupSystem文件夾,又通過上網查找,發現直接訪問資源文件夾D:\GroupSystem是找不到的,要接上具體訪問資源的文件名(即 圖片的名稱),例如:輸入http://localhost:8080/photo/pic.jpg就可以找到對應的圖片了

 

 

 

  最近在網上發現另外一種解決辦法,我在這裏補充說明一下:

            有的人可能會遇到這樣的問題:那就是在 tomcat → conf → server.xml 配置文件中添加了圖片的虛擬路徑 <Context  docBase="D:\GroupSystem"  path="/photo"  reloadable="true" />,但是當你重啓eclipse項目,再去打開tomcat → conf → server.xml 配置文件時,發現裏面的內容又會自動還原成原來默認的配置,這也就意味着你之前配置的圖片虛擬路徑不存在了,從而導致你配置的圖片虛擬路徑不起作用。

              那就會有人問了,爲什麼我們配置的server.xml文件會被自動還原成原來默認的配置呢? 

             這是因爲你的eclipse在整合Tomcat成功之後,會在你的eclipse視窗的Pagekage Explorer中自動生成一個Servers文件夾,Servers文件夾中也會有一個server.xml的文件,每一次重啓eclipse項目,eclipse中的server.xml都會去覆蓋掉 tomcat → conf → server.xml 配置文件,所以當你在遇到這類問題的時候,我們可以試着去修改eclipse中的server.xml文件配置。 

             說了這麼多,接下來就讓我給大家講解一下如何操作吧

             一、 打開你的eclipse,在eclipse視窗的Pagekage Explorer中找到Servers → Tomcat v9.0 Server at localhost-config → server.xml文件

 

      二、雙擊打開server.xml配置文件,找到<Host></Host>標籤,在Host標籤中添加 (這裏的圖片我存放在 D:\GroupSystem的文件夾中)

<Context  docBase="D:\GroupSystem"  path="/photo"  reloadable="true" />

  配置方法如下圖:

           

       三、右鍵Tomcat v9.0 Server at localhost [Stopped, Republish],選擇Start,啓動Tomcat(找到並點擊Console選項,能看到最後一行Server startup in 1889 ms 則表示Tomcat啓動成功)    

    

 

    四、然後我們找到tomcat下的conf文件夾,打開server.xml配置文件,可以看到server.xml配置文件中的<Host></Host>標籤自動添加了我們剛剛配置的圖片虛擬路徑

 

      五、我們再去Eclipse中,雙擊Servers選項中的Tomcat v9.0 Server

 

    六、點擊Overview視窗中的Modules

  

 

  七、可以看到,在Web Modules中也自動添加了我們剛剛配置的圖片虛擬路徑

 

  八、打開瀏覽器,在地址欄中輸入圖片虛擬路徑  http://localhost:8080/photo/pic.jpg 訪問圖片

 

 

        如果有遇到不懂或者有問題時,可以掃描下方二維碼,歡迎進羣交流與分享,希望能夠跟大家交流學習!

                                                         

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章