使用YahooService實現天氣預報

2021-08-25 01:45:56 字數 1372 閱讀 3297

天氣預報是非常有用的服務,如果能在**上整合天氣預報,能極大地方便使用者查詢。

尋遍了國內所有的氣象站點,沒找見提供web服務的,太小氣了,只能去國外找。noaa(www.weather.gov)提供乙個web服務,但是死活連不上伺服器,估計被遮蔽了,其他提供全球天氣預報的有www.weather.com和yahoo,

不過weather.com的服務太麻煩,還需要註冊,相比之下,yahoo的天氣服務既簡單又快速,只需乙個http請求,然後解析返回的xml即可獲得天氣預報。

以北京為例,在weather.yahoo.com查詢北京的城市**為chxx0008,對應的url為:

然後,通過sax解析返回的xml:

url url = new url("");

inputstream input = url.openstream();

saxparse***ctory factory = saxparse***ctory.newinstance();

factory.setnamespaceaware(false);

saxparser parser = factory.newsaxparser();

parser.parse(input, new yahoohandler());

自己定義乙個yahoohandler來響應sax事件:

/*** for more information, please visit:

* author: liao xuefeng

*/public class yahoohandler extends defaulthandler

catch (exception e)

}else if("yweather:forecast".equals(qname))

catch (exception e)

int low = integer.parseint(attributes.getvalue(2));

int high = integer.parseint(attributes.getvalue(3));

string text = attributes.getvalue(4);

int code = integer.parseint(attributes.getvalue(5));

system.out.println("weather: "+ text + ", low=" + low + ", high=" + high);

}super.startelement(uri, localname, qname, attributes);}}

執行結果:

weather: partly cloudy, low=7, high=16

weather: sunny, low=7, high=20

Response AddHeader使用例項收集

response.addheader refresh 60 url newpath newpage.asp 這等同於客戶機端元素 頁面轉向 response.status 302 object moved response.addheader location newpath newpage.asp...

使用ServletFileUpload實現上傳

1.首先我們應該為上傳的檔案建乙個存放的位置,一般位置分為臨時和真是資料夾,那我們就需要獲取這倆個資料夾的絕對路徑,在servlet中我們可以這樣做 然後建立檔案工廠即倉庫乙個引數表示存放多大後flush,fileitemfactory factory new diskfileitemfactory...

使用ServletFileUpload實現上傳

1.首先我們應該為上傳的檔案建乙個存放的位置,一般位置分為暫時和真是目錄,那我們就須要獲取這倆個目錄的絕對路徑,在servlet中我們能夠這樣做 然後建立檔案工廠即倉庫乙個引數表示存放多大後flush,fileitemfactory factory new diskfileitemfactory c...