发信人: eagle(老鹰)
整理人: zjxyz(2001-05-10 22:17:54), 站内信件
|
/*
Counter.java
编译之后生成一个Counter.class,一个ReadFile.class,要把
这两个文件都放在你classes目录下面. 同时要预先建立一个
D:\myjava\Counter.txt(储存访问人数),并设置一个初值
程序在Tomcat3.1测试过,能够正常运行
*/
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import com.sun.image.codec.jpeg.*;
import java.awt.image.*;
import java.awt.*;
class ReadFile{
String str;
/*
Count.txt为保存访问人数的文件,在D:\myjava目录下建立这个文件,
并设置一个计数器初值,如0,如果计数器文件放在别的目录,或者使
用的不是Windows平台,请修改下面的路径
*/
File fi = new File("d:\\myjava\\Counter.txt");
byte[] b=new byte[(int)fi.length()];
//从Counter.txt文件中读取访问人数
String read(){
try{
FileInputStream fo = new FileInputStream(fi);
fo.read(b);
str = new String(b);
fo.close();
return str;
}
catch (IOException e){
return("\nFile error: "+e);
}
}
//访问人数 +1,并写会Counter.txt文件
void write(){
try{
FileOutputStream fo = new FileOutputStream(fi);
int i = Integer.parseInt(str);
i++;
str=Integer.toString(i);
b=str.getBytes();
fo.write(b);
fo.close();
}
catch (IOException e){
System.err.println("\nFile error: "+e);
}
}
}
public class Counter extends HttpServlet {
//Process the HTTP Get request
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
ReadFile rf = new ReadFile();
String s ="Servlet Counter";
//String s = "计数器";
//s = "Servlet " + new String(s.getBytes("ISO-8859-1"),"GBK");
//如果使用中文字符,需要进行内码变换,否则出现乱码
response.setContentType("image/jpeg");
ServletOutputStream out = response.getOutputStream();
BufferedImage image = new BufferedImage(85,32,
BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
g.setColor(Color.black);
g.fillRect(0, 0, 85, 32);
g.setColor(Color.white);
g.drawString(s, 4,12);
g.drawLine(1,16,83,16);
g.drawString(rf.read(), 14,29);
rf.write();
JPEGImageEncoder encoder =JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
}
//Process the HTTP Post request
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
//Get Servlet information
public String getServletInfo() {
return "Servlet Cpunter";
}
}
|
|