天氣預報是非常有用的服務,如果能在**上整合天氣預報,能極大地方便使用者查詢。
尋遍了國內所有的氣象站點,沒找見提供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...