给定文件夹结构,在Jsp中列出文件夹和文件

问题描述

给出一个文件夹结构,使用Jsp和JavaServlets列出文件夹以及该文件夹中存在的文件。

提供的文件夹结构为:

  • C:\ Users \ abc \ Desktop \ def \ def1 \ text1.txt
  • C:\ Users \ abc \ Desktop \ def \ def2 \ text2.txt

应用程序的流程应为:-

第一个index.jsp将显示在具有超链接列表文件和文件夹的屏幕上。单击链接后,它应该转发到Servlet,在该Servlet中将获取详细信息,然后Servlet依次转发到view.jsp。

view.jsp将显示以下带有超链接的文件夹列表:

  • def1
  • def2

在单击def1时,应显示view.jsp

  • def1。\ text1.txt
  • def2

在单击def2时,应显示view.jsp

  • def1
  • def2。\ text2.txt

我可以在view.jsp中显示文件夹列表,但是在单击文件夹超链接后无法显示其中的文本文件。

我想不出一种逻辑来获取文件夹的详细信息以及其中的文件,并在单击文件夹超链接时同时显示它们。 因此,我决定继续前进并在jsp中编写逻辑,然后通过Servlet调度view.jsp。我知道在jsp内编写任何业务逻辑的坏习惯。 但是我什至用jsp代码挣扎,只能显示文件夹列表。

我尝试了以下代码:

我的view.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1" import="java.io.File,java.io.IOException,java.util.*,java.io.*" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
Contents <br>
<%!
public boolean displayFileContents(String path) {
    try {
        File currentDirectory = new File("C:\\Users\\abc\\Desktop\\def\\"+path);
        System.out.println("Current Directory is :- " + currentDirectory.getCanonicalPath());

        File[] files = currentDirectory.listFiles();
        for (File file : files) {
            if (file.isFile()) {
                String filePath=file.getCanonicalPath();
                String filePathList[]=filePath.split(path);
                String filePathnew="";
                for(int i=0;i<filePathList.length;i++)
                {
                    filePathnew=filePathList[i];

                }
            }
            
        }
        //display file contents in list
        
    } catch (IOException e) {
        e.printStackTrace();
    }
    return true;
}

%>


<% 
 

try {
    File currentDirectory = new File("C:\\Users\\abc\\Desktop\\def\\");
   
    File[] files = currentDirectory.listFiles();
    for (File file : files) {
        if (file.isDirectory()) {
            String directoryPath=file.getCanonicalPath();
            String directoryPathList[]=directoryPath.split("def");
            String b="";
            for(int i=0;i<directoryPathList.length;i++)
            {
                directoryPath=directoryPathList[i];
                System.out.println(directoryPath);

            }
            %>
            <li>
            <a href="./<%=displayFileContents(file.getName())%>"><%=file.getName()%></a>
            </li>
            <%
        }
    }
} catch (IOException e) {
    e.printStackTrace();
}
%>

</body>
</html>

我的index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Archetype Created Web Application</title>
         
        <link rel="stylesheet" href="resource/css/main.css" />
        <script type="text/javascript" src="resource/js/jquery-3.2.1.min.js"></script>
        <script type="text/javascript" src="resource/js/fileupload.js"></script>
    </head>
    <body>
        <div class="panel">
            <h1>List Files and Folders</h1>
        </div>
         
        <!-- List Files and Folders -->
        <div class="panel">
            <a id="listFilesFolders" class="hyperLink" href="<%=request.getContextPath()%>/FileXplorerServlet">List Files and Folders</a>
        </div>
    </body>
</html>

我的Servlet:

@WebServlet(description = "List Files and Folders",urlPatterns = { "/FileXplorerServlet" })
public class FileXplorerServlet extends HttpServlet {
    
   
    protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {
        
        RequestDispatcher dispatcher = request.getRequestDispatcher("/view.jsp");
        dispatcher.forward(request,response);

    }

    protected void doPost(HttpServletRequest request,IOException {
        // TODO Auto-generated method stub
        doGet(request,response);
    }

}

任何帮助将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...