Evan's Blog

          Java, software development and others.

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            28 隨筆 :: 0 文章 :: 73 評(píng)論 :: 0 Trackbacks

          2006年3月9日 #

          最近一個(gè)項(xiàng)目需要考慮多語(yǔ)言的用戶,自然就想采用utf-8編碼,所有JSP頁(yè)面都修改完畢,一切運(yùn)行正常,由于一直使用FF來(lái)檢測(cè)瀏覽器兼容性,今天不知怎的決定用IE來(lái)跑一下,發(fā)現(xiàn)所有表單提交的頁(yè)面都提示JS錯(cuò)誤,查了一下,發(fā)現(xiàn)是一個(gè)驗(yàn)證身份證的方法中有一個(gè)數(shù)組的初始化中保存了各個(gè)省市的名字,類似于:var area=['上海','北京']之類的形式。一般情況下,JS錯(cuò)誤我都是在FF中用FireBug調(diào)試的,可偏偏在FF中一切正常,這下就傻眼了,注釋掉這個(gè)語(yǔ)句自然沒(méi)問(wèn)題,可怎么也想不出這么正常的一個(gè)賦值怎么會(huì)弄出個(gè)瀏覽器兼容的問(wèn)題出來(lái)。折騰了一個(gè)下午,突然想到,是不是編碼的問(wèn)題啊,將這個(gè)JS用utf-8編碼另存,一切ok。

          另外,采用utf-8編碼之后,用WinMerge比較文件時(shí),就會(huì)出來(lái)Information lost to encoding errors:之類的提示,心想,這個(gè)指定個(gè)編碼就可以了吧。在編輯=>選項(xiàng)中,果然看到代碼頁(yè)的指定,如是選擇指定代碼頁(yè),輸入utf-8,點(diǎn)擊確定,被提示請(qǐng)輸入一個(gè)整數(shù),估計(jì)這時(shí)候大多數(shù)人和我一樣傻眼,utf-8的代碼頁(yè)是多少?好在有Google,調(diào)整不同的關(guān)鍵字,終于找到清炒苦瓜的一篇文章中提到utf-8的代碼頁(yè)是65001,并且也是為了解決WinMerge的亂碼問(wèn)題,可是改完之后,并沒(méi)有起作用,這次沒(méi)有去懷疑這個(gè)代碼頁(yè)是不是正確,再仔細(xì)看一下那篇文章,嗯,人家明明說(shuō)用的是2.6.8嘛,檢查一下自己的版本,2.6.0,是不是版本問(wèn)題呢?來(lái)到WinMerge的網(wǎng)站,發(fā)現(xiàn)竟然已經(jīng)是2.6.12了,于是下載最新版本,然后將代碼頁(yè)改成65001,嗯,這下所有的中文注釋都乖乖出來(lái)了。
          posted @ 2008-01-05 21:41 Evan 閱讀(2835) | 評(píng)論 (1)編輯 收藏

               摘要: Apache反向代理設(shè)置  閱讀全文
          posted @ 2008-01-04 21:13 Evan 閱讀(5967) | 評(píng)論 (2)編輯 收藏

               摘要: 這個(gè)Blog,就象我久未清理的書(shū)桌,已經(jīng)落了厚厚的一層灰塵,在這個(gè)新年的第一天,決定用這樣一個(gè)夠噱頭的標(biāo)題,以一篇夠水的日志,來(lái)告訴自己,已經(jīng)是2008年了......  閱讀全文
          posted @ 2008-01-01 13:22 Evan 閱讀(321) | 評(píng)論 (0)編輯 收藏

               摘要: 不要假裝我們是一個(gè)文明古國(guó)了,傳統(tǒng)早已割裂,我們是個(gè)無(wú)根的民族,精神一片荒蕪,偽造出的傳統(tǒng)只加劇了我們的虛偽,凸顯了我們的空洞與脆弱。  閱讀全文
          posted @ 2007-08-31 21:28 Evan 閱讀(223) | 評(píng)論 (0)編輯 收藏

               摘要: 你是不是從svn 1.2甚至更早的版本就開(kāi)始用Subversion了?是不是在用svnserve做服務(wù)器?是不是很認(rèn)真的讀了svn自帶的文檔?那么,很有可能,你也象我一樣,被它小小的忽悠了一把:)。  閱讀全文
          posted @ 2007-04-01 14:33 Evan 閱讀(3280) | 評(píng)論 (1)編輯 收藏

               摘要: 在網(wǎng)上兜到一篇文章,從講述一個(gè)譯者和一家出版社之間的糾紛,引申出了一些待人處世的道理,主要是關(guān)于一個(gè)人碰到不公平的事情的時(shí)候,應(yīng)該怎樣辦,覺(jué)得頗有道理。什么樣的人才是有力量的人呢,也許是那些能合理處理不合理的事情,甚至能讓不合理的事情最終轉(zhuǎn)化為多贏局面的人吧。人生要真能達(dá)到這樣一種境界,該是怎樣一副海闊憑魚(yú)躍(管它波濤洶涌還是風(fēng)平浪凈),天高任鳥(niǎo)飛(管它烏云閉日還是陽(yáng)光普照)的從容畫(huà)面。  閱讀全文
          posted @ 2006-12-30 19:48 Evan 閱讀(1077) | 評(píng)論 (1)編輯 收藏

          好久沒(méi)有更新Blog了,看到還有人在關(guān)注這個(gè)Blog,很是慚愧。發(fā)現(xiàn)還是有人在使用Polarion的SVN Web Client,并且碰到了一些小問(wèn)題,盡管我工作中幾乎不用這個(gè)客戶端,但當(dāng)初安裝的版本依然還在,所以決定稍微研究一下,但愿能給喜好這款軟件的人一些幫助。

          1. 為什么老是提示“Your credentials are not correct. Please check them and try again. ”?
          這個(gè)多半是svn初學(xué)者常碰到的問(wèn)題,尤其在使用HTTP協(xié)議的時(shí)候。一開(kāi)始大家都用svnserve來(lái)做svn的服務(wù)器,自然配置的是conf中的passwd。但如果采用HTTP協(xié)議的話,就得使用Basci HTTP Authentication了,需要用Apache提供的htpasswd來(lái)管理用戶和口令。這個(gè)的配置在svn自帶的幫助文件中第6章“httpd, the Apache HTTP Server”一節(jié)中有比較詳細(xì)的解釋。但如果你沒(méi)有通篇看完,在Apache中沒(méi)有加上Require valid-user指令的話,那是允許匿名操作的。我想,你不愿意留下這樣的安全漏洞吧。

          2. 怎樣配置多個(gè)repository
          這個(gè)也是實(shí)際中需要的,當(dāng)然,在它的readme中其實(shí)是說(shuō)得很清楚的。但我們有些同志就是喜歡拿來(lái)就試,尤其是在有些類似于我這種其實(shí)語(yǔ)焉不詳?shù)奈恼聲r(shí),更是就喜歡照葫蘆畫(huà)瓢,而不去看最權(quán)威最原始的英文文檔了。要配置多個(gè)repository,以HTTP協(xié)議為例,在web.xml中要?jiǎng)h掉RepositoryUrl、Username、Password這3個(gè)參數(shù)的設(shè)置,然后加上ParentRepositoryDirectory參數(shù),值自然是指向svn倉(cāng)庫(kù)的父目錄了,比如http://localhost/svn/,這個(gè)東西又是哪里來(lái)的呢?自然需要在Apache中配置,用SVNParentPath來(lái)指定svn倉(cāng)庫(kù)的父目錄,Apache會(huì)自動(dòng)解析其下所有的倉(cāng)庫(kù)的。這里要注意一下AuthzSVNAccessFile授權(quán)文件的寫(xiě)法,這里將配置所有倉(cāng)庫(kù)的存取權(quán)限,對(duì)于每個(gè)倉(cāng)庫(kù),需要用[倉(cāng)庫(kù)名:/module]的方式來(lái)配置。

          3. 怎樣使用svn協(xié)議
          前面我一直用http協(xié)議做例子,實(shí)在是因?yàn)槲以谄?.5.0下沒(méi)有配置出來(lái)過(guò)svn協(xié)議:(。這次去其網(wǎng)站下載了個(gè)最新的nightly版本,發(fā)現(xiàn)其已經(jīng)能夠支持http, svn, svn+ssh, ssl和proxy等6種協(xié)議了??纯雌浯a結(jié)構(gòu),好象也發(fā)生了很大的變化,估計(jì)應(yīng)該有比較大的改進(jìn)。于是,用這個(gè)版本試了一把,呵呵,輕而易舉就把svn協(xié)議給連通了,包括多倉(cāng)庫(kù)的情況。并且其還改進(jìn)了原來(lái)設(shè)置父目錄地址時(shí)一定要在最后添加/的要求,估計(jì)原來(lái)在這個(gè)地方卡殼的朋友也不少吧:)。不過(guò),新版本還是不支持中文文件名,看我以前的帖子自己改吧。

          Important: 由于svn webclient采用的javasvn(現(xiàn)已更名為svnkit)版本較低,用svn協(xié)議在提交老的文件時(shí)會(huì)失敗,但添加新的文件時(shí)沒(méi)有問(wèn)題,所以,大家就不要再嘗試svn協(xié)議了。如果不采用SVN協(xié)議,則其官方發(fā)布的版本就沒(méi)什么問(wèn)題了,已經(jīng)有網(wǎng)友重新打包了一個(gè)解決了中文文件名的版本,到這里下載。(Updated: 2007.1.20)
          posted @ 2006-12-27 13:04 Evan 閱讀(3638) | 評(píng)論 (2)編輯 收藏

               摘要: 使用Jarkata FileUpload最新版本解決SVNWebClient提交中文文件名或注釋時(shí)出錯(cuò)的問(wèn)題。  閱讀全文
          posted @ 2006-05-14 20:11 Evan 閱讀(4841) | 評(píng)論 (11)編輯 收藏

               摘要: 在我的“[推薦]兩款好用的SVN Web Client”一文中曾經(jīng)提及我所看好的sventon中文支持不好的問(wèn)題,于是在其論壇中提了個(gè)問(wèn)題,今天收到他們的郵件,稱在其最新的代碼中已經(jīng)解決了中文的問(wèn)題,今天下載更新后,發(fā)現(xiàn)的確解決了這個(gè)問(wèn)題,呵呵,更新速度挺快的。  閱讀全文
          posted @ 2006-04-12 15:41 Evan 閱讀(1641) | 評(píng)論 (3)編輯 收藏

               摘要:   Everything is meaningless...假設(shè)你突然死掉,世界將會(huì)怎樣?世界將一樣絢麗,地球轉(zhuǎn)的一樣快,太陽(yáng)系每天在宇宙中換一個(gè)位置。大海還是大海,波濤還是波濤,一樣的花開(kāi)花落,潮起潮落。...你是多么可憐的小蟲(chóng)子,在活著的短暫歲月里,在最美好的青春里,都不曾快樂(lè)過(guò),用盡心力去聚集一大堆外在和心靈沒(méi)有關(guān)系的小東西,只是出于對(duì)未來(lái)的沒(méi)有信心,小小的心靈在接近熄滅的一天還在發(fā)出那個(gè)愚蠢的聲音,讓你忙碌,讓你憂慮的聲音:我要,我還要。天底下充滿了這樣的小蟲(chóng)子,當(dāng)一個(gè)離開(kāi)了,又有一個(gè)來(lái)了,做著同樣的事情,洶涌著同樣的小小念頭,受著同樣的煎熬。于是上帝要感慨了:虛空的虛空,凡事都是虛空。已有的事,后必再有;已行的事,后必再行。日光之下,并無(wú)新事。
            ...
            不要憂慮“不要為明天憂慮,天上的飛鳥(niǎo),不耕種也不收獲,上天尚且要養(yǎng)活它,田野里的百合花,從不憂慮它能不能開(kāi)花,是不是可以開(kāi)得和其它一樣美,但是它就自然的開(kāi)花了,開(kāi)得比所羅門(mén)皇冠上的珍珠還美。你呢,憂慮什么呢? 人比飛鳥(niǎo)和百合花貴重多了,上帝會(huì)棄你不顧嗎?”  閱讀全文
          posted @ 2006-04-09 22:13 Evan 閱讀(984) | 評(píng)論 (0)編輯 收藏

               摘要: 推薦兩款純Java的SVN Web Client軟件。其安裝使用均比ViewVC要好!  閱讀全文
          posted @ 2006-04-06 00:30 Evan 閱讀(19284) | 評(píng)論 (21)編輯 收藏

               摘要: 前幾天好奇,也剛好得了點(diǎn)空閑,然后就想看看ViewVC對(duì)Subversion的支持程度,于是就想裝個(gè)玩玩。好死不死的,在我的VMWare Workstation上剛好有個(gè)Windows Server 2003,心想,就它吧,可就這么一偷懶,折騰了我好幾天,最終還是只能算將就著把它給裝上了。  閱讀全文
          posted @ 2006-04-05 00:28 Evan 閱讀(7697) | 評(píng)論 (5)編輯 收藏

          常常能從galeer(嘎荔兒)的網(wǎng)絡(luò)日志里聽(tīng)到一些比較好聽(tīng)的歌曲,并且那些點(diǎn)評(píng)也不錯(cuò)。今天聽(tīng)到U2 - With or Withou You,首先,這首歌還真不錯(cuò);其次,不知是這首歌原來(lái)就帶的呢,還是galeer自己加上了這樣幾句詩(shī):

          我雖然行過(guò)死蔭的幽谷,
          也不怕遭害;
          因?yàn)槟闩c我同在;
          你的杖,你的竿,都安慰我。

          --《詩(shī)篇第二十三篇第四節(jié)》

          當(dāng)然,一開(kāi)始我不知道這是《舊約全書(shū)·詩(shī)篇》中的內(nèi)容,于是就Google了一把,找到下面這篇文章《因?yàn)槟闩c我同在》:


          我去一個(gè)鄉(xiāng)村教會(huì)講道,在接待的弟兄家休息。看見(jiàn)弟兄的兒子學(xué)習(xí)很用功,很是喜愛(ài)。我請(qǐng)小朋友將他的語(yǔ)文課本借給我看。這是人教版小學(xué)四年級(jí)語(yǔ)文課本。當(dāng)中有一篇文章吸引了我——

          1989 年美國(guó)洛杉磯大地震,30萬(wàn)人在不到4分鐘時(shí)間里受到不同程度的傷害。這其間一個(gè)小學(xué)的慘況讓人心酸。多少孩子的父母因在地震中痛失愛(ài)子而哀聲聞天,面對(duì) 地震后的學(xué)校廢墟只能絕望離去。但一個(gè)父親卻在廢墟中不斷地挖掘?qū)ふ易约耗遣牌邭q的叫阿曼達(dá)的兒子。救火隊(duì)長(zhǎng)擋住他,“太危險(xiǎn)了,隨時(shí)可能發(fā)生大爆炸,請(qǐng) 你離開(kāi)。”別的學(xué)生家長(zhǎng)也勸說(shuō),“太晚了,沒(méi)有希望了。”可這位父親不顧這些勸阻,在廢墟中不斷地尋找。就在他挖了整整八個(gè)小時(shí)后,父親聽(tīng)見(jiàn)瓦礫堆底下傳 出他十分熟悉的聲音,“爸爸,是你嗎?”這時(shí)他發(fā)現(xiàn)有14個(gè)孩子在當(dāng)中,因?yàn)檫@是在教室墻角的位置,當(dāng)房頂塌下時(shí)架成大三角形,孩子們才沒(méi)被砸著。“我告 訴同學(xué)們不要害怕,說(shuō)只要我爸爸活著就一定會(huì)來(lái)救我,也能救大家。因?yàn)槟阏f(shuō)過(guò),不論發(fā)生什么,你總會(huì)和我在一起!”孩子對(duì)爸爸說(shuō)。“爸爸,先讓我的同學(xué)出 去吧,我知道你會(huì)跟我在一起,我不怕。不論發(fā)生了什么,我知道你總會(huì)跟我在一起。”

          14個(gè)孩子獲救了!

          我們不禁會(huì)問(wèn),如果因?yàn)榇蟊ǖ奈kU(xiǎn)而絕望地放棄,如果這個(gè)父親和其他的家長(zhǎng)一樣絕望地離開(kāi),如果阿曼達(dá)沒(méi)有“因?yàn)槟闩c我同在”的信念,那結(jié)果又將如何?

          我想說(shuō)的是,絕望讓生命失去,希望使生命存留。

          詩(shī)人說(shuō),“因?yàn)槟闩c我同在。”(詩(shī)篇23:3)這樣的信心使詩(shī)人在人生的黑夜里依然有生命的曙光,在人生的冬天里可憑信宣告說(shuō),冬天來(lái)了,上帝的春天也不再遙遠(yuǎn)。

          “因?yàn)槲遗c你同在,要拯救你。這是耶和華說(shuō)的。”(耶利米書(shū)1:8)

              阿曼達(dá)對(duì)父親單純的信念應(yīng)一如我們對(duì)天上的父親執(zhí)著的信仰。



          是啊,“絕望讓生命失去,希望使生命存留”,不過(guò)呢,對(duì)于我這個(gè)不信教的人來(lái)說(shuō),大可抱著象故事中的小阿曼達(dá)相信他父親只要活著就一定會(huì)來(lái)救他的希望一樣,也不一定非要抱著耶和華會(huì)來(lái)救我們的希望的。不過(guò),不管信什么教,基督也好,佛陀也好,其實(shí)所有經(jīng)典中的智慧都是值得學(xué)習(xí)的;當(dāng)然,如果你在這個(gè)浮躁的物質(zhì)社會(huì)中實(shí)在找不到可以依賴的東西時(shí),信個(gè)把教也未嘗不可。
          posted @ 2006-04-01 21:33 Evan 閱讀(582) | 評(píng)論 (0)編輯 收藏

               摘要: SVN會(huì)取代CVS嗎?這個(gè)雖然不是我們這種小程序員能決定的大事,但學(xué)學(xué)總無(wú)妨吧,這里有一些我搜集的資料。  閱讀全文
          posted @ 2006-03-23 23:55 Evan 閱讀(3197) | 評(píng)論 (0)編輯 收藏

               摘要: 你是不是為了高的測(cè)試覆蓋度而在為每個(gè)函數(shù)添加多個(gè)測(cè)試方法,甚至連getX()和setX()都不放過(guò)呢?或者,你一看到覆蓋度達(dá)到100%的代碼,景仰之心就開(kāi)始“有如滔滔江水綿綿不絕,又有如黃河泛濫,一發(fā)不可收拾”了呢?那么,你應(yīng)該讀讀Andrew Glover在最近的developerWorks上發(fā)表的這篇文章。  閱讀全文
          posted @ 2006-03-18 23:23 Evan 閱讀(1209) | 評(píng)論 (0)編輯 收藏

               摘要: 《Java Threads》的第5章“Minimal Synchronization Techniques”,是這本書(shū)中到現(xiàn)在我認(rèn)為最差的一章了,當(dāng)然主要是我不喜歡JDK 1.5新推出的Atomic Class,而這一章卻花了不少篇章來(lái)介紹,且牽強(qiáng)地改造打字程序,又語(yǔ)焉不詳?shù)刂赋鲞@種改造的困難之處和可能帶來(lái)的副作用,但卻又不能從代碼的實(shí)際運(yùn)行中看到這種副作用,很有誤導(dǎo)初學(xué)者的嫌疑。不過(guò),我想,沒(méi)有哪個(gè)初學(xué)者會(huì)冒風(fēng)險(xiǎn)為了用Atomic Class而將原本簡(jiǎn)單明了的算法改造得如此晦澀難懂,并且還有潛在的出錯(cuò)風(fēng)險(xiǎn)。所以,對(duì)于Atomic Class,我建議跳過(guò)不讀,絕對(duì)沒(méi)有什么損失。不過(guò)對(duì)于其中“5.1.3 Double-Checked Locking”和“5.3 Thread Local Variables”這兩節(jié)倒要著重讀一讀,尤其是Thread Local,應(yīng)該說(shuō)是Java中一個(gè)比較重要的多線程工具。  閱讀全文
          posted @ 2006-03-11 23:11 Evan 閱讀(1657) | 評(píng)論 (0)編輯 收藏

               摘要: 快來(lái)看“洋本山”怎樣忽悠一個(gè)只想買(mǎi)一把錘子的人最后買(mǎi)了一個(gè)工具工廠的建造工廠的通用建造工廠。很別扭是吧,但如果你是個(gè)開(kāi)發(fā)Web應(yīng)用的Java程序員,你也許已經(jīng)或者正在被忽悠。  閱讀全文
          posted @ 2006-03-11 17:04 Evan 閱讀(5790) | 評(píng)論 (23)編輯 收藏

          看到《Java Threads》第5章,介紹了JDK 1.5新加的一些所謂原子類(Atomic Classes),總感覺(jué)有點(diǎn)為原子而原子,實(shí)際操作中,又有多少人會(huì)為了少許的性能提升而刻意去用這些別扭的操作而放棄直觀的synchronize關(guān)鍵字或者Lock類呢?不過(guò),這里不是想討論這個(gè),而是當(dāng)其用Atomic Classes來(lái)改造它的打字程序后,解釋用原子類只是保證類似遞增、遞減、賦值等操作的原子性,而不能保證其所在的方法一定是線程安全的,然后說(shuō),有可能按鍵事件的處理可能需要等待resetScore()處理完才能執(zhí)行,而這會(huì)導(dǎo)致錯(cuò)誤的評(píng)分(被當(dāng)成多敲了鍵)。由于前幾章的內(nèi)容相對(duì)比較簡(jiǎn)單易懂,所以也沒(méi)有很仔細(xì)的運(yùn)行那些例子。這里為了驗(yàn)證一下,就運(yùn)行了一下第4章的例子,然后發(fā)現(xiàn),基本上第一次的評(píng)分總是錯(cuò)的。這就引起了我的注意,因?yàn)?,一般情況下,如果是race condition導(dǎo)致的錯(cuò)誤是很難重現(xiàn)的,這么明顯的錯(cuò)誤很可能是程序邏輯上的錯(cuò)誤。仔細(xì)看了一下代碼,發(fā)現(xiàn)在start按鈕的事件處理方法里,有下面這樣一段代碼:
          startButton.addActionListener(new ActionListener() {
                  public void actionPerformed(ActionEvent evt) {
                          displayCanvas.setDone(false);
                          producer.setDone(false);
                          startButton.setEnabled(false);
                          stopButton.setEnabled(true);
                          feedbackCanvas.setEnabled(true);
                          feedbackCanvas.requestFocus();
                          score.resetScore();
                      }
                  });
          注意重置成績(jī)的調(diào)用放在了最后,此時(shí),隨機(jī)生成字符的線程應(yīng)該被喚醒并產(chǎn)生了第一個(gè)字符,然后,resetScore()將需要輸入的字符又設(shè)成了-1,所以,當(dāng)你第一次輸入字符時(shí),總是被認(rèn)為是多擊了一次鍵而扣1分:(。既然這樣,那停止然后再啟動(dòng)也應(yīng)該會(huì)發(fā)生這個(gè)錯(cuò)誤啊。而事實(shí)上的確是這樣。我想,這不應(yīng)該看做是race condition吧,有什么樣的同步技術(shù)能夠避免這個(gè)問(wèn)題呢?除非另外弄個(gè)標(biāo)志,當(dāng)成績(jī)沒(méi)有被重置前,不能產(chǎn)生第一個(gè)字符。當(dāng)然,這是不需要的,只要將score.resetScore()放到第一句就可以了。

          然后又運(yùn)行了第3章的例子,發(fā)現(xiàn)基本上沒(méi)有這個(gè)問(wèn)題。難道第3章的代碼是正確的?打開(kāi)源代碼一看,重置成績(jī)的方法還是放在最后,那這里為什么又是正確的呢?我想,大約是第3章的例子中,每次點(diǎn)擊start按鈕,都重新創(chuàng)建一個(gè)線程對(duì)象的原因吧。由于創(chuàng)建對(duì)象和初始化線程需要一定的時(shí)間,剛好給了主線程重置成績(jī)的機(jī)會(huì)。

          不知道作者有意為之呢,還是疏忽,不過(guò),這樣的錯(cuò)誤不能算是race condition的例子。
          posted @ 2006-03-09 22:11 Evan 閱讀(848) | 評(píng)論 (0)編輯 收藏

          主站蜘蛛池模板: 女性| 鹤峰县| 永清县| 南昌市| 弥勒县| 盘锦市| 弋阳县| 星子县| 招远市| 枣强县| 广西| 万年县| 彭泽县| 福海县| 开阳县| 南汇区| 韩城市| 衡水市| 商丘市| 墨脱县| 河津市| 微山县| 元谋县| 广河县| 五大连池市| 平定县| 永丰县| 和平县| 泸水县| 日喀则市| 航空| 台南县| 金秀| 横山县| 海口市| 庆云县| 金坛市| 探索| 佛坪县| 汝南县| 深州市|