⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 用java servlet构建旗帜广告系统.txt

📁 含有许多JAVA的技巧!
💻 TXT
📖 第 1 页 / 共 2 页
字号:
       else  

        j = integer.intValue();  

        if(j >= vector.size()) { 

         j = 0;  

         i = j;  

         if(++j >= 3){  

          j = 0;  

          httpsession.putValue("bi", new Integer(j));  

         }  

         else  

           i = 0;  

           String s2 = (String)vector.elementAt(i);  

           String s3;  

           if(httpsession != null && (s3 = getUrl(hashtable, s2)) != null)  

            {  

             Hashtable hashtable1;  

             if((hashtable1 = (Hashtable)httpsession.getValue("旗帜广告系统 ,Wayne Zheng")) == null){  

              hashtable1 = new Hashtable();  

              hashtable1.put(s, s3);  

              httpsession.putValue("旗帜广告系统 ,Wayne Zheng", hashtable1);  

              }  

             if(hashtable.get("log") != null) { 

              writeLog(hashtable, s2, "v", httpservletrequest);  

              outputBanner(s2, hashtable, httpservletresponse);  

              vector = null;  

              }  



    private void writeLog(Hashtable logHashtable, String logString, String logString1, String logString2, HttpServletRequest httpservletrequest)//写日志的函数  

    {  

     String logString3 = (String)hashtable.get("log");  

     String logString4 = getLogString(logString, httpservletrequest) + " \"" + logString1 + "\"";  

     GregorianCalendar gregoriancalendar = new GregorianCalendar();  

     //获取当前的时间  

     gregoriancalendar.setTime(new Date());  

     String logString5 = logString3 + stringDate(gregoriancalendar) + logString2 + ".txt";//以时间戳和“c”或“v”为文件名来写日志文件  

     saveLog(hashtable, logString5, logString4);  

     }  



     private void writeLog(Hashtable logHashtable, String logString, String logString1, HttpServletRequest httpservletrequest) file://写日志文件  

     {  

      String logString2 = (String)logHashtable.get("log");  

      String logString3 = getLogString(logString, httpservletrequest);  

      GregorianCalendar gregoriancalendar = new GregorianCalendar();  

      gregoriancalendar.setTime(new Date());  

      String logString4 = logString2 + stringDate(gregoriancalendar) + logString1 + ".txt";  

      saveLog(logHashtable, logString4, logString3);  

     }  

    private void saveLog(Hashtable hashtable, String s, String s1)//把日志文件保存在硬盘上  

     {  

       synchronized(hashtable.get("log"))  

      {  

       try  

        {  

         FileWriter filewriter = new FileWriter(s, true);  

         PrintWriter printwriter = new PrintWriter(filewriter);  

         printwriter.println(s1);  

         printwriter.flush();  

         printwriter.close();  

         filewriter.close();  

        }  

       catch(Exception _ex) { }  

     }  

    }  

   private String getLogString(String s, HttpServletRequest httpservletrequest) 

    //取得日志字符串  

    {  

     String s1 = httpservletrequest.getRemoteAddr();  

     //取得远程的访问者的IP地址  

     String s2 = httpservletrequest.getHeader("User-Agent");  

     String s3 = httpservletrequest.getHeader("Referer");  

     String s4 = "\"" + s + "\"";  

     if(s1 == null)  

      s1 = "-";  

      if(s2 == null)  

       s2 = "-";  

      else  

       s2 = "\"" + s2 + "\"";  

      if(s3 == null)  

       s3 = "-";  

      else  

       s3 = "\"" + s3 + "\"";  

      return s1 + " [" + new Date() + "] " + s4 + " " + s3 + " " + s2;  

     }  


   private String stringDate(Calendar calendar) //取得时间戳  

    {  

      String s = String.valueOf(calendar.get(1));  

      String s1 = String.valueOf(calendar.get(2));  

      if(s1.length() == 1)  

        s1 = "0" + s1;  

        s = s + s1;  

        s1 = String.valueOf(calendar.get(5));  

        if(s1.length() == 1)  

         s1 = "0" + s1;  

         return s + s1;  

       }  



    private String getFileByUrl(Hashtable hashtable, String s)  

     {  

      for(Enumeration enumeration = hashtable.keys(); enumeration.hasMoreElements();)  

       //hashtable的keys()方法返回了哈希表关键字的枚举,enumeration的hasMoreElements()方法测试枚举重是否还有其他元素  

       {  

        String s1 = (String)enumeration.nextElement(); 

         //让s1的值为enumeration的下一个元素值  

        if(s.equals(hashtable.get(s1)))//如果s的值为s1的值,则  

         return s1;//返回s1的值  

       }  

       return null;  

      }  

    private String getFirstSite(Hashtable hashtable)//取得第一个站点的名字  

     {  

      String s = (String)hashtable.get("dir");  

      File file = new File(s);  

      if(file == null)  

        return null;  

        String as[] = file.list();  

        Vector vector = getGraphFiles(as);  

        //设置Vector向量变量来获取图形文件  

        if(vector.size() == 0)//如果没有图形文件,则返回空值  

          return null;  

        else  

          return getUrl(hashtable, (String)vector.elementAt(0));  

        }  

    private String getUrl(Hashtable hashtable, String s)//取得URL  

     {  

       String s1 = s.toLowerCase();//设置s1为s的小写形式  

       for(Enumeration enumeration = hashtable.keys(); enumeration.hasMoreElements();)  

       {  

        String s2 = (String)enumeration.nextElement();  

        if(s1.equals(s2.toLowerCase()))  

         return (String)hashtable.get(s2);  

       }  

      return null;  

    }  

   private void outputBanner(String s, Hashtable hashtable, HttpServletResponse httpservletresponse)//输出banner广告  

    throws IOException//如果有错则抛出IOException错误  

    {  

     String s1 = (String)hashtable.get("dir") + s;  

     httpservletresponse.setHeader("Cache-control", "no-store");  

     httpservletresponse.setHeader("Pragma", "no-cache");  

     httpservletresponse.setDateHeader("Expires", 1L);  

     httpservletresponse.setContentType("image/" + s.substring(s.indexOf(".") + 1));  

     javax.servlet.ServletOutputStream servletoutputstream = httpservletresponse.getOutputStream();  

     dumpFile(s1, servletoutputstream);  

     servletoutputstream.flush();  

     servletoutputstream.close();  

     }  

    private boolean dumpFile(String s, OutputStream outputstream)  

     {  

      byte abyte0[] = new byte[4096];  

      boolean flag = true;  

      try  

       {  

        FileInputStream fileinputstream = new FileInputStream(s);  

        int i;  

        while((i = fileinputstream.read(abyte0)) != -1)  

         outputstream.write(abyte0, 0, i);  

         fileinputstream.close();  

         }  

      catch(Exception _ex)  

      {  

       flag = false;  

       }  

       return flag;  

     }  

    private Vector getGraphFiles(String as[])//获得图片文件  

     {  

       Vector vector = new Vector();  

       if(as == null)//如果as为空值,则返回vector中的值  

        return vector;  

        for(int i = 0; i < as.length; i++)//as.length为as[]数组长度 

        { 

         String s = as[i].toUpperCase();//设置图片文件文件名的每个字符为大写 

         if(isGraphFile(s))//如果为图片格式 

          vector.addElement(as[i]);//加入向量中 

         } 

         return vector; 

       } 

   private boolean isGraphFile(String stringFileName) 

     //判断文件是否为图形格式 

     { 

      int i = stringFileName.indexOf(".");// 

      if(i <= 0 || i == stringFileName.length() - 1) 

       return false; 

       //判断文件是否以GIF、JPG、JPEG或 PNG结尾 

      String stringExtendFileName1 = stringFileName.substring(i + 1); 

      return stringExtendFileName1.equals("GIF") || stringExtendFileName1.equals("JPG") || stringExtendFileName1.equals("JPEG") || stringExtendFileName1.equals("PNG"); 

     } 

    private void errorMessage(String s, HttpServletResponse httpservletresponse) 

     throws IOException 

     { 

      httpservletresponse.setContentType("text/html"); 

      PrintWriter out = httpservletresponse.getWriter(); 

      out.println(""); 

      out.println(""); 

      out.println(""); 

      out.println(""); 

      out.println(""); 

      out.println(" 




" + s + " 
"); 

      out.println(""); 

      out.println(""); 

      out.flush(); 

      out.close(); 

     } 


   private String getFromQuery(String strQuery, String strQuery1) 

    { 

     if(strQuery == null) 

      return ""; 

      int i; 

      if((i = strQuery.indexOf(strQuery1)) < 0) 

       return ""; 

       String strQuery2 = strQuery.substring(i + strQuery1.length()); 

      if((i = strQuery2.indexOf("&")) < 0) 

        return strQuery2; 

      else 

        return strQuery2.substring(0, i); 

      } 


    public String getServletInfo() 

     { 

      return "旗帜广告系统 ,Wayne Zheng"; 

     } 

   private static final String CPR = "? Wayne Zheng "; 

   private static final String DEFAULT_SITE = "www.yesky.com"; 

   private static final String BANNER_SESSION = "旗帜广告系统 ,Wayne Zheng"; 

   private static final String DIR = "dir"; 

   private static final String LOG = "log"; 

   private static final String BANNERINDEX = "bi"; 

   private static final String EDITED = "edited"; 

   private static final String VIEW_POSTFIX = "v"; 

   private static final String CLICK_POSTFIX = "c"; 

   private static final String CONFIG = "config"; 

   private static final String MODE = "mode"; 
  
   private static final String ID = "id"; 

   private static final int BUFFER_SIZE = 4096; 

   static String separator = "/"; 

   private static Hashtable cfgs; 

   private static Hashtable logs; 

  } 


本栏文章均来自于互联网,版权归原作者和各发布网站所有,本站收集这些文章仅供学习参考之用。任何人都不能将这些文章用于商业或者其他目的。( ProgramFan.Com ) 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -