浏览 2942 次
锁定老帖子 主题:第一个项目之后的小总结
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-08-15
系统说明: 开发平台: 日本语Windows XP IDE: Eclipse 3.2 服务器: Redhat Linux + Tomcat 5.5 + Apache2.0 JDK: JDK1.4.3 (在JDK1.4.3的环境下需要下载安装Tomcat5.5的Compatability Package,安装方法是解压缩复制到tomcat安装目录下) Framework: Struts1.3.8 数据库: Oracle 关于文字乱码 由于做的是对日项目,必然会涉及到文字编码转换的问题,经过查找网页和自己的领悟,得出了以下总结。 <%@ page language="java" contentType="text/html; 1#charset=windows-31j" pageEncoding="UTF-8" %> 在这句话里面有2个编码: 第一个charset=windows-31j的作用是告诉JVM用windows-31j的编码格式输出数据给JSP页面,如果此项未定义,则服务器是 Tomcat的情况下,默认为ISO-8859-1;如果服务器是Apache+Tomcat则以 APACHE_ROOT/conf/httpd.conf中的charset为准,默认为ISO-8859-1。 第二个pageEncoding="UTF-8"的作用是告诉JVM用UTF-8解释这个JSP,未定义的情况下参照charset。 2#charset=Shift_JIS"> 这句话里面的charset作用是告诉浏览器用Shift_JIS来显示页面,此项不能设置为Windows-31j,因为IE的编码中没有 Windows-31j这一项,IE如果发现请求编码为Shift_JIS则自动会调用Windows-31j来进行解析,但是如果是IE不能辨识的编码 类型,IE会根据自己的推理自动选择一个与1#charset类型最接近的编码进行解析,很有可能出现乱码。 接下来是关于日本语版windows和日本语版Linux的JVM的文字编码问题。 Windows平台的JVM默认文字编码是MS932,但是Linux是UTF-8。所以被Windows JVM以java IO写出去的文件,如果在Linux JVM上同样用Java IO读取,就会出现乱码,原因就在这里。所以如果开发平台和服务器平台不一样的话,建议写文件和读文件的时候都指定一个统一的文字编码,这个文字编码可以 写在ApplicationResource.properties里面,这样能保证两边的读写操作文字编码一致。 java 代码
关于线程 这次的开发需要做个功能,在每次调用数据库fasade的时候,要控制超时,就是说如果数据库那边在20秒之后还没有返回,那么就要让自己的程序返回数据库超时的Message。 对于这个功能,我想了一下,只想到了用线程来实现,做法如下: 先为那个需要控制的fasade方法造一个类继承Thread,然后在run()里面执行方法,之后把这个线程join()到Action中。 java 代码
java 代码
MAX_WAIT_TIME就是最大等待时间20秒,如果join()到达最长等待时间,但 是SearchThread里面的success_flag还没有被设置成true的时候,就是说明已经超时,检索没有完成,这个时候会抛出自定义的 DataBaseTimeoutException,中断线程。 不知道这样的做法是否安全,是否会造成线程的混乱,希望高手能指教。不过负荷测试做到现在貌似没有在线程方面发现什么问题,嘿嘿。 接下来是开发中遇到的一些小问题 有一次在进行了BUG修正后,出现了JSP页面提交的日本语乱码,而且是在第一个文字Filter的时候就已经乱码了,返回页面的自然也成了乱码,查了好久,终于在完全编译之后恢复正常了,至今不解是什么原因,难不成是Eclipse的BUG? 还有一个现象就是如果页面上的某一个图像的src=""那么就会发生再次向Server提交请求的现象,之后把这个图像的src改成某个存在的路径下的不存在的图像名字,就不会发生两次提交的现象了,这个难道是IE的机制?不解中…… 还有一点需要注意的是Struts的Action是单例的,所以写在Action里的属性一定要考虑到线程安全的问题,特别是那些控制分页的变量,我就出 现这种错误,被老大发现了之后,把所有的Action里的属性变量全部改成方法里面的局部变量了。 ^^^>_<^^^ 大致上就这么多了,这是在JavaEye上的第一篇文章,希望大家多加指点,谢谢…… 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |