欢迎来到天天文库
浏览记录
ID:56527579
大小:230.00 KB
页数:18页
时间:2020-06-27
《J2EE企业级软件开发之:Web应用开发常见问题.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、JavaEE企业级软件开发Web应用开发常见问题2014洛阳师范学院吕延庆本节内容提纲中文问题文件上传文件下载JFreeChart图表开发分页显示国际化部署中文问题产生乱码问题的根本原因:编码方案不同产生乱码的各种情况:从JSP页面的表单提交数据Java程序(如Servlet)从Java程序(如Servlet)跳转到JSP页面显示从数据库Java程序(如DAO层代码)读取从Java程序(如DAO层代码)数据库存储从其他类型文件Java程序读取从Java程序写入其他类型文件常见字符集ASCII7位编码,含128个常用字符GB2312含6763个汉字(缺少生僻字)GBK含210
2、03个汉字,兼容GB2312GB18030除70000多个汉字外,还有藏、蒙、彝文等,兼容GB2312和GBKUnicode有三套编码方式,即UTF-8,UTF-16,UTF-32UTF-8网络传输通用,英文8位,中文24位ISO8859-1又称为Latin-1,8位编码,西欧字符,兼容ASCIIBIG-5称为大五码,繁体字,13060个,台港澳通用解决乱码问题的方式1)检查JSP页面或HTML页面a)page指令的contentType属性和pageEncoding属性b)META标签的charset属性2)在Java程序中a)request.setCharacterEncoding
3、(“字符编码名”);b)newString(name.getBytes(“ISO8859-1”),”UTF-8”);3)数据库连接中(以MySQL为例)a)安装时选定默认字符集b)JDBCurl“jdbc:mysql://localhost:3306/mytest?characterEncoding=utf-8”文件上传jspSmartUpload组件缺点:原有组件未能很好处理中文文件名优点:使用较简单ApacheFileUpload组件缺点:使用稍复杂优点:适用性较好,无中文乱码问题文件下载jspSmartUpload组件的实现图表开发JFreeChart图表优点:纯Java实现缺点
4、:输出是图片,交互能力有限其他Web图表实现JavaScript组件(如Flot)Flash组件Html5组件SVG组件JFreeChart示例分页显示分页显示的应用场合JSP上用于显示记录数量太多,分页能避免服务器负担过重。分页显示的两种思路一次性全部从数据库获取全部记录,用Java程序实现分页减少数据库操作,但占用Java服务器(如Tomcat)的资源用SQL语句实现分页占用Java服务器(如Tomcat)资源少,但频繁操作数据库分页显示的思路分页显示时,需得到以下参数:总记录数:totalRecords每页显示记录数:recordsPerPage总页数:pageSize=tota
5、lRecords/recordsPerPage+1当前页码(从1开始计数):currentPage这里需要确定的是totalRecords(一般由数据库查询获得,selectcount(*)from…)、recordsPerPage(一般在用户选项中指定)、currentPage(用户页面输入决定)分页显示用SQL实现以MySQL为例:select*frommytableLIMITM,N表示从满足条件的全部记录中,从第M条记录开始检索共N条记录。N=recordsPerPage“上一页”的M=(currentPage-1)*recordsPerPage+1“下一页”的M=(curren
6、tPage+1)*recordsPerPage+1国际化国际化,Internationalization(i18n)文本显示不是硬编码在程序中,而应该提供独立的资源文件与地域有关的日期、货币、数字化表示能根据系统自动变化Java内置了国际化支持java.util.ResourceBundlejava.util.Localejava.text.MessageFormat国际化资源文件命名的方式:基本名_语言名_国家名.properties例如:ApplicationResources_zh_CN.propertiesMyResource_en_US.propertiesMyResourc
7、e_fr_FR.properties资源文件转换方法:JDK提供的native2ascii.exe国际化:native2ascii使用方式国际化示例publicclassTestI18N{publicstaticvoidmain(String[]args){LocalecurrentLocale=newLocale("zh","CN");//设定"语言"和"国家"ResourceBundlemessages=ResourceBundle.get
此文档下载收益归作者所有