频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

用Java Servlet构建广告系统(1)

来源: 作者: 出处:巧巧读书 2006-07-27 进入讨论组
关 键 词:director  html  ie  ip地址  java  

  对于一个商务网站来说,广告系统是必不可少的。一个好的广告系统是一个网站稳定收入的基础。而旗帜广告(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) { 更多文章 更多内容请看Java编程开发手册  Java环境安装配置  系统安全设置专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
·系统优化大全 (14659篇文章)
·系统安全设置 (19465篇文章)
·系统安装手册 (17178篇文章)
·系统备份专题 (14252篇文章)
·Java环境安装配置 (5277篇文章)
·系统维护手册 (13751篇文章)
·Java编程开发手册 (7565篇文章)
热点标签: director  html  ie  ip地址  java  
最新论坛文章
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
百度推荐,商机无限
搜索您感兴趣的内容
 
Web 本站
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章