如何将文件夹的详细信息发送到 servlet?

How to send the details of a folder to a servlet?

我是 Java 的初学者,有人要求我构建一个文件共享动态 Web 应用程序。应用程序的流程是这样的:login > display folders > select a folder > display files in the folder along with an upload button

现在,我已经创建了我需要的 jsp 页面,我也可以登录,select 一个文件夹,可以重定向到我可以上传的另一个 jsp 页面文件。

我面临的问题是我不知道如何将文件夹的详细信息(例如单击文件夹时的文件夹名称)获取到我的 servlet 中。

这是我主页的代码

<body>
    <jsp:include page="header.jsp"></jsp:include>
    <%
        FileSharingDAO fsObj = new FileSharingDAO();
        ArrayList<FolderPOJO> folders = fsObj.getFolder();

        final int COLUMNS = 3;
        int rows = folders.size() / COLUMNS;
        int foldercounter = 0;
    %>
        <table class="grid">
        <%
            for(int i = 0; i < rows; i++) {
        %>
            <tr>
                <%
                    for(int j = 0; j < COLUMNS; j++) {
                %>
                <td><a href="folder.jsp"><img src="img/small-folder.png"><br><%= folders.get(foldercounter).getFoldername()%><br></a></td>
                <%
                        foldercounter++;
                    }
                %>
            </tr>
        <% } %>     
        </table>
    <jsp:include page="footer.jsp"></jsp:include>
</body>

如何获取 servlet 的文件夹名称,以便我可以根据文件夹 ID 从文件夹中获取文件?

我明白了。我没有使用 <a href="folder.jsp"> 重定向到 folder.jsp,而是调用了一个 servlet,它又重定向到 jsp 页面。

这是更新后的 jsp 代码:

<body>
    <jsp:include page="header.jsp"></jsp:include>
    <%
        FileSharingDAO fsObj = new FileSharingDAO();
        ArrayList<FolderPOJO> folders = fsObj.getFolder();

        final int COLUMNS = 3;
        int rows = folders.size() / COLUMNS;
        int foldercounter = 0;
    %>
        <table class="grid">
        <%
            for(int i = 0; i < rows; i++) {
        %>
            <tr>
                <%
                    for(int j = 0; j < COLUMNS; j++) {
                %>
                <td><a href="${pageContext.request.contextPath}/HomeServlet?folderid=<%= folders.get(foldercounter).getFolderid()%>"><img src="img/small-folder.png"><br><%= folders.get(foldercounter).getFoldername()%><br></a></td>
                <%
                        foldercounter++;
                    }
                %>
            </tr>
        <% } %>     
        </table>
    <jsp:include page="footer.jsp"></jsp:include>
</body>

这是 servlet 中的 doGet() 方法:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.sendRedirect(request.getContextPath() + "/folder.jsp");

        String folderid = request.getParameter("folderid");
        System.out.println("\n\nFolder id: " + folderid); // checking if folderid is fetchable or not
}

我知道不鼓励使用 scriptlet,但目前我将使用它们完成我的 Web 应用程序,因为我必须在几天内提交它。稍后将使用 JSTL 对其进行更新,并 post 在此答案中进行更新。