memcached 缓存图片

package org.bjrms;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;


import org.junit.Test;


public class MemCachedManagerTest {
 private static MemCachedManager cache;
 private byte data[];
 @Test
 public void insertImage() throws Exception{
  File image=new File("C:\\Users\\Administrator\\Desktop\\1.png");
  InputStream input=new FileInputStream(image);
  data=new byte[1024];
  List<byte[]> list =new ArrayList<byte[]>();
  
  int length=-1;
  while((length=input.read(data))!=-1){
   if(length<1024){
    byte data2[]=new byte[length];
    for(int i=0;i<length;i++){
     data2[i]=data[i];
    }
    data=data2;
   }
   byte data3[]=new byte[length];
   for(int i=0;i<data.length;i++){
    data3[i]=data[i];
   }
   list.add(data3);
  }
  cache.add("image", list);
  
 }
 
 
 static{
  cache = MemCachedManager.getInstance();
 }
 
 
}

 

 

 

 

 

获取图片并返回

 

 

package org.bjrms.action;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.bjrms.MemCachedManager;

public class ImageEngine extends HttpServlet {
 private static MemCachedManager cache=MemCachedManager.getInstance();
 /**
  * Constructor of the object.
  */
 public ImageEngine() {
  super();
 }

 /**
  * Destruction of the servlet. <br>
  */
 public void destroy() {
  super.destroy(); // Just puts "destroy" string in log
  // Put your code here
 }

 
 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

  doPost(request, response);
 }

 
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  response.setContentType("image/png");
   OutputStream out=response.getOutputStream();
  List<byte[]>list=(List<byte[]>) cache.get("image");
  
  for(int i=0;i<list.size();i++){
   byte data[]=list.get(i);
   out.write(data, 0, data.length);
  }
  out.flush();
  out.close();
  
 }

 /**
  * Initialization of the servlet. <br>
  *
  * @throws ServletException if an error occurs
  */
 public void init() throws ServletException {
  // Put your code here
 }

}

 

你可能感兴趣的:(memcached)