第一、文件路径
做Java Web开发,很可能需要在服务启动的时候读取配置文件,这个配置文件的路径究竟是什么,却很难说的清楚。这里只是对方法做一点总结。
比如,在Tomcat上部署的某个网络应用app,那么这个应用的目录就是%Tomcat_Home%/webapps/app。
通常来说,app内使用的配置文件都放在了%Tomcat_Home%/webapps/app/WEB-INF/classes这个目录下面,假设,这个目录下就有一个config.xml。
那么相应的,可以为config.xml在代码中定义一个常量
final static String CONFIG_PATH="/config.xml";
在需要读取config.xml的时候,推荐使用方法:
this.getClass().getResourceAsStream(CONFIG_FILE);
这样,就可以读到config.xml文件了。
但还有另外的一种情况,就是要写配置文件。写文件的话,getResourceAsStream返回的是InputStream,所以这个时候就要通过其他的方法来解决。
我采用的方法是:
OutputStreamWriter ow = new OutputStreamWriter(new FileOutputStream(
new File(this.getClass().getResource(CONFIG_FILE).toURI())),"UTF-8");
getResource方法返回的是一个URL对象,URL对象有方法getPath可以获取文件的路径,起初我就是用了这个方法来读文件,但是失败了。因为getPath返回的路径字符串是被转义过的。
--------------------------------我是分割线--------------------------------
第二、中文编码
想要避免中文乱码,就要保证各个环节采用一致的编码。如果XML和中文搀和到了一起,就采用UTF-8来编码吧。
在JSP里面,要记得设置pageEncoding
在Tomcat的server.xml中,要记得为Connector配置URIEncoding属性
在Servlet中,如果想通过response对象来写的话,切记切记,一定是要在response.getWriter()或者response.getOutputStream()之前进行编码的设置:response.setCharacterEncoding("utf-8").
另外,在写文件的时候,尤其是写XML,个人的经验是尽量不要用FileWriter,最好是使用OutputStreamWriter。
类别:开发手札 查看评论