当前位置:首页 > Java技术 > JAVA版本-得到GOOGLE CALENDAR,显示在你的主页中......

JAVA版本-得到GOOGLE CALENDAR,显示在你的主页中......

2022年11月06日 09:08:26Java技术14
JAVA版本-得到GOOGLE CALENDAR,显示在你的主页中......
第一次看到是在
http://ajax.phpmagazine.net/2006/04/howto_integrate_google_calenda.html
题目为<<Howto integrate Google Calendar in your website using AJAX>>
当时感觉很好啊,这样不用直接每次都访问calendar.google.com站点了.PHP不熟悉,就使用JAVA来获取.当然其步骤没有PHP简单,需要专门写一个方法来获取远程文件,然后获取文件内容,反馈给静态页面.思路大致如此,见下面代码:
package  com;
import  java.io. * ;
import  java.net. * ;

public   class  GetUrlFile{
    
    
/*
    public static void main( String [] args ){
        new GetUrlFile().getFile( "
http://www.google.com/calendar/feeds/yongboy @gmail.com/private-63a1b8b847df62e680c3dd265a566594/basic" );
    }
    
*/
    
// 获取远程文件
     public  String getFile( String fileUrl ){
        StringBuffer sb 
=   new  StringBuffer();
        
try
        {
              URL url 
=   new  URL( fileUrl );
              DataInputStream in
= new  DataInputStream( url.openStream());
             
             
int  result  =   - 1 ;
              
while ( ( result  =  in.read() )  !=   - 1  )
              {
                      sb.append( (
char )result );
              }
              in.close();
        }
        
catch (Exception eurl)
        {
          System.out.println( eurl.toString() );
          sb.append( 
" get the romote file wrong! "  );
        }
        
return  sb.toString();
    }
}
//获取数据的JSP页面:
eventrss.jsp
<% @ page contentType = " text/xml;charset=UTF-8 " %>
<!-- 到如获取远程文件的类 -->
<% @ page  import = " com.GetUrlFile "   %>
<%
            
// 这里要换成你自己的私有地址
            String calendarUrl  =   " http://www.google.com/calendar/feeds/yongboy@gmail.com/private-63a1b8b847df62e680c3dd265a566594/basic " ;
            
// 得到返回的数据
            String getStr  =   new  GetUrlFile().getFile( calendarUrl );
            
// 必须经过编码转换
            getStr  =   new  String( getStr.getBytes(  " ISO-8859-1 "  ),  " UTF-8 "  );
            
// 输出到页面
            out.write( getStr );
%>
其它没有变化,首页见下:
< html >
< head >
< title > Google Calendar Events - RSS Reader </ title >
< link  rel ="stylesheet"  href ="style.css"  type ="text/css"   />
</ head >

< script  language ="javascript"   type ="text/javascript" >

var  RSSRequestObject  =   false //  XMLHttpRequest Object
var  Backend  =  'eventrss.jsp';  //  Backend url
window.setInterval( " update_timer() " 1200000 );  //  update the data every 20 mins


if  (window.XMLHttpRequest)  //  try to create XMLHttpRequest
    RSSRequestObject  =   new  XMLHttpRequest();

if  (window.ActiveXObject)     //  if ActiveXObject use the Microsoft.XMLHTTP
    RSSRequestObject  =   new  ActiveXObject( " Microsoft.XMLHTTP " );


/*
* onreadystatechange function
*/
function  ReqChange() {

    
//  If data received correctly
     if  (RSSRequestObject.readyState == 4 ) {
    
        
//  if data is valid
         if  (RSSRequestObject.responseText.indexOf('invalid')  ==   - 1
        {     
            
//  Parsing Feeds
             var  node  =  RSSRequestObject.responseXML.documentElement; 
            
            
//  Get the calendar title
             var  title  =  node.getElementsByTagName('title').item( 0 ).firstChild.data;
            
            content 
=  ' < div class = " channeltitle " > ' + title + ' </ div > ';
        
            
//  Browse events
             var  items  =  node.getElementsByTagName('entry');
            
if  (items.length  ==   0 ) {
                content 
+=  ' < ul >< li >< div class = error > No events </ div ></ li ></ ul > ';
            } 
else  {
                content 
+=  ' < ul > ';
                
for  ( var  n = items.length - 1 ; n  >=   0 ; n -- )
                {
                    
var  itemTitle  =  items[n].getElementsByTagName('title').item( 0 ).firstChild.data;
                    
var  Summary  =  items[n].getElementsByTagName('summary').item( 0 ).firstChild.data;
                    
var  itemLink  =  items[n].getElementsByTagName('id').item( 0 ).firstChild.data;
                    
try  
                    { 
                        
var  itemPubDate  =  ' < font color = gray > [' + items[n].getElementsByTagName('published').item( 0 ).firstChild.data + '] ';
                    } 
                    
catch  (e) 
                    { 
                        
var  itemPubDate  =  '';
                    }
                    
                
                    content 
+=  ' < li > ' + itemPubDate + ' </ font >< a href = " '+itemLink+' " > ' + itemTitle + ' </ a ></ li > ';
                }
                
    
                content 
+=  ' </ ul > ';
            }
            
//  Display the result
            document.getElementById( " ajaxreader " ).innerHTML  =  content;

            
//  Tell the reader the everything is done
            document.getElementById( " status " ).innerHTML  =   " Done. " ;
            
        }
        
else  {
            
//  Tell the reader that there was error requesting data
            document.getElementById( " status " ).innerHTML  =   " <div class=error>Error requesting data.<div> " ;
        }
        
        HideShow('status');
    }
    
}

/*
* Main AJAX RSS reader request
*/
function  RSSRequest() {

    
//  change the status to requesting data
    HideShow('status');
    document.getElementById(
" status " ).innerHTML  =   " Requesting data JAVA版本-得到GOOGLE CALENDAR,显示在你的主页中...... _ JavaClub全栈架构师技术笔记 " ;
    
    
//  Prepare the request
    RSSRequestObject.open( " GET " , Backend ,  true );
    
//  Set the onreadystatechange function
    RSSRequestObject.onreadystatechange  =  ReqChange;
    
//  Send
    RSSRequestObject.send( null ); 
}

/*
* Timer
*/
function  update_timer() {
    RSSRequest();
}


function  HideShow(id){
    
var  el  =  GetObject(id);
    
if (el.style.display == " none " )
    el.style.display
= '';
    
else
    el.style.display
= 'none';
}

function  GetObject(id){
    
var  el  =  document.getElementById(id);
    
return (el);
}

</ script >

< body  onload ="RSSRequest();" >

< h2 > Google Calendar Events - RSS Reader </ h2 >
< div  id ="status"  style ="display:none" ></ div >
< div  id ="ajaxreader" ></ div >

< div  class ="about" >
< p >< strong > About : </ strong >  This script is reading from a shared Calendar on Google Calendars 
just showing how to display your events from your calendar on your websites.
< br />< br /> For details read post howto  < href =http://ajax.phpmagazine.net/2006/04/howto_integrate_google_calenda.html > integrate Google Calendar in your website using AJAX </ a ></ p >

< p > This demo is insipired from my  < href ="http://ajax.phpmagazine.net/2005/11/ajax_rss_reader_step_by_step_t.html" > AJAX RSS reader </ a ></ p >
< p > Author : Hatem [hatem @ php.net] </ p >
< p > Copyright 2006 (C)  < href ="http://ajax.phpmagazine.net/" > AJAX Magazine </ a ></ p >
</ div >
</ body >

</ html >

附注:GOOGLE CALENDAR地址已经不再可用.为了安全其见!

来源链接:https://www.cnblogs.com/yongboy/archive/2006/04/29/388888.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/68114.html

标签: Java版本Go
分享给朋友:

“JAVA版本-得到GOOGLE CALENDAR,显示在你的主页中......” 的相关文章

Mavan的配置,以及与IDEA版本不一致,解决办法

Mavan的配置,以及与IDEA版本不一致,解决办法

目录 1.mavan的环境变量的配置 1.1 下载maven 3.1.1 1.2、配置Maven环境变量 1.3检...

java基础知识讲解(一)数据类型和运算符

java基础知识讲解(一)数据类型和运算符

Java是一种强类型语言,每个变量都必须声明其数据类型。 Java的数据类型可分为两大类:基本数据类型(primitive data type)和引用数据类型(reference data type)。 Java中定义了3类8种基本数据类型 数值型- b...

Java 并发核心机制

Java 并发核心机制

📦 本文以及示例源码已归档在 javacore 一、J.U.C 简介 Java 的 java.util.concurrent 包(简称 J.U.C)中提供了大量并发工具类,是 Java 并发能力的主要体现(注意,不是全部,有部分并发能力的支持在其他包中)。...

JAVA的JDK环境变量的配置JAVA

JAVA的JDK环境变量的配置JAVA

首先要在官网下载java 官网:http://www.oracle.com/technetwork/java/javase/downloads/ 到这个界面 选择我接受 记住该地址 最好的办法新建记事本,然后按ctrl+s保存 java环境变量的...

Java对象的大小

基本数据的类型的大小是固定的,这里就不多说了。对于非基本类型的Java对象,其大小就值得商榷。 在Java中,一个空Object对象的大小是8byte,这个大小只是保存堆中一个没有任何属性的对象的大小。看 下面语句: Object ob = new Ob...

Java实现1到n的倒数的累加和

Java实现1到n的倒数的累加和

从键盘读入一个数,然后进行运算 实现代码: public static void main(String[] args) { Scanner in=new Scanner(System.in); int n ; n=in....

IntelliJ IDEA 常用快捷键 Windows版本

IntelliJ IDEA 常用快捷键 Windows版本

前言 IDEA快捷键默认支持两种,一种是从熟悉Eclipse开发工具转到IDEA过来的开发这,一种就是操作系统默认的,例如WIndwos就是Default copy,Eclipse就是Eclipse copy,Mac的话就是另外的一套了,这里总结一...

Java Web 工作技巧总结 16.8

Java Web 工作技巧总结 16.8

摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! 四时不谢之兰,百节长青之竹,万古不败之石,千秋不变之人。 1. AOP – LOG 项目中,一个请求过来,一个响应回去。...

我对java String的理解 及 源码浅析

我对java String的理解 及 源码浅析

摘要: 摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆木匠 希望转载,保留摘要,谢谢! 每天起床告诉自己,自己的目标是 ”技术 + 英语 还有生活“! -泥沙砖瓦浆木匠 一...

Java IO 之 OutputStream源码

Writer      :BYSocket(泥沙砖瓦浆木匠) 微         博:BYSocket 豆  ...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。