IMG 标签大家一定用过,一般是通过SRC来指向另一网络资源,但是这样有点缺点。
这样很容易暴露图片资源的位置。
这样对动态生成图片有影响。
所以我想到了用SERVLET的方法来显示小图片。
SERVLET的方法如下
import com.sun.image.codec.jpeg.*;//sun公司仅提供了jpg图片文件的编码api
import java.awt.image.BufferedImage;
import java.io.*;
public void showLittleImg(){
try{
//得到对应的PRODUCT
Product pro = this.productService.getProductById(this.product.getUuid());
if((pro==null)||(pro.getPhotoname()==null))
return;
OutputStream output = this.getResponse().getOutputStream();//得到输出流
//ProjectConfig.productImgPath+pro.getPhotoname() 这个是 图片在电脑里的绝对路径,不是网络资源的
InputStream imageIn = new FileInputStream(new File(ProjectConfig.productImgPath+pro.getPhotoname()));
JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(imageIn);
BufferedImage image = decoder.decodeAsBufferedImage(); //得到输出的编码器
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(output);
encoder.encode(image);//对图片进行输出编码
imageIn.close();//关闭文件流
}catch(Exception el){
el.printStackTrace();
}
}
然后把IMG 的SRC指向这个SERVLET,就好了