读取配置文件的安全方法

新鲜鱼排 2008-06-02 01:12:06
一个JAVA项目,使用Weblogic, MyEclipse。每一个页面都分成三部分(头部显示logo已经通过JSCookMenu生成的Menu,中部用于显示主要数据信息,下部显示网站联系信息)。在下部页面上使用下面的代码来引入一个专门读取配置文件的小页面。
<jsp:include flush="true" page="build2.jsp"/>
在项目的架构里面已经有读取配置文件的方法(定义页面的BackBean和State来读取),但是由于build2.jsp是引用进来的,所以无法使用这种方法。
所以我想在build2.jsp中单独写读取的方法,下面的代码不是我想要的,因为如果用这个代码我需要buildConfig.txt文件和deploy的版本放在一个文件夹下,显然不行。

<%
File file = new File(request.getRealPath("buildConfig.txt"));
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String s1 = "";
String s2 = "";
String strContact = "";
String strLastUpdate = "";
s1 = br.readLine();
s2 = s1;
while((s1 = br.readLine()) != null) {
s2 = s2 + s1;
}
//s2 is the whole string
if(s2.indexOf(";")>-1){
strContact = s2.substring(0,s2.indexOf(";"));
strLastUpdate=s2.substring(s2.indexOf(";")+1);
}
%>
Contact: <a href="mailto:<%=strContact%>">Email list</a></br>
LastUpdate: <%=strLastUpdate%>

我的问题是:
1.如果我想在MyEclipse项目中把buildConfig.txt和build2.jsp放在一个文件夹下,那么我应该如何在build2.jsp中读取buildConfig.txt?
2.这种读取文件的方法会产生注入的危险,有没有更合理、更安全的方法?
谢谢
...全文
313 39 打赏 收藏 转发到动态 举报
写回复
用AI写文章
39 条回复
切换为时间正序
请发表友善的回复…
发表回复
jdlsfl 2008-06-05
  • 打赏
  • 举报
回复
学习了
jdlsfl 2008-06-05
  • 打赏
  • 举报
回复
[Quote=引用 37 楼 caoyinghui1986 的回复:]
来了就不错过。
[/Quote]
Shine_Panda 2008-06-05
  • 打赏
  • 举报
回复
来了就不错过。
Kit_LO 2008-06-05
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 burningice44 的回复:]
既然已经解决,那就只剩下接分了
[/Quote]
新鲜鱼排 2008-06-05
  • 打赏
  • 举报
回复
[Quote=引用 33 楼 dutguoyi 的回复:]
有没有购买BEA Workshop Studio, Eclipse Edition正版序列号的?
[/Quote]
新鲜鱼排 2008-06-04
  • 打赏
  • 举报
回复
有没有购买BEA Workshop Studio, Eclipse Edition正版序列号的?
minlucky 2008-06-04
  • 打赏
  • 举报
回复
不是吧。能发300分的帖子。不是有限制么?
xxx198547 2008-06-04
  • 打赏
  • 举报
回复
以上的人都风了
一洽客服系统 2008-06-04
  • 打赏
  • 举报
回复
看了下接分,不过还是建议楼主不要单纯文件读比较好 用properties类直接装入 剩下的JVM帮你找变量
sohoxxd 2008-06-04
  • 打赏
  • 举报
回复
纯接分来了....
realcbb 2008-06-04
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 sohoxxd 的回复:]
纯接分来了....
[/Quote]
hnjd314053754 2008-06-03
  • 打赏
  • 举报
回复
关注一下
zidasine 2008-06-03
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 antony0203 的回复:]
进来就看到楼主已经解决问题了,
那就mark下
[/Quote]
antony0203 2008-06-03
  • 打赏
  • 举报
回复
进来就看到楼主已经解决问题了,
那就mark下
新鲜鱼排 2008-06-03
  • 打赏
  • 举报
回复
问题已经解决。
配置文件如下:
文件名:EnvDependVariables_DEV.properties (这个文件是原有的,所以不需要额外添加。)
文件内容:
Email_List = dutguoyi@hotmail.com
Last_Update = 2008-06-01

代码如下:
<%
String fxprop = "fxprop";
String filenameDifEnviron = "\\EnvDependVariables_" + System.getProperty("app_env") + ".properties";
String environPathfilename = System.getProperty(fxprop) + filenameDifEnviron;

File file = new File(environPathfilename);
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String line = "";
String strContact = "";
String strLastUpdate = "";

while ((line = br.readLine()) != null) {
if (line.indexOf("Email_List") > -1) {
strContact = line.substring(line.indexOf("=") + 1);
}
if (line.indexOf("Last_Update") > -1) {
strLastUpdate = line.substring(line.indexOf("=") + 1);
}
}
%>
Contact: <a href="mailto:<%=strContact%>">System admin</a></br>
LastUpdate: <%=strLastUpdate%>



lufuko 2008-06-03
  • 打赏
  • 举报
回复
可以把配置文件放到web-inf目录下
或者另外放一个任意的目录,然后在weblogic的startWeblogic.cmd里指定:
set PROJ_HOME=D:\Projects
set CLASSPATH=%PROJ_HOME%\

tthder 2008-06-03
  • 打赏
  • 举报
回复
分一份羹吃
哈哈
新鲜鱼排 2008-06-03
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 yirentianran 的回复:]
properties
用这个啊
为什么非要用文本呢?
为什么用了properties之后还是用读文本的方法
不用API提供的方法
[/Quote]

谢谢,但是我只读properties。文本文件是我最初的想法。

胡矣 2008-06-03
  • 打赏
  • 举报
回复
properties
用这个啊
为什么非要用文本呢?
为什么用了properties之后还是用读文本的方法
不用API提供的方法
新鲜鱼排 2008-06-03
  • 打赏
  • 举报
回复
第一个完成的人可以得到哦。
其实在公司捐款更合适,员工捐多少公司就捐多少。
加载更多回复(19)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧