我想重写一个文件的内容.
到目前为止我所想到的是:
这是最好的方法吗?或者是否有更直接的方式,即不必删除和创建文件,只需更改内容?
我认为ServletContext可能会提供一种方法.ServletContext的getAttribute()方法是否提供任何帮助,即是否有帮助的属性名称(可能是"host","port").
原因是我希望我的应用程序在部署的任何地方运行,并且有一点我必须允许用户单击指向文件服务器上某个位置的链接.因此我需要通过主机和端口引用,不能使用内部引用.
我目前相信:
HashMapArrayList我一般都对吗?是否存在不正确的情况?
我有一个String提供文件的绝对路径(包括文件名).我想得到文件的名称.最简单的方法是什么?
它需要尽可能通用,因为我事先无法知道URL将是什么.我不能简单地创建一个URL对象并使用getFile()- 所有这些都是理想的,如果可能的话 - 因为它不一定是http://前缀,它可以是c:/或类似的东西.
我想在一张有背景图像的桌子周围放一个边框.边框工作正常,但当我这样做(它是一个8px边框)时,背景图像被边框切断.我能够将背景图像向右移动8px并向下移动8px吗?
当我反复遍历ArrayList时,我得到一个IndexOutOfBoundsException.我尝试进行前向迭代,没有问题.我希望并知道列表中有五个元素.代码如下:
Collection rtns = absRtnMap.values();
List list = new ArrayList(rtns);
Collections.sort(list);
for(int j=list.size();j>0;j=j-1){
System.out.println(list.get(j));
}
Run Code Online (Sandbox Code Playgroud)
前向迭代 - 工作正常,但对我没用:
for(int j=0;j<list.size();j++){
System.out.println(list.isEmpty());
System.out.println(list.get(j));
} // this worked fine
Run Code Online (Sandbox Code Playgroud)
错误:
Exception in thread "Timer-0" java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
at java.util.ArrayList.RangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at model.Return.getReturnMap(Return.java:61)
at controller.Poller$1.run(Poller.java:29)
at java.util.TimerThread.mainLoop(Unknown Source)
at java.util.TimerThread.run(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
此外,如果有人知道反向迭代更好的习语,我很乐意尝试这一点.
我试图测试是否未定义Javascript变量.
你会看到我并不期望predQuery [preId]的值是'未定义的'如果我没有先得到一个警告说"它难以置信".但我经常这样做,所以我猜我的说法
predQuery[preId]=='undefined')
Run Code Online (Sandbox Code Playgroud)
未正确匹配未定义的元素.
if((predQuery.length < preId) || (predQuery[preId]=="") || (predQuery[preId]=='undefined')){
alert("its unbelievable");
alert(predQuery[preId]);
queryPreds[variables] = preId;
queryObjs[variables] = objId;
predQuery[preId] = variables;
}
else {
alert(predQuery[preId]);
var predIndex = predQuery[preId];
queryPreds[predIndex] = preId;
queryObjs[predIndex] = objId;
}
Run Code Online (Sandbox Code Playgroud)
如果需要,我可以添加更多代码.
我收到以下错误:
INFO:validateJarFile(C:\ dev\server\tomcat6\webapps Sempedia\WEB-INF\lib\servlet-api.jar) - jar未加载.参见Servlet Spec 2.3,sectoin 9.7.2.违规类:javax/servlet/Servlet.class
那里的现有资源说它是由于与servlet.jar的冲突或在我的情况下命名为servlet-api.jar文件.我已经从/ webapps文件夹中删除了所有其他项目,我已经获取了tomcat6/lib目录中的servlet-api.jar文件,并将其添加到项目构建路径中,所以我看不到它是怎么回事仍然是一场冲突.
当我尝试运行应用程序时,我得到以下堆栈跟踪.
org.apache.jasper.JasperException:无法为JSP编译类:
生成的java文件中的第22行发生错误方法getJspApplicationContext(ServletContext)未定义类型JspFactory
堆栈跟踪:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler. java:439)org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)org.apache.jasper.compiler.Compiler. compile(Compiler.java:299)org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)org.apache.jasper.servlet. JspServlet.serviceJspFile(JspServlet.java:342)org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)javax.servlet.http.HttpServlet.service(httpServlet.java:717)
有很多问题要问这个或类似的问题.
它们都给出了必须执行的命令,我不明白的是我在哪里写这个命令.我想永久增加我的tomcat应用程序的堆空间.
我看了这个页面 http://javahowto.blogspot.com/2006/06/6-common-errors-in-setting-java-heap.html它在Tomcat部分下面说
停止Tomcat服务器,设置环境变量CATALINA_OPTS,然后重新启动Tomcat.查看文件tomcat-install/bin/catalina.sh或catalina.bat以了解如何使用此变量.例如,
设置CATALINA_OPTS = -Xms512m -Xmx512m(Windows,没有""值周围)
导出CATALINA_OPTS =" - Xms512m -Xmx512m"(ksh/bash,""值围绕"
setenv CATALINA_OPTS"-Xms512m -Xmx512m"(tcsh/csh, ""围绕价值)
所以我换了线
设置CATALINA_OPTS =
同
设置CATALINA_OPTS = -Xms512m -Xmx512m
但我仍然得到错误.
javax.servlet.ServletException:Servlet执行引发异常
根本原因
java.lang.OutOfMemoryError:Java堆空间java.lang.reflect.Array.multiNewArray(本机方法)java.lang.reflect.Array.newInstance(Array.java:90)nom.tam.util.ArrayFuncs.newInstance(ArrayFuncs. java:1028)nom.tam.fits.ImageData.read(ImageData.java:259)nom.tam.fits.Fits.readHDU(Fits.java:573)controller.UploadServlet.retreiveFITSFileFields(UploadServlet.java:206)controller. ScanServerFiles.doPost(ScanServerFiles.java:39)javax.servlet.http.HttpServlet.service(HttpServlet.java:637)javax.servlet.http.HttpServlet.service(httpServlet.java:717)
我在一个对象中有两个双数据元素.
有时它们被设置为适当的值,有时则没有.如果没有填写接收它们的值的表单字段,我想将它们设置为某个值,告诉我,在其余代码中,表单字段保留为空.
我不能将值设置为null,因为这会产生错误,是否有某些方法可以使它们"未定义".
PS.我不仅不确定这是否可能,它可能也没有意义.但如果对于这种情况有一些最佳实践,我会热衷于听到它.