我使用Struts 2上传文件,然后内容进入数据库.在数据库中,我存储文件内容,内容类型和文件名,因为它在客户端机器上(无论客户在选择要上载的文件时在"浏览"中看到什么 - 例如'myFIle.txt').但是,问题是,当我将文件存储到数据库时,它发生在服务器上,那时我只看到文件名,因为它是在上传到TEMP DIRECTORY ON SERVER之后.(如373_393jfu_39.tmp)
我们如何访问实际在客户端上的文件的名称?我知道出于安全原因,struts会以某种方式隐藏上传过程......但是有没有办法在其间进行攻击?
我在数据库中有一个看起来像这样的字段
abcd.\nefgh
Run Code Online (Sandbox Code Playgroud)
在Java方面,我把它变成一个变量(消息),需要将该变量分成两部分:第一部分和第二部分.
像这样的东西:
message="abcd.\nefgh" ;//This is not what happens ???
first = //Anything before '\n'
second = //Anything after '\n'
Run Code Online (Sandbox Code Playgroud)
我尝试了以下内容
if(message.indexOf('\n')>-1){
first = message.substring(0, message.indexOf('\n'));
second = message.substring(message.indexOf('\n')) ;
}
Run Code Online (Sandbox Code Playgroud)
但是,我的代码永远不会进入if语句的主体.我检查了调试器,它显示我的消息变量确实是
abcd.\\nefgh
Run Code Online (Sandbox Code Playgroud)
所以,我尝试使用String.split方法,
String rabit = "Abcd\\nEfgh" ;
System.out.println("Results \n "+ rabit.split("\n")) ; //1
//and alternative
System.out.println("Results \n "+ rabit.split("\\n")) ; //2
Run Code Online (Sandbox Code Playgroud)
但是,这是问题所在.在1和2输出中,我得到一个只有一个元素的数组. - 完整的消息.找不到模式.
那么,任何人都可以提供帮助 - 这里的问题是什么?我的变量消息来自数据库的事实是\n?还有其他建议吗?我该如何解决这个问题?
我们正在使用Weblogic 10,因此最大Java允许Java 1.5我使用EJB3继承了代码所以,我将不得不在Java 1.5限制的范围内处理它.我认为,原始设计师考虑使用Hibernate来实现数据访问,并且在某些时候我们将迁移到JBOSS,所以希望将Hibernate作为一个选择在项目中有一个版本 - 版本3.2.1.ga. 同样是hibernate-entitymanager.jar的版本
我可以使用Hibernate的最新版本是什么?我知道它有一些变化.
我的 sqlserver 表有一列设计为 BIT 数据类型。它有值 1 和 0
然后在我的 Java 代码中,我做
result = new ArrayList
result.add( (Boolean)(rs.getBoolean("columnName")));
Run Code Online (Sandbox Code Playgroud)
然后当我从列表中读取值时 - 它显示为Long. 根据我发现的所有内容,它表示BIT数据类型应该映射到boolean.
为什么会这样Long?
可以做些什么来解决这个问题?
我的应用程序将消息写入JMS队列.我检查了调试器是否正确写入了所有内容.
在服务器控制台上,在JMS Monitoring中,我可以看到Message Current数量的增加(来自我的消息).
但是,有一个组件应该从队列中读取消息并在服务器计算机上写入文件,而这种情况并没有发生.我还不熟悉JMS.
我该怎么做才能解决这个问题?在我知道不是第三方,而是使用我们自己的应用程序之前,我应该在配置中寻找什么?