一个图形计数器的例子

import java.io.*;
import java.util.*;
import com.sun.image.codec.jpeg.*;
import javax.servlet.*;
import javax.servlet.http.*;

import java.awt.*;
import java.awt.image.*;
public class JPEGServlet extends HttpServlet {

private String strFile="c:count.txt";
private Font mFont=new Font("Courier", Font.BOLD,12);;

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

String s;
int intCount;
s=getCount();
intCount=new Integer(s).intValue();
intCount=intCount+1;
writeCount(intCount+"");

response.setContentType("image/jpeg");
ServletOutputStream out=response.getOutputStream();
BufferedImage image=new BufferedImage(110,16,BufferedImage.TYPE_INT_RGB);
Graphics g=image.getGraphics();
g.setColor(Color.black);
g.fillRect(0,0,110,16);
g.setColor(Color.white);
g.setFont(mFont);

char c;
for(int i=0;i<10;i++) {
c=s.charAt(i);
g.drawString(c+"",i*11+1,12);
g.drawLine((i+1)*11-1,0,(i+1)*11-1,16);
}

JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
}

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

doGet(request,response);
}

public synchronized void writeCount(String content) {
try {
PrintWriter pw = new PrintWriter(new FileOutputStream(strFile));
pw.println(content);
pw.close();
} catch(IOException e) {
System.out.println("Write file error:"+e.getMessage());
}
}

public synchronized String getCount() {
String strCount;
int len;
int leftLen;

try {
BufferedReader inf = new BufferedReader(new FileReader(strFile));
strCount=inf.readLine();
inf.close();
} catch(Exception e) {
System.out.println("Get counter error:"+e.getMessage());
return reChar('0',10);
}
len=strCount.length();
if (len<=0) {
return reChar('0',10);
}

if (len>10) {
return reChar('9',10);
}

leftLen=10-len;
return reChar('0',leftLen)+strCount;
}

private String reChar(char c,int num){
int i;
if (num<=0) return "";
String s="";
for(i=0;i<num;i++) {
s=s+c;
}
return s;
}
}
 

时间: 2024-10-18 15:27:30

一个图形计数器的例子的相关文章

PHP制作图型计数器的例子

计数器 以前在奥索看见过很多这样的例子,各各方法复杂,请看如下例子实现图形计数器.在网页中使用请用 <script src="http://文件地址"></script> <? //存放计数的文本文件 $count="count.txt"; //计数器的位数,如果不填则默认为6位 $wei=""; //图像的URL路径 $tu="http://127.0.0.1/tcount/images"; ?

ASP图形计数器设计详解

计数器|设计|图形|详解 这里介绍一种不用CGI而设计出的漂亮的图形计数器.这里分为三部分:1,建立图形文件. 2,建立数据库. 3,编写代码.1,建立图形文件. 首先,用做图软件制作10个图形,用于显示计数器的十个数字:1,2,3,4,5,6,7,8,9,0.如果你有美术才能,还能做出更好的图形.2,建立数据库. 用建立一个数据库,名字为.数据库包含一个表,名字为,结构为:整数,有一条记录,初始值为0.用于存放上一次访问本页面的次数.3,编写代码.------number.asp-------

编写“公平”的ASP图形计数器

"技术天地"中的<编写ASP图形计数器>一文,详细的说明了如何利用流行的ASP来编写计数器.但是,美中不足的是,如果某个用户反复点击"刷新"按钮,那么计数器还是要不断的增加的,这对网站点击率评比来说是不公平的,也失去了计数器做为正常统计功能的作用.如何在技术上避免这种情况的发生呢? 我认为要防止上网用户连续按下"刷新"计数器也连续增加的问题,最好的办法就是利用ASP的Session对象,我们可以借助Session对象首先判断该用户是否

PHP制作图型计数器的例子_php基础

以前在奥索看见过很多这样的例子,各各方法复杂,请看如下例子实现图形计数器.在网页中使用请用 <script src="http://文件地址"></script> <? //存放计数的文本文件 $count="count.txt"; //计数器的位数,如果不填则默认为6位 $wei=""; //图像的URL路径 $tu="http://127.0.0.1/tcount/images"; ?>

《JavaScript高效图形编程(修订版)》——6.11 一个图形使用画布的WebSockets聊天应用

6.11 一个图形使用画布的WebSockets聊天应用 在下面的例子中我们将看到一个更实用的画布应用程序:一个伪3D聊天应用程序(如图6-15所示).这个例子将演示如何将画布和其他HTML5特性如WebSockets结合. 6.11.1 WebSockets优势 除画布外,另一个同样令人振奋(但可能比较不知名)的HTML5元素是WebSockets.虽然这本书是关于图形的,但还是值得讨论一下为什么WebSockets对现代Web应用程序意义重大,以及如何将它们与画布集成. 通常服务器和客户端浏

PHP图形计数器程序显示网站用户浏览量_php实例

PHP图形计数器程序是一款简单的图片计数器,为了直观显示一个网站有多少用户浏览,需要在网页底部放一个图片计数器,也就是当前页面的访问量,访问量的数据是保存在 txt 文件里,可自动生成 num.txt 文件,自定义初始数据,显示的数字图片保存在 img 目录下,可以换成自己做的精美的图片,更换即可,index.php是调用文件,很简单. 本程序只有几十KB,系统代码设计简单易懂. 效果如下: 关于程序的安装很简单: 1.这款图形计数器不需要数据库的支持,只要能运行PHP即可,将index.php

以一个最简单的例子把OO的JavaScript说明白

javascript  OO的JavaScript并不高深,麻烦就麻烦在google出来的国人介绍文章经常罗罗嗦嗦,而且之间的说法还各有不同,摆在一起就让人看了头大.这里重拾简单主义,以一个最简单的例子把OO Javascript说明白. 1.一个颇为精简的例子 //定义Circle类function Circle(radius) {    this.r = radius;}Circle.PI = 3.14159;Circle.prototype.area = function(  ) {ret

一个可逆加密的例子

加密     下面的代码实现了一个可逆加密的方法.可以用于对Cookie,QueryString等加密处理.      查看例子      VB.net代码      <%@ Page Language="vb" AutoEventWireup="false" Codebehind="EncString.<a href="http://dev.21tx.com/web/asp/" target="_blank&qu

自己写的一个图形验证码页面(Asp.Net2.0通过)

asp.net|图形|验证码|页面 项目需要,要在首页登录界面添加一个图形验证码,赶时髦吧,网上一搜,特别多,找了几个,都不太满意.主要问题是大部分代码生成的图片宽度不唯一,页面布局不容易控制,其次是颜色单一,有些又过于抽象,不仔细看很容易弄错.针对特定的客户,我只需要"图片"长宽固定,颜色多样的数字图形验证码,借鉴网上的现有代码,自己操刀完成,以下是效果图: 原理不复杂,就是把网页当画布,运用各色画笔,在特定区域内画出数字,然后以特定格式(本例为PNG格式)发回客户端,在IE中显示为