最近要在一個(gè)項(xiàng)目中使用java, 本來是用.net開發(fā)的, 可是驗(yàn)收時(shí)用戶要求用java平臺(tái),只好進(jìn)行移植工作了. 一直使用的是.net開發(fā), JAVA只是關(guān)注, 沒有深入研究, 等實(shí)際應(yīng)用時(shí)才發(fā)現(xiàn)自己水平有限, 問題一堆.
          把最近碰上的問題做些整理:

          使用JAVA平臺(tái)的問題:
          1. 開發(fā)工具太多, 什么Eclipse, jbuilder等,各有不同, 讓人熟悉就花時(shí)間了, 本為以為對(duì)JB比較熟悉,又有2006版本了, 就用它吧, 可是才兩天, 就發(fā)現(xiàn)自己的代碼文件中的中文變?yōu)閬y碼了, 當(dāng)然網(wǎng)上有一堆解決方案, 只是心里不爽, 直接不用了, 改為eclipse了, 操作界面不是很熟悉, 與VS.NET IDE還是有不少區(qū)別, 只是用多了自然就熟悉了,
          又從網(wǎng)上當(dāng)了一堆插件, 什么tomcat, xml編輯器, 沒有用myeclipse, 雖然支持JSP,以前用過一下, 也不太好用, 其它的就沒找到什么好東西了, 時(shí)間也不允許, 至少現(xiàn)在可以調(diào)度JAVA代碼了, JSP的調(diào)試再說吧.
          2. 開始整的時(shí)候,發(fā)現(xiàn)自己在WEB開發(fā)方面熟悉的是VS的ASPX事件模型, 反而不知道如何處理JSP了, 只好使用以前ASP的模式, 使用form提交, 感覺真是太落伍了, 雖然現(xiàn)在有許多AJAX之類的東西, 也支持客戶端事件模型, 實(shí)在沒時(shí)間研究這些東西了. 先做出來再說.
          數(shù)據(jù)庫連接類使用了以前jive中的幾個(gè)類, 支持在xml中配置連接等, 再自己寫了一個(gè)類, 從XML中讀取SQL語句, 差不多能用.
          3。在網(wǎng)上搜索了一把,未找到在eclipse中對(duì)web service支持比較好的plugin,發(fā)現(xiàn)版本都比較低,似乎久未更新了,JB下到是有不錯(cuò)的設(shè)計(jì)和編譯界面,只是JB其它太爛。


          字符集問題:
          使用java首先就要碰上一個(gè)中文字符的顯示和處理問題, 這些問題總是很煩, 要對(duì)request進(jìn)行編碼才能解決.
          既然使用非MS平臺(tái), 數(shù)據(jù)庫可能就不會(huì)用到mssql server了, 使用mysql, 發(fā)現(xiàn)要移植以前的數(shù)據(jù)還是比較容易, 但mysql的驅(qū)動(dòng)實(shí)在不好弄, 剛開始使用純JDBC的驅(qū)動(dòng), 結(jié)果發(fā)現(xiàn)在中文字符的處理上始終有問題, 只好
          網(wǎng)上查原因, 發(fā)現(xiàn)jdbc驅(qū)動(dòng)的版本太低, 在判斷中文字符上有問題, 升級(jí)驅(qū)動(dòng)程序, 可以插入和顯示了, 但SQL中是中文, 可是進(jìn)了數(shù)據(jù)庫就是亂碼, 試了N遍也不行, 只好改為jdbc-odbc.
          但接下來在執(zhí)行batch sql時(shí)又報(bào)錯(cuò)了, 說mysql odbc driver 的SQL語法錯(cuò), 檢查了半天, SQL也能在mysql中執(zhí)行的, 就是不能通過JAVA提交執(zhí)行. 用的是mysql 5.0.X, 支持unicode 的編碼建表. 最后只能采用一個(gè)折衷的辦法,自己寫一個(gè)批量執(zhí)行SQL的類,采用“;”分隔多個(gè)SQL,在調(diào)用時(shí)仍然一行一行的執(zhí)行,郁悶。

          最終的字符集解決辦法:
          頁面上要設(shè)置字符集的輸出格式,如GBK或GB2312,另外,如果使用統(tǒng)一的包含文件定義輸出字符集,還是不行,必須在每個(gè)頁面中單獨(dú)定義,也可能是我的INCLUDE方式不對(duì);
          數(shù)據(jù)庫連接字符串中也要設(shè)置編碼;
          在傳遞數(shù)據(jù)到DB的SQL還要對(duì)中文進(jìn)行編碼;
          String key = new String(request.getParameter("txtKey").getBytes("ISO8859_1"));
          最后還有一個(gè)問題是,如果TOMCAT編譯JSP文件生成的JAVA文件有亂碼,那么在訪問的時(shí)候頁面上總是要報(bào)錯(cuò),什么"delete tokens"之類的,此時(shí)要?jiǎng)h除掉tomcat\work目錄下的中間編譯代碼才行;


          控件及常用庫
          WEB控件, 網(wǎng)上有一堆各種各樣的lib和控件, 但這些東西太浪費(fèi)時(shí)間, 光是上網(wǎng)找就比較花時(shí)間了, 下回來試用也有各種各樣的問題,
          每個(gè)控件有自己的特色, 而且每個(gè)總是滿足了這個(gè),滿足不了那個(gè)需求, 要都滿足, 還是要收費(fèi)的才行, 畢竟天下沒有多少免費(fèi)的午餐;
          主要有幾個(gè):
           1。數(shù)據(jù)顯示表格控件,應(yīng)該能支持排序,有緩存機(jī)制,能分頁,能設(shè)置格式,支持ResultSet或ArrayList之類的,還要有導(dǎo)出excel等功能;最好要能簡(jiǎn)單使用。
           2。圖表控件,最有名的當(dāng)然是cewolf/jfreechart,只是要使用它自己定義的DatasetProducer,不能直接使用ResultSet,也是個(gè)麻煩事,不過的確是很不錯(cuò)的控件了。


          小結(jié)
          1。經(jīng)過這次移植,發(fā)現(xiàn)JAVA還是有許多很牛的地方,采用hashmap來緩存數(shù)據(jù),效率的確很不錯(cuò),只是用得太多,缺乏管理機(jī)制,有點(diǎn)混亂了,下一階段再重構(gòu)一下,形成一個(gè)管理框架最好;
          2。eclipse開發(fā)的確很不錯(cuò),與vs ide差別是比較大,只是使用習(xí)慣了之后發(fā)現(xiàn)其功能強(qiáng)大,而且可以找些plugin來擴(kuò)展功能,估計(jì)我只是看到了點(diǎn)皮毛而已。
          3。在JAVA下開發(fā),使用Javascript太多,還沒找到更好解決辦法,水平有限;
          4。與另一個(gè)人一起開發(fā),大家的編程風(fēng)格和代碼不夠規(guī)范,使用了一些重復(fù)的類和方法,這在后期維護(hù)是個(gè)工作,時(shí)間太緊,項(xiàng)目總是這樣,就沒得多少提高了;

          個(gè)人水平實(shí)在有限,上面只是一面之詞,項(xiàng)目月底才結(jié)束,有什么變更再補(bǔ)充。

          posted on 2005-12-17 16:02 Java,研究之路 閱讀(1491) 評(píng)論(3)  編輯  收藏
          Comments
          • # re: Java項(xiàng)目開發(fā)筆記
            clawhammer
            Posted @ 2005-12-18 21:36
            不好意思!覺得你水平確實(shí)是有限的很!自己不會(huì)用就怪jbuilder太爛,jb2005以后就沒有中文問題了,出了問題是你自己的事!雖然eclipse現(xiàn)在是很火,但作為一個(gè)好用的ide還是跟jb有很大差距,尤其是在j2ee開發(fā)上面。java上面,你是很需要提高。  回復(fù)  更多評(píng)論   
          • # re: Java項(xiàng)目開發(fā)筆記
            Java,研究之路
            Posted @ 2005-12-18 23:09
            謝謝指點(diǎn).  回復(fù)  更多評(píng)論   
          • # re: Java項(xiàng)目開發(fā)筆記
            clawhammer
            Posted @ 2005-12-19 10:16
            對(duì)不起上次說的有點(diǎn)過火了!  回復(fù)  更多評(píng)論   

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
           
          主站蜘蛛池模板: 大洼县| 哈巴河县| 屏山县| 文昌市| 玉屏| 黄大仙区| 勐海县| 调兵山市| 双柏县| 霸州市| 延吉市| 类乌齐县| 洪湖市| 新源县| 台南县| 高尔夫| 秦皇岛市| 怀远县| 阿尔山市| 通山县| 湘乡市| 恩施市| 伊金霍洛旗| 金门县| 如东县| 嘉义市| 布拖县| 昌邑市| 德钦县| 徐州市| 汉中市| 颍上县| 探索| 昌乐县| 习水县| 乌鲁木齐县| 绥宁县| 昌都县| 青龙| 苗栗县| 石柱|