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);
}
}
分享到:
相关推荐
在本文中,我们将深入探讨如何使用JavaWeb和JSP技术来实现一个网站图形计数器。 首先,我们需要了解JavaWeb和JSP的基础知识。JavaWeb是一系列用于构建和部署分布式网络应用程序的技术集合,包括Servlet、JSP、Java...
在“counterDemo.zip”这个项目中,我们将会探讨如何使用JSP(Java Server Pages)技术来实现这样的计数器,同时利用JSP内置对象来确保同一窗口内的页面刷新不会增加访问次数。下面,我们将深入讲解相关的知识点。 ...
总结:这个例子展示了如何使用JSP和JavaBean技术来创建一个简单的网站访问计数器。通过JSP页面调用JavaBean,实现计数器的增减和数据显示。同时,利用文件存储访问计数,确保数据持久性,并用图片展示访问次数,使得...
在这个"韩顺平"的源代码示例中,我们可能会看到如何创建一个Servlet,该Servlet在初始化时向`ServletContext`添加一些属性,然后另一个Servlet或JSP页面可以读取并使用这些属性。这种机制对于传递全局信息,如用户...
为了进一步实现图片显示计数结果的功能,还需要结合图像处理库(如Java Imaging API)生成包含计数值的图片。 #### 步骤三:整合JSP与图片生成逻辑 为了使上述功能能够在一个完整的JSP页面中正常工作,我们需要在...
与实验六类似,但侧重于Servlet实现分页,可能涉及到请求参数处理和Servlet生命周期的理解。 实验十三:JSP附加码生成器(图片) 生成验证码图片,用于防止自动机器人操作。这涉及随机数生成、图像处理和HTTP响应的...
8.4 用Servlet生成动态图片 195 8.5 扩展练习 198 第9章 Web基础知识 201 9.1 Web发展及HTTP协议 201 9.1.1 Web的产生与发展 201 9.1.2 HTTP协议 203 9.2 HTML标记语言 204 9.2.1 HTML基本元素 205 9.2.2 文字与...
3. **使用IDE实现HelloWorld** - 在Eclipse中创建一个新的Web项目。 - 编写HelloWorld的Java和HTML代码。 - 运行项目验证结果。 **相关实践知识** - **使用“记事本+Tomcat”编写HelloWorld** - 创建项目的...
(一)美化管理系统界面,完善页面 这个我们参考.doc文档进行 (二) 管理系统功能改进 增加对用户的查找、增加、删除和修改的功能,这样我们这个用户登录系统就成了一个用户管理系统,而且是完全用servlet实现的. ...
- 通过Servlet响应将验证码图片发送到客户端。 - **在message.jsp中加入include指令** - 使用`<%@ include file="header.jsp" %>`指令引入其他JSP文件。 - 实现页面重用,减少重复编码。 #### 专题四:JSP脚本...
在Java编程中,图片上传是一项常见的功能,尤其在Web应用中。这个例子提供了一个简单的Java程序,用于...在生产环境中,通常会使用成熟的框架或库,如Apache Commons IO、Spring MVC或Servlet API等来处理文件上传。
5.5.1 通过Servlet实现录入用户信息 5.5.2 应用过滤器实现网页计数器 5.6 疑难解惑 5.6.1 访问Servlet出现404错误 5.6.2 修改Servlet无效 5.6.3 创建过滤器并没有实现过滤效果 5.7 精彩回顾 第6章 打造无脚本的JSP...
这个项目的主要目的是实现一个统计功能,类似于由阿江(ASP)语言编写的计数器,对于初学者来说,是一个很好的学习和实践平台。下面我们将详细探讨这些技术及其在项目中的应用。 **Servlet与JSP** Servlet是Java EE...
util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...
【资源】文件logohome.gif、stat.gif、9.gif、1.gif、6.gif、8.gif、0.gif是图片资源,可能用在网页布局和美化上。例如,logohome.gif可能是首页的logo,而其他数字.gif文件可能用于创建动态的计数器效果,显示网站...
虽然描述中没有提供具体实现细节,但我们可以推测这是一个简单的网页计数器应用程序,它能够记录并展示网站的访问次数。博主分享的链接指向了ITEYE的一篇博客文章,可能提供了关于该工具的更多实现和使用信息。 ...
5. 图片上传:这个案例演示了如何让用户上传图片并存储到服务器,涉及到文件流的处理和文件上传的表单设计。 6. 论坛系统:此案例涵盖了论坛的基本功能,如发帖、回帖、查看主题等,涉及到JSP、Servlet和数据库操作...
使用Servlet生成图像验证码,开发者可以创建一个动态生成的图片,其中包含随机字符,用户需要输入这些字符以验证其为人而非机器。 2. **获取JVM系统属性**:Java虚拟机(JVM)系统属性提供了关于运行Java程序的环境...
+ 项目简述:门户网站的前台和后台程序设计,包含有后台登陆、计数器、信息发布、公证团队发布、网上申请、在线咨询、友情连接、图片上传、数据库定期备份等功能模块。 + 该项目基于 MVC 模式,采用 Jsp+jquery + ...
例程1-1:利用Servlet显示动态日期 例程1-2:利用JSP表达式显示动态格式文本 例程1-3:利用JSP标准标记库和表达式语言显示动态新闻 例程1-4:利用自定义标记控制网页图片显示 例程1-5:利用Applet在Web布面实现时钟 ...