【问题标题】:How to send the details of a folder to a servlet?如何将文件夹的详细信息发送到 servlet?
【发布时间】:2019-08-21 05:16:05
【问题描述】:

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

现在,我已经创建了我需要的 jsp 页面,我也可以登录,选择一个重定向到另一个 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 从文件夹中获取文件?

【问题讨论】:

    标签: java mysql jsp servlets


    【解决方案1】:

    我想通了。我没有使用&lt;a href="folder.jsp"&gt; 重定向到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 对其进行更新,并在此答案中发布更新。

    【讨论】:

      猜你喜欢
      • 2011-07-03
      • 2018-07-06
      • 2017-10-28
      • 1970-01-01
      • 2019-03-22
      • 2015-10-07
      • 2019-04-29
      • 2021-01-19
      • 1970-01-01
      相关资源
      最近更新 更多