我正在使用tomcat 6,eclipse ee,win xp,我正在开发一个JSP项目。 在这个proect中,有一个名为“DummyClass”的操作类,它的任务是读取文本文件(input.txt)并根据它创建对象。然后我在JSP文件中对它进行了查询。
有一个Web-Content文件夹和jsp文件(NewPage.jsp)及其内容如下:
<jsp:useBean id="user" class="actual.Searcheduser" scope="session"/>
<jsp:useBean id="mydummy" class="dummyCreator.DummyClass" scope="session"/>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>TSBS Telefon Rehberi Sonuç Sayfası</title>
</head>
<body>
<%
System.out.println("kagdfcg");
mydummy.readFile(input.txt); //Line 1
mydummy.fileCreator(); //Line 2
%>
</body>
</html>
第1行中的代码引发错误,它无法在项目中找到“input.txt”。我在文件夹的每个地方都复制它,但它看不到“input.txt”。为了找到正确的位置,我创建了第2行,它创建了一个样本“sample.txt”但没有创建文件。
我怎样才能克服这一点?
答案 0 :(得分:2)
首先,这不是与jsp / servlet一起玩的方式..使用Servlet
来执行逻辑。使用jsp来呈现视图。
为了阅读文本文件...你需要把它写到可访问的地方,在dir结构上添加更多信息在哪里?
答案 1 :(得分:1)
尝试
mydummy.readFile("input.txt"); //Line 1
mydummy.fileCreator(); //Line 2
字符串在开头和结尾标有引号
答案 2 :(得分:1)
来自文件
上的java教程相对还是绝对?
路径是相对路径还是绝对路径。绝对路径始终包含查找文件所需的根元素和完整目录列表。例如,/ home / sally / statusReport是绝对路径。查找文件所需的所有信息都包含在路径字符串中。
需要将相对路径与另一个路径组合才能访问文件。例如,joe / foo是一个相对路径。如果没有更多信息,程序将无法在文件系统中可靠地找到joe / foo目录。 阅读整个教程: http://download.oracle.com/javase/tutorial/essential/io/path.html
在您的示例中,您使用的是相对文件,这可能是您无法找到它的原因。 猜测你在你的计算机上安装了tomcat并且没有使用某个远程实例,它很容易在c:\ tmp或类似的地方存储文件,很容易找到易于清理。
答案 3 :(得分:0)
文件读取/业务逻辑是前端控制器(比如servlet)的工作。永远不要在JSP中使用scriplets
您在JSP上附加的任何bean应该用于表示逻辑
答案 4 :(得分:-1)
在servlet而不是jsp文件中编写所有业务逻辑更为可行。
这些代码可以帮助您
<%@page import="java.io.*"%>
java.net.URL url =config.getServletContext().getResource("file.txt");
BufferedReader buffreader =new BufferedReader(new InputStreamReader(url.openStream()));
OR
<%
BufferedReader input = new BufferedReader(new FileReader("file.txt"));
String line = "";
while ((line = input.readLine()) != null) {
out.println(line);
}
output.flush();
input.close();
%>