package testcount;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.awt.*;
import java.awt.image.*;
import javax.imageio.*;
public class TestCount extends HttpServlet {
private final int WIDTH = 100;
private final int HEIGHT = 30;
private final int LEN = 7;
public void service(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
response.setContentType("image/jpeg;charset=GB2312");
response.setHeader("pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
ServletOutputStream sos = response.getOutputStream();
BufferedImage bufImage = new BufferedImage(WIDTH, HEIGHT,
BufferedImage.TYPE_3BYTE_BGR);
Graphics g = bufImage.getGraphics();
// g.fillRect(0,0,WIDTH,HEIGHT);
g.setFont(new Font("宋体", Font.BOLD, 20));
g.setColor(Color.red);
String strInt = getNumber(request);
String tmp = "0";
if (strInt.length() > 7) {
strInt = "9999999";
} else {
for (int i = 0; i < LEN - strInt.length(); i++) {
tmp = tmp + "0";
}
strInt = tmp + strInt;
}
g.drawString(strInt, 6, 23);
ImageIO.write(bufImage, "JPEG", sos);
sos.close();
}
public String getNumber(HttpServletRequest request) {
String webNote = request.getHeader("Referer");// 获取请求头当浏览器URL发出请求的连接地址而获取次数值
if (webNote == null) {
return "0";
}
Properties pro = new Properties();
String values = null;
try {
pro.load(new FileInputStream(this.getServletContext().getRealPath(
"/properties//WebVisitCode.txt")));
// pro.load(new
// FileInputStream(getServletContext().getRealPath("/")+"properties//WebVisitCode.txt"));
values = pro.getProperty(webNote);
if (values == null) {
values = "0";
}
int webCount = Integer.parseInt(values) + 1;
values = Integer.toString(webCount);
pro.setProperty(webNote, values);
pro.store(new FileOutputStream(this.getServletContext()
.getRealPath("/")
+ "properties//WebVisitCode.txt"), "file outputstream");
} catch (Exception e) {
e.printStackTrace();
}
return values;
}
}