java版天气预报源码(struts2)

/*
'
' 文件名        免费天气插件j2ee+jqeury版本
' 作者             烟de傀儡
' 日期             2011年05月10日
' 声明  
'   感谢 '走过四季' 提供jqeury版本的天气预报插件
'	由于浏览器兼容问题(有些浏览器不能跨域抓数据)
'	我将此该为struts2的j2ee版本
'
*/

//jsCity、jsWeather为您html中的元素ID
function setWeather(tID,tCity,tTip,tWendu,tFengli)
{
	alert(tWendu);
 $("#jsCity").html("<a href='http://www.weather.com.cn/html/weather/"+tID+".shtml' target=_bank>"+tCity+"</a>");
 $("#jsWeather").html(tTip);
 $("#jsFengli").html(tFengli);
 $("#jsWendu").html(tWendu);
}

var cityid,weaXML,weaHTML;
weaXML = "http://service.weather.com.cn/plugin/";
weaHTML = "http://m.weather.com.cn/data/";
$().ready(function() {
 cityid = $.cookies.get('wea_cityip');
 if(cityid==null){
  LoadJS('http://61.4.185.48:81/g/', function()
  {
   if (typeof id != 'undefined')
   {
    
    $.cookies.set('wea_cityip', id,null);
    
    cityid = $.cookies.get('wea_cityip');
    getWeather(cityid);
   }
  });
 }
 else{
  getWeather(cityid);
 }
});
function getWeather(cid)
{
 $.cookies.set('wea_cityid', cid,null);
 var weajs = weaHTML+cid+'.html';
 var url = "http://localhost:8080/weatherDemo/getWeatherData?url="+weajs;
 $.getJSON(
  //weajs,
  url,
  function(objJson){
	  
	   var cityname = objJson.weatherinfo.city;  //上海
	   var id = objJson.weatherinfo.cityid;   //101020100 
	   var cityinfo1=objJson.weatherinfo.weather1; //晴转多云
	   var cityinfo2=objJson.weatherinfo.weather2;
	   var wd1=objJson.weatherinfo.wind1;   //北风3-4级
	   var wd2=objJson.weatherinfo.wind2;
	   var fl1=objJson.weatherinfo.fl1;   //3-4级
	   var fl2=objJson.weatherinfo.fl2;
	   var temp1=objJson.weatherinfo.temp1;  //4℃~-1℃
	   var temp2=objJson.weatherinfo.temp2;
	   var img1=objJson.weatherinfo.img1;
	   var img2=objJson.weatherinfo.img2;
	   var img3=objJson.weatherinfo.img3;
	   var img4=objJson.weatherinfo.img4;
	   var index=objJson.weatherinfo.index;
	   var index_d=objJson.weatherinfo.index_d;
	   var index_xc=objJson.weatherinfo.index_xc;
	   var index_uv=objJson.weatherinfo.index_uv;
	   var date=objJson.weatherinfo.date;
	   var date_y=objJson.weatherinfo.date_y;
	   var imgtitle1=objJson.weatherinfo.img_title1;
	   var imgtitle2=objJson.weatherinfo.img_title2;
	   var imgsingle=objJson.weatherinfo.img_single;
	   var imgtitlesingle=objJson.weatherinfo.img_title_single;
	   
	   setWeather(id,cityname,cityinfo1,temp1.toString(),wd1);
 }); 
}
function LoadJS(jsUrl,fCallBack)
{
 var _script = document.createElement('script');
 _script.setAttribute('type', 'text/javascript');
 _script.setAttribute('charset', 'UTF-8');
 _script.setAttribute('src', jsUrl);
 document.getElementsByTagName('head')[0].appendChild(_script);
 
 if(typeof fCallBack != 'undefined')
 {
  if ($.browser.msie){
   _script.onreadystatechange = function()
   {
    if (this.readyState=='loaded'||this.readyState=='complete'){
    	fCallBack();
    	
    }
   };
  }else if ($.browser.mozilla)
  {
   _script.onload = function(){
	   fCallBack();
	   };
  }else{
   fCallBack();
   
  }
 }
}

 上面为:chWeather.js

package com.ch.util;

import java.io.IOException;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.methods.GetMethod;

public class DataHttpClient {
	
	public String getWeaherData(String url){
        HttpClient http = new HttpClient();
        
        if(null == url || url.equals("")){
        	url="http://m.weather.com.cn/data/101110101.html";//默认西安的天气
        }
        HttpMethod method = new GetMethod(url);  
        String data = "";
  
        try {
			http.executeMethod(method);
			
			System.out.println(method.getStatusLine());  
			int i = method.getStatusCode();
			
			if(vilidateStatus(i)){
				
				data = method.getResponseBodyAsString();
			}
	        
	        
	        System.out.println("我来看看"+data);
		} catch (HttpException e) {
			System.out.println(e.getMessage());
			return null;
			
		} catch (IOException e) {
			System.out.println(e.getMessage());
			return null;
		}  
        // 打印服务器返回的状态  
        
        
        return data;
	}
	public boolean vilidateStatus(int i){
		
		if(i==200){
			return true;
		}
		
		return false;
	}

}

 上面为:DataHttpClient.java

另外附上源码

猜你喜欢

转载自haohaoker-163-com.iteye.com/blog/1039333