对于一个商务网站来说,广告系统是必不可少的。一个好的广告系统是一个网站稳定收入的基础。而旗帜广告(banner)则是网站广告中占绝大部分的广告,因此开发一个旗帜广告系统就非常重要了。利用Java Servlet 我们可以很轻松的构建属于我们自己的旗帜广告系统。
我们一般在网页上放上一些图片,设置它们的链接指向广告客户的网页,然后产生日志文件存放浏览的人数,浏览者的IP等信息,这就是开发旗帜广告系统的一般思路。
下面,我想结合一个例程来介绍一下如何使用Java Servlet来构建旗帜广告系统。这下面这个例子中,你必须使用在你的HTML文件中使用<IMG> 标签。
用法有三种是:
1) Banner?config_file 或Banner?config=config_file
例如:
<IMG height=125 src="http://localhost/servlet/Banner?config_file" width=125>
用这种方法你就可以显示不同的图片了。
2) 你也可以为每一幅图片设置自己的重定向URL。只需在你的设置中添加文件描述,见下面的例子,Servlet也需要更多的描述参数:
<IMG height=60 src="http://localhost/servlet/Banner?config=config_file&mode=1" width=468>
这样你就可以支持标准的旗帜广告了。
3)你也可以在同一个页面上有多个旗帜广告。你只需要在参数中加入“id=某个整数值”就可以了。这个值必须是一个你的页面内唯一的整数值!例如,对于第一个banner的描述为:
<IMG height=60 src="http://localhost/servlet/Banner?config=config_file&mode=1&id=1" width=468>
第二个为:
<IMG height=125 src="http://localhost/servlet/Banner?config=config_file&mode=1&id=2" width=125>
有的朋友会问了,config_file是什么文件呀? 它是一个文本文件,用来描述Servlet的设置信息。你能在你的主机的任何地方保存这个文件。现把参数介绍一下,这个配置文件有三个参数:分别为
1、dir=some_directory
解释: dir是你的旗帜广告文件存放的目录,可以使用的图片格式有JPG ,GIF,PNG ,JPEG等。这个参数是必须有的,否则系统会报错。
2、bannerfilename=some_url
解释: banner文件使用下面的格式,例如:
banner.gif=http://www.yesky.com/
banner.jpg=http://www.yesky.com/
3、log=some_directory_to_store_log_file
解释:存放日志文件的目录,可以是服务器上的任何目录。
附录1、日志文件(log file)及格式
Banner 系统每天会自动产生两个日志文件。分别为ddmmyyyyv.txt和ddmmyyyyc.txt 。第一个文件保存浏览banner的记录,第二个文件保存重定向的记录。两个文件都是文本文件,每一行包括一条记录。纪录格式是:
IP地址 日期 图片文件 用户代理 重定向记录 (只用于 *c.txt文件) ,字段之间用空格隔开。
附录2、Banner.java源程序:
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Banner extends HttpServlet
{
public Banner(){ }
file://读取配置文件内容
private boolean readConfig(String sConfig, Hashtable hashtable)
{
try
{
BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(new FileInputStream(sConfig)));// 设置缓冲区读入一个配置文件
String sLineInformation1;//
while((sLineInformation1 = bufferedreader.readLine()) != null)
{
sLineInformation1 = sLineInformation1.trim();//去除字符串中的空格
if(sLineInformation1.length() > 0)//如果字符串sLineInformation1的长度大于零 {
int i = sLineInformation1.indexOf("=");
if(i > 0 && i < sLineInformation1.length() - 1 && sLineInformation1.charAt(0) != '#' && !sLineInformation1.startsWith("//"))//配置文件的每一行参数必须以不为#或//开头的字符串
hashtable.put(sLineInformation1.substring(0, i).trim().toLowerCase(), sLineInformation1.substring(i + 1).trim());
}
}
bufferedreader.close();
File file = new File(sConfig);//创建一个配置文件
hashtable.put("edited", String.valueOf(file.lastModified()));
}
catch(Exception _ex)
{
return false;
}
String sDirInfo2 = (String)hashtable.get("dir");//取得目录参数
if(sDirInfo2 != null)//如果目录参数是空值
{
if(!sDirInfo2.endsWith(separator))//如果sDirInfo2不是以分隔符结尾,那么
{
sDirInfo2 = sDirInfo2 + separator;//给sDirInfo2加上分隔符
hashtable.remove("dir");//移去哈希表变量中的dir
hashtable.put("dir", sDirInfo2);
}
File file1 = new File(sDirInfo2);
String as[] = file1.list();
if(as == null) {
hashtable.remove("dir");
}
sDirInfo2 = (String)hashtable.get("log");
if(sDirInfo2 != null)
{
if(!sDirInfo2.endsWith(separator))
{
sDirInfo2 = sDirInfo2 + separator;
hashtable.remove("log");
hashtable.put("log", sDirInfo2);
}
File file2 = new File(sDirInfo2);
String as1[] = file2.list();
if(as1 == null) {
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
·系统优化大全 (14659篇文章)
·系统安全设置 (19465篇文章)
·系统安装手册 (17178篇文章)
·系统备份专题 (14252篇文章)
·Java环境安装配置 (5277篇文章)
·系统维护手册 (13751篇文章)
·Java编程开发手册 (7565篇文章)
·系统安全设置 (19465篇文章)
·系统安装手册 (17178篇文章)
·系统备份专题 (14252篇文章)
·Java环境安装配置 (5277篇文章)
·系统维护手册 (13751篇文章)
·Java编程开发手册 (7565篇文章)
·用JSP从数据库中读取图片并显示在网页上 (1225次浏览)
·选择JSF不选Struts的十大理由 (1201次浏览)
·JSP的基本语法与简单表单处理 (513次浏览)
·如何将做好的JAVA程序生成可执行文件? (504次浏览)
·package javax.servlet does not exist (469次浏览)
·全面解析JDBC (463次浏览)
·jsp中forword和sendRedirect的区别 (460次浏览)
·JSP中基于Session的在线用户统计分析 (448次浏览)
·用JSP和数据库做的购物车的源程序 (321次浏览)
·如何入侵jsp网站 (130次浏览)
·选择JSF不选Struts的十大理由 (1201次浏览)
·JSP的基本语法与简单表单处理 (513次浏览)
·如何将做好的JAVA程序生成可执行文件? (504次浏览)
·package javax.servlet does not exist (469次浏览)
·全面解析JDBC (463次浏览)
·jsp中forword和sendRedirect的区别 (460次浏览)
·JSP中基于Session的在线用户统计分析 (448次浏览)
·用JSP和数据库做的购物车的源程序 (321次浏览)
·如何入侵jsp网站 (130次浏览)
·OpenBSD WEB应用+JSP 10-31
·jsp+javabean学习(三) 10-06
·JSP实例 服务器端判断表单是否重复提交 10-06
·在JSP页面中的应用JavaBean 10-06
·JSP基本语法与简单表单处理 10-06
·JSP环境配置 Apache2.2和Tomcat5.5整合 10-06
·JSP实现JDOM处理数据库到XML转换的应用 10-06
·加快在JDBC设计中的JSP数据库访问速度 10-06
·对JSP数据库连接类使用方法的详细讲解 10-06
·用JSP实现数据库图片的存储与显示实例 10-06
·jsp+javabean学习(三) 10-06
·JSP实例 服务器端判断表单是否重复提交 10-06
·在JSP页面中的应用JavaBean 10-06
·JSP基本语法与简单表单处理 10-06
·JSP环境配置 Apache2.2和Tomcat5.5整合 10-06
·JSP实现JDOM处理数据库到XML转换的应用 10-06
·加快在JDBC设计中的JSP数据库访问速度 10-06
·对JSP数据库连接类使用方法的详细讲解 10-06
·用JSP实现数据库图片的存储与显示实例 10-06
最新论坛文章
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
站内频道文章精选
百度推荐,商机无限
搜索您感兴趣的内容



