try {
BLPrplFileUploadCollect blPrplFileUploadCollect = new BLPrplFileUploadCollect();
blPrplFileUploadCollect.query(" businessNo='周星驰'");
for (int j = 0; j < blPrplFileUploadCollect.getSize(); j++)
{
PrplFileUploadCollectSchema prplFileUploadCollectSchema = blPrplFileUploadCollect.getArr(j);
String queryString = prplFileUploadCollectSchema.getUploadServerName();
System.out.println("queryString == " + queryString);
//以上的方法是从数据库中取得图片的路径 。比如 blPrplFileUploadCollect.getSize() = 5次。此地方循环5次。
均是得到D:\loadfile\temp\2012\0000000000\201207250544308623Desert.jpg 这样的路径。 可是这样循环5次,最后得到的图片只能是第一次循环出现的结果。 queryString = “D:\loadfile\temp\2012\0000000000\201207250544308623Desert.jpg ”;OutputStream output = response.getOutputStream();// 得到输出流
BufferedOutputStream bos = new BufferedOutputStream(output);// 输出缓冲流
FileInputStream hFile = new FileInputStream(queryString); // 以byte流的方式打开文件
int i = hFile.available(); // 得到文件大小
byte data[] = new byte[i];
int size = 0;
size = hFile.read(data);
while (size != -1) {
bos.write(data, 0, size);
size = hFile.read(data);
hFile.read(data); // 读数据
response.setContentType("image/*"); // 设置返回的文件类型
OutputStream toClient = response.getOutputStream(); // 得到向客户端输出二进制数据的对象
toClient.write(data); // 输出数据
hFile.close();
toClient.close();
}我的问题是: 有没办法显示多张图片。这样每次只能显示第一张图片,后面的没办法显示。
或者有没有什么办法,能让图片不在servlet中显示。最好是在jsp中显示。jsp中的src 要怎么写。请指教。这个问题困挠好久了。
BLPrplFileUploadCollect blPrplFileUploadCollect = new BLPrplFileUploadCollect();
blPrplFileUploadCollect.query(" businessNo='周星驰'");
for (int j = 0; j < blPrplFileUploadCollect.getSize(); j++)
{
PrplFileUploadCollectSchema prplFileUploadCollectSchema = blPrplFileUploadCollect.getArr(j);
String queryString = prplFileUploadCollectSchema.getUploadServerName();
System.out.println("queryString == " + queryString);
//以上的方法是从数据库中取得图片的路径 。比如 blPrplFileUploadCollect.getSize() = 5次。此地方循环5次。
均是得到D:\loadfile\temp\2012\0000000000\201207250544308623Desert.jpg 这样的路径。 可是这样循环5次,最后得到的图片只能是第一次循环出现的结果。 queryString = “D:\loadfile\temp\2012\0000000000\201207250544308623Desert.jpg ”;OutputStream output = response.getOutputStream();// 得到输出流
BufferedOutputStream bos = new BufferedOutputStream(output);// 输出缓冲流
FileInputStream hFile = new FileInputStream(queryString); // 以byte流的方式打开文件
int i = hFile.available(); // 得到文件大小
byte data[] = new byte[i];
int size = 0;
size = hFile.read(data);
while (size != -1) {
bos.write(data, 0, size);
size = hFile.read(data);
hFile.read(data); // 读数据
response.setContentType("image/*"); // 设置返回的文件类型
OutputStream toClient = response.getOutputStream(); // 得到向客户端输出二进制数据的对象
toClient.write(data); // 输出数据
hFile.close();
toClient.close();
}我的问题是: 有没办法显示多张图片。这样每次只能显示第一张图片,后面的没办法显示。
或者有没有什么办法,能让图片不在servlet中显示。最好是在jsp中显示。jsp中的src 要怎么写。请指教。这个问题困挠好久了。
解决方案 »
- 高分求助~~ 当服务器端发生例外时,怎么让客户端填出窗口,而不改变之前的页面。
- jquery.post方法 不太会用 有点问题
- jsp:useBean报错!急求高手给解!!
- JAVA基础,看什么书阿
- jsp中如何读取图片相对路径,并存储到数据库中?
- tomcat6.0与jdk1.6如何配置?
- 读取局域网一个非常大的文件(1G多),请问以那种方式效率最高?是怎么实现的?
- strus2 中 <s:datetimepicker/>的问题
- Benutils拷贝时出错,求详解
- 皕杰报表同值合并的问题
- spring Aop 的问题
- SSH运行报错Error creating bean with name 'sessionFactory'
<img src="imageservlet?id=xxxxoooo" />都将独立的请求一次 imageservlet,HTTP指令类似于:
GET /context/imageservlet?id=xxxxoooo HTTP/1.0那么这个servlet也将仅就这次请求,独立的返回一张图片的内容,servlet之内不应该有任何循环。不知道这么说你理解不?
img src="imageservlet?id=xxxxoooo" /> 比如id="123",id="456",显示的图片还是一样的哎。
那我servlet之内不循环的话。没办法取得那么多张图片的路径。
img src="imageservlet?id=xxxxoooo" /> 比如id="123",id="456",显示的图片还是一样的哎。
那我servlet之内不循环的话。没办法取得那么多张图片的路径。
JSP中类似于:
<% while (rs.next) { %>
<img src="imageservlet?id=<%=rs.getString("ID");%>" />
<%}%>这就形成了一组的 <img> 标签。
所以Servlet这边每次只需要处理一张。话说,你这分数给太多了,有个20分就够了。
明白什么意思了。在问一个问题。Servlet处理一次的图片的信息。要怎么送到JSP页面,让JSP页面得到?
是不是把信息存到request中,然后request.getRequestDispatcher("").forward(request, response);??是不是这样??
BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream());// 输出缓冲流
FileInputStream hFile = new FileInputStream(queryString); // 以byte流的方式打开文件
try {
byte data[] = new byte[8192];
int size = 0;
while ((size = hFile.read(data)) != -1) {
bos.write(data, 0, size);
}
bos.flush();
} finally {
hFile.close();
}