2011-02-11 60 views
0

如何從HTML頁面調用寫在JSP中的函數?我已經聲明瞭一個函數來從JSP頁面中的服務器加載圖像。現在我想通過在HTML頁面中調用該JSP功能在另一個HTML頁面中顯示該圖像。如何從HTML頁面調用JSP中編寫的函數?

+6

問題不明確。看起來你有一個在JSP頁面中聲明的函數,但是你想從哪裏調用函數?請澄清你的問題。 – 2011-02-11 16:13:42

回答

2

我已經聲明瞭一個函數來從jsp頁面中的服務器加載圖像。現在我想通過在html頁面中調用該函數來顯示該圖像的另一個html頁面。

這不是它的工作原理。 Webbrowser將HTTP請求發送到Web服務器。 Webserver根據HTTP請求(URL,參數,路徑信息等)執行一些Java/JSP/Servlet代碼。 Java/JSP/Servlet代碼產生一堆HTML代碼(它也可以包含CSS/JS代碼)。 Web服務器將HTML代碼作爲HTTP響應發送回webbrowser。 Webbrowser顯示HTML。如果您在webbrowser中右鍵單擊頁面並選擇查看源代碼,那麼您不應該看到任何Java/JSP/Servlet代碼行。

你只需要編寫你的Java/JSP/Servlet代碼,以便它能夠生成你想要的HTML。在HTML中顯示圖像需要通過<img>標籤來完成,該標籤的src屬性應該指向圖像的URL。

<img src="foo.png" /> 

只是把它放在JSP中。通過上面的例子,將圖像文件放在與JSP相同的文件夾中。

但是,如果圖像是從外部資源(例如數據庫)中檢索的,則需要創建一個Servlet,該Servlet根據HTTP提供的參數/ pathinfo從外部資源獲取圖像的InputStream請求並根據一組正確的響應頭(內容類型,長度等)將它寫入HTTP響應的OutputStream。最後,讓HTML <img>元素的src屬性中的URL指向servlet。

<img src="imageservlet/foo.png" /> 

您可以在this answer找到更詳細的servlet示例。

1

通過HTTP請求 - 即提交頁面到JSP執行的Web容器。這是一個非常正常的模式。