JSP中通過(guò)Servlet 將服務(wù)器硬盤(pán)圖片并展示到瀏覽器
JSP中通過(guò)Servlet 將服務(wù)器硬盤(pán)圖片并展示到瀏覽器
其實(shí)這個(gè)實(shí)例非常簡(jiǎn)單,但是今天有人問(wèn)我了,而且我也寫(xiě)了個(gè)小例子,就順便發(fā)上來(lái)吧!
在瀏覽器顯示一張圖片,使用標(biāo)簽
<img src="">
img 元素向網(wǎng)頁(yè)中嵌入一幅圖像。
請(qǐng)注意,從技術(shù)上講,<img> 標(biāo)簽并不會(huì)在網(wǎng)頁(yè)中插入圖像,而是從網(wǎng)頁(yè)上鏈接圖像。<img> 標(biāo)簽創(chuàng)建的是被引用圖像的占位空間。
<img> 標(biāo)簽有兩個(gè)必需的屬性:src 屬性 和 alt 屬性。
HTML 與 XHTML 之間的差異
在 HTML 中,<img> 標(biāo)簽沒(méi)有結(jié)束標(biāo)簽。
在 XHTML 中,<img> 標(biāo)簽必須被正確地關(guān)閉。
在 HTML 4.01 中,不推薦使用 image 元素的 "align"、"border"、"hspace" 以及 "vspace" 屬性。
在 XHTML 1.0 Strict DTD 中,不支持 image 元素的 "align"、"border"、"hspace" 以及 "vspace" 屬性。
SRC的路徑有很多:
指向其他站點(diǎn)(比如 src="http://www.******.com/***.jpg")
指向站點(diǎn)內(nèi)的文件(比如 src="/i/image.gif")
許多新手忽略了一點(diǎn)是,其實(shí)IMG只是告訴瀏覽器這里要現(xiàn)實(shí)圖片,而瀏覽器通過(guò)路徑去獲得圖片的數(shù)據(jù)流然后進(jìn)行顯示
簡(jiǎn)單來(lái)說(shuō),SRC其實(shí)就是瀏覽器走了一個(gè)請(qǐng)求,然后這個(gè)請(qǐng)求返回圖片的數(shù)據(jù)流給瀏覽器而已
所以,SRC同樣可以是請(qǐng)求,可以是Servlet也可以是Action,這里我們用Servlet來(lái)做一個(gè)簡(jiǎn)單示例
JSP頁(yè)面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>" rel="external nofollow" > <title>圖片顯示</title> </head> <body> <img src="<%=basePath %>servlet/ImageShowServlet"> </body> </html>
Web.xml配置:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>ImageShowServlet</servlet-name> <servlet-class>servlet.ImageShowServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ImageShowServlet</servlet-name> <url-pattern>/servlet/ImageShowServlet</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
Servlet非常簡(jiǎn)單:
package servlet;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @說(shuō)明 該Servlet將本地硬盤(pán)的圖片輸入管道中
* @author cuisuqiang
* @version 1.0
* @since
*/
@SuppressWarnings("serial")
public class ImageShowServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
OutputStream os = response.getOutputStream();
File file = new File("C:\\abc.jpg");
FileInputStream fips = new FileInputStream(file);
byte[] btImg = readStream(fips);
os.write(btImg);
os.flush();
}
/**
* 讀取管道中的流數(shù)據(jù)
*/
public byte[] readStream(InputStream inStream) {
ByteArrayOutputStream bops = new ByteArrayOutputStream();
int data = -1;
try {
while((data = inStream.read()) != -1){
bops.write(data);
}
return bops.toByteArray();
}catch(Exception e){
return null;
}
}
}
就是獲取本地硬盤(pán)的文件的字節(jié)流,然后寫(xiě)入到管道中而已!
以上就是JSP中通過(guò)Servlet 將服務(wù)器硬盤(pán)圖片并展示到瀏覽器的實(shí)例,如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- Java,JSP,Servlet獲取當(dāng)前工程路徑(絕對(duì)路徑)問(wèn)題解析
- JSP 開(kāi)發(fā)之THE SERVLET NAME ALREADY EXISTS.解決方法
- Jsp+Servlet實(shí)現(xiàn)購(gòu)物車功能
- JSP 開(kāi)發(fā)之Servlet解決網(wǎng)頁(yè)緩存問(wèn)題
- 淺談Servlet轉(zhuǎn)發(fā)到JSP頁(yè)面的路徑問(wèn)題(必看)
- JSP 開(kāi)發(fā)之servlet中調(diào)用注入spring管理的dao
- JSP開(kāi)發(fā)Servlet重寫(xiě)init()方法實(shí)例詳解
- JSP 中Servlet的自己實(shí)現(xiàn)
相關(guān)文章
jsp 實(shí)現(xiàn)的簡(jiǎn)易mvc模式示例
這篇文章主要介紹了jsp 實(shí)現(xiàn)的簡(jiǎn)易mvc模式,結(jié)合實(shí)例形式簡(jiǎn)單分析了jsp實(shí)現(xiàn)的MVC模式模型、視圖、控制器相關(guān)配置與使用操作技巧,需要的朋友可以參考下2019-11-11
解決JSP保存到數(shù)據(jù)庫(kù)丟失格式的方法
這篇文章主要介紹了解決JSP保存到數(shù)據(jù)庫(kù)丟失格式的方法,需要的朋友可以參考下2015-10-10
ajax+jsp草稿自動(dòng)保存的實(shí)現(xiàn)代碼
ajax+jsp草稿自動(dòng)保存的實(shí)現(xiàn)代碼...2007-05-05
JSP中的PreparedStatement對(duì)象操作數(shù)據(jù)庫(kù)的使用教程
這篇文章主要介紹了JSP中的PreparedStatement對(duì)象操作數(shù)據(jù)庫(kù)的使用教程,文中舉了一些使用PreparedStatement預(yù)處理語(yǔ)句對(duì)象進(jìn)行MySQL增刪查改的例子,需要的朋友可以參考下2016-04-04
基于JSP實(shí)現(xiàn)一個(gè)簡(jiǎn)單計(jì)算器的方法
這篇文章主要介紹了基于JSP實(shí)現(xiàn)一個(gè)簡(jiǎn)單計(jì)算器的方法,實(shí)例分析了顯示與邏輯處理的具體實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-02-02
JSP自定義分頁(yè)標(biāo)簽TAG全過(guò)程
這篇文章主要介紹了JSP自定義分頁(yè)標(biāo)簽TAG全過(guò)程,比較實(shí)用,需要的朋友可以參考下2014-09-09
Struts2中實(shí)現(xiàn)web應(yīng)用的初始化實(shí)例詳解
這篇文章主要介紹了Struts2中實(shí)現(xiàn)web應(yīng)用的初始化實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-06-06
JavaWeb實(shí)現(xiàn)圖形報(bào)表折線圖的方法
這篇文章主要介紹了JavaWeb實(shí)現(xiàn)圖形報(bào)表折線圖的方法,涉及JSP包的引用、圖形操作、配置文件設(shè)置及字符串操作技巧,需要的朋友可以參考下2016-06-06

