資源描述:
《J2EE企業(yè)級(jí)軟件開發(fā)之:Web應(yīng)用開發(fā)常見問題.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、JavaEE企業(yè)級(jí)軟件開發(fā)Web應(yīng)用開發(fā)常見問題2014洛陽師范學(xué)院呂延慶本節(jié)內(nèi)容提綱中文問題文件上傳文件下載JFreeChart圖表開發(fā)分頁顯示國際化部署中文問題產(chǎn)生亂碼問題的根本原因:編碼方案不同產(chǎn)生亂碼的各種情況:從JSP頁面的表單提交數(shù)據(jù)?Java程序(如Servlet)從Java程序(如Servlet)?跳轉(zhuǎn)到JSP頁面顯示從數(shù)據(jù)庫?Java程序(如DAO層代碼)讀取從Java程序(如DAO層代碼)?數(shù)據(jù)庫存儲(chǔ)從其他類型文件?Java程序讀取從Java程序?寫入其他類型文件常見字符集ASCII7位編碼,含128個(gè)常用字符GB2312含6763個(gè)漢字(缺少生僻字)GBK含210
2、03個(gè)漢字,兼容GB2312GB18030除70000多個(gè)漢字外,還有藏、蒙、彝文等,兼容GB2312和GBKUnicode有三套編碼方式,即UTF-8,UTF-16,UTF-32UTF-8網(wǎng)絡(luò)傳輸通用,英文8位,中文24位ISO8859-1又稱為Latin-1,8位編碼,西歐字符,兼容ASCIIBIG-5稱為大五碼,繁體字,13060個(gè),臺(tái)港澳通用解決亂碼問題的方式1)檢查JSP頁面或HTML頁面a)page指令的contentType屬性和pageEncoding屬性b)META標(biāo)簽的charset屬性2)在Java程序中a)request.setCharacterEncoding
3、(“字符編碼名”);b)newString(name.getBytes(“ISO8859-1”),”UTF-8”);3)數(shù)據(jù)庫連接中(以MySQL為例)a)安裝時(shí)選定默認(rèn)字符集b)JDBCurl“jdbc:mysql://localhost:3306/mytest?characterEncoding=utf-8”文件上傳jspSmartUpload組件缺點(diǎn):原有組件未能很好處理中文文件名優(yōu)點(diǎn):使用較簡單ApacheFileUpload組件缺點(diǎn):使用稍復(fù)雜優(yōu)點(diǎn):適用性較好,無中文亂碼問題文件下載jspSmartUpload組件的實(shí)現(xiàn)圖表開發(fā)JFreeChart圖表優(yōu)點(diǎn):純Java實(shí)現(xiàn)缺點(diǎn)
4、:輸出是圖片,交互能力有限其他Web圖表實(shí)現(xiàn)JavaScript組件(如Flot)Flash組件Html5組件SVG組件JFreeChart示例分頁顯示分頁顯示的應(yīng)用場合JSP上用于顯示記錄數(shù)量太多,分頁能避免服務(wù)器負(fù)擔(dān)過重。分頁顯示的兩種思路一次性全部從數(shù)據(jù)庫獲取全部記錄,用Java程序?qū)崿F(xiàn)分頁減少數(shù)據(jù)庫操作,但占用Java服務(wù)器(如Tomcat)的資源用SQL語句實(shí)現(xiàn)分頁占用Java服務(wù)器(如Tomcat)資源少,但頻繁操作數(shù)據(jù)庫分頁顯示的思路分頁顯示時(shí),需得到以下參數(shù):總記錄數(shù):totalRecords每頁顯示記錄數(shù):recordsPerPage總頁數(shù):pageSize=tota
5、lRecords/recordsPerPage+1當(dāng)前頁碼(從1開始計(jì)數(shù)):currentPage這里需要確定的是totalRecords(一般由數(shù)據(jù)庫查詢獲得,selectcount(*)from…)、recordsPerPage(一般在用戶選項(xiàng)中指定)、currentPage(用戶頁面輸入決定)分頁顯示用SQL實(shí)現(xiàn)以MySQL為例:select*frommytableLIMITM,N表示從滿足條件的全部記錄中,從第M條記錄開始檢索共N條記錄。N=recordsPerPage“上一頁”的M=(currentPage-1)*recordsPerPage+1“下一頁”的M=(curren
6、tPage+1)*recordsPerPage+1國際化國際化,Internationalization(i18n)文本顯示不是硬編碼在程序中,而應(yīng)該提供獨(dú)立的資源文件與地域有關(guān)的日期、貨幣、數(shù)字化表示能根據(jù)系統(tǒng)自動(dòng)變化Java內(nèi)置了國際化支持java.util.ResourceBundlejava.util.Localejava.text.MessageFormat國際化資源文件命名的方式:基本名_語言名_國家名.properties例如:ApplicationResources_zh_CN.propertiesMyResource_en_US.propertiesMyResourc
7、e_fr_FR.properties資源文件轉(zhuǎn)換方法:JDK提供的native2ascii.exe國際化:native2ascii使用方式國際化示例publicclassTestI18N{publicstaticvoidmain(String[]args){LocalecurrentLocale=newLocale("zh","CN");//設(shè)定"語言"和"國家"ResourceBundlemessages=ResourceBundle.get