用servlet实现的图片计数器

package com.wang;

import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;

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

/**
* Servlet implementation class counter
*/
public class counter extends HttpServlet {
private static final long serialVersionUID = 1L;
private String countFile = "counter.txt";
private int max = 7;

/**
     * @see HttpServlet#HttpServlet()
     */
    public counter() {
        super();
        // TODO Auto-generated constructor stub
    }

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

int count = 0;
String result ="";
String projectPath = this.getServletContext().getRealPath("/");

final File file = new File(projectPath +File.separator + countFile);

if (!file.exists()) {
// 创建一个新的文件
file.createNewFile();
count = 0;
try {
PrintWriter pw=new PrintWriter(new FileWriter(file));
pw.print("0");
pw.close();
} catch(IOException e){
System.out.println(e.toString());
}
}
try{
   BufferedReader buff=new BufferedReader(new FileReader(file));
   String s=buff.readLine();
   count=Integer.parseInt(s.trim());  //将字符串变量s转化成整形
   count++;
   buff.close();//关闭对象
  
   PrintWriter pw=new PrintWriter(new FileWriter(file));
   result=Integer.toString(count);//将整形变量i转化成字符型
   pw.print(result);
   pw.close();
  } catch(IOException e){
   System.out.println(e.toString());
  }
 
  int len =Integer.toString(count).length();
  int rest = max - len ;
  for(int i=1;i<=rest;i++){
  result = "0" + result;
  }
  System.out.println("count number is: "+ result);
 
  String[] number = new String[max];
  BufferedImage ImageNew = null ;
 
  for(int i=0;i<max;i++){
  number[i] = result.substring(i, i+1);
  number[i] = projectPath +"images"+ File.separator + number[i] + ".jpg";
  //读取一张图片  
          File   fileOne   =   new   File(number[i]);  
          BufferedImage   ImageOne   =   ImageIO.read(fileOne);  
          int   widthOne   =   ImageOne.getWidth();//图片宽度  
          int   heightOne   =   ImageOne.getHeight();//图片高度  
          //从图片中读取RGB  
          int[]   ImageArrayOne   =   new   int[widthOne*heightOne];  
          ImageArrayOne   =   ImageOne.getRGB(0,0,widthOne,heightOne,ImageArrayOne,0,widthOne);  
         
          if(i== 0){
          //生成新图片  
          ImageNew   =   new   BufferedImage(widthOne*max,heightOne,BufferedImage.TYPE_INT_RGB);  
          }
         
          ImageNew.setRGB(widthOne*i,0,widthOne,heightOne,ImageArrayOne,0,widthOne);//设置RGB  

  }  
  response.setContentType("image/png;charset=UTF-8");
  OutputStream os = response.getOutputStream();
  ImageIO.write(ImageNew,   "png",   os);//输出图片  
  os.close();
 
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}

}

你可能感兴趣的:(java,servlet,REST)