我試圖將存儲在Web應用程序文件夾中的所有圖像移動到數據庫中。並用一個servlet調用它們。是否有可能從我的CSS調用一個servlet?或者有沒有辦法從css調用遠程存儲的圖像文件?是否可以從css調用一個servlet?
我試圖從CSS調用一個servlet方法,但無法成功。有沒有可能調用這樣的方法?我們可以使用GetImage('abc','123'));我們可以使用GetImage('abc','123'))。
我試圖將存儲在Web應用程序文件夾中的所有圖像移動到數據庫中。並用一個servlet調用它們。是否有可能從我的CSS調用一個servlet?或者有沒有辦法從css調用遠程存儲的圖像文件?是否可以從css調用一個servlet?
我試圖從CSS調用一個servlet方法,但無法成功。有沒有可能調用這樣的方法?我們可以使用GetImage('abc','123'));我們可以使用GetImage('abc','123'))。
這是可能的。只需在這裏創建一個像this example的圖像服務器。至此,您只需從DB獲取InputStream
的圖像ResultSet#getBinaryStream()
並將其寫入HttpServletResponse#getOutputStream()
,usual Java IO way獲得的響應的OutputStream
。不要忘記添加HTTP內容類型和內容長度標題。如果您省略內容類型,瀏覽器不知道如何處理這些信息。如果您省略了內容長度,則會以分塊傳輸編碼的形式發送,但效率不高。
至於引用CSS文件中的servlet,只需在URL文件中指定URL 相對即可。這樣你就不必擔心上下文路徑。確定相對URL並不困難,它與在命令控制檯中訪問本地磁盤文件系統路徑的方式相同。 cd ../../foo/bar/file.ext
等。你曾經在學校學過,是嗎?
OK,假設imageservlet位於http://example.com/context/image?id=x
和CSS文件位於http://example.com/context/css/globalstyle.css
(因此,當前文件夾是css
),再右邊的相對網址imageservlet從CSS文件中是:
background-image: url('../image?id=123');
的../
進了一步向後的目錄結構,使您從文件夾http://example.com/context/css
去http://example.com/context
。如果您在確定正確的相對路徑方面仍然很困難,那麼讓我們知道該servlet和CSS文件的絕對URL,然後我們將爲您提取正確的相對路徑。
是的。只要圖像有url,你可以在你的css中使用它。
例如:
background-image:url('/getimage.ashx?id=3');
你甚至可以更進一步的重新路由其網址 - 你甚至可以用你今天有相同的URL,而是將自己的服務器從數據庫中處理請求和加載文件。
另一個提示:確保你設置正確的標題。您想要使用正確的內容類型,並且可能需要在客戶端正確緩存圖像。
是的。指定的象的CSS規則都可以包含任何一種 URL的瀏覽器可以解析和獲取:
body {
background-image:
url(http://www.domain.com/servlets/my_servlet.jsp?argument=value)
}
hi..Here是CSS和servlet的url。 的http://本地主機:8080/ /myStyle.css 的http://本地主機:8080/ /servlet/com.abc.def.servlet.FileServlet?pictureType=common&pictureName=home.gif 我可能知道如何得到路徑.. –
coder247
2010-04-22 12:18:22
它在同一個父文件夾中。你可以使用'background-image:url('servlet')'。 – BalusC 2010-04-22 12:24:25
謝謝..現在其餘的工作很容易.. :) – coder247 2010-04-22 12:27:06