Jakarta ee 使用servlet显示网页中的文件列表
我是JavaEE新手,我想在网页中显示PDF缩略图列表。这些PDF文件存储在Jakarta ee 使用servlet显示网页中的文件列表,jakarta-ee,tomcat,servlets,Jakarta Ee,Tomcat,Servlets,我是JavaEE新手,我想在网页中显示PDF缩略图列表。这些PDF文件存储在src/main/webapp/PDF中的一个文件夹中,我想阅读此文件夹以获取所有文件名。这是我的密码: @Override public void doGet(HttpServletRequest req, HttpServletResponse res) { try { res.setContentType("application/json"); res.setCharact
src/main/webapp/PDF
中的一个文件夹中,我想阅读此文件夹以获取所有文件名。这是我的密码:
@Override
public void doGet(HttpServletRequest req, HttpServletResponse res) {
try {
res.setContentType("application/json");
res.setCharacterEncoding("UTF-8");
PrintWriter out = res.getWriter();
File pdfFolder = new File("/pdf");
for (File pdf : pdfFolder.listFiles()) { // Line 27
out.println(pdf.getName());
}
} catch (IOException e) {
log.log(Level.SEVERE, e.getMessage());
}
}
当我运行此代码时,我得到一个NullPointerException
:
java.lang.NullPointerException
com.multi.services.ListFiles.doGet(ListFiles.java:27)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
以下是我的结构:
我想要的是一个web服务,它读取PDF文件夹并返回包含PDF文件名的JSON,我将使用Ajax在JavaScript中调用此服务
有人能帮我让我的脚本运行良好吗?还是有更好的解决方案
谢谢:)来自
File.listFiles()
如果此抽象路径名不表示目录,或者发生I/O错误,则返回null
因此,您的路径不正确(因为servlet容器的当前目录未定义)。这里有以下几种可能性:
- 使用绝对路径(如果您将PDF存储在webapp之外,则这是适当的)
- 使用(这应该适合您的用例;PDF是webapp的一部分):
文件pdfFolder=
新文件(req.getSession().getServletContext().getRealPath(“/pdf”);
引用自File.listFiles()的Javadoc
如果此抽象路径名不表示目录,或者发生I/O错误,则返回null
因此,您的路径不正确(因为servlet容器的当前目录未定义)。这里有以下几种可能性:
- 使用绝对路径(如果您将PDF存储在webapp之外,则这是适当的)
- 使用(这应该适合您的用例;PDF是webapp的一部分):
文件pdfFolder=
新文件(req.getSession().getServletContext().getRealPath(“/pdf”);
贝里利姆,我试过你的建议,效果很好
为了澄清这一点,我展示了我的案例:
try {
File pdfFolder=new File(request.getSession().getServletContext().getRealPath("img/fotos"));
System.out.println("PATH---->"+pdfFolder);
for (File pdf : pdfFolder.listFiles()) {
String s = pdf.getName();
String t = s.substring(0, s.lastIndexOf("."));
if (t.equals(nombre)) {
Foto = s;
break;
}
}
}
catch (IOException e) {
e.printStackTrace();
}
贝里利姆,我试过你的建议,效果很好
为了澄清这一点,我展示了我的案例:
try {
File pdfFolder=new File(request.getSession().getServletContext().getRealPath("img/fotos"));
System.out.println("PATH---->"+pdfFolder);
for (File pdf : pdfFolder.listFiles()) {
String s = pdf.getName();
String t = s.substring(0, s.lastIndexOf("."));
if (t.equals(nombre)) {
Foto = s;
break;
}
}
}
catch (IOException e) {
e.printStackTrace();
}