Java 根据用户选择的索引显示文件

Java 根据用户选择的索引显示文件,java,jsp,servlets,Java,Jsp,Servlets,我正在使用jsp开发一个网页。我正在显示本地磁盘上的文件列表,我希望在单击时打开正确的文件。 这就是我到目前为止所做的 <select id="folder" name="folder"> <option>- SELECT -</option> <% for (int i=0; i<folder.length; i++) { %>

我正在使用jsp开发一个网页。我正在显示本地磁盘上的文件列表,我希望在单击时打开正确的文件。 这就是我到目前为止所做的

<select id="folder" name="folder">
                <option>- SELECT -</option>
                <%
                for (int i=0; i<folder.length; i++) { %>
                    <option value="<%= folder[i] %>"><%= folder[i] %></option>
                    <% }
                %>
            </select>
问题是,在中的servlet中,只能指定一个文件显示在网页上


如何设置servlet以打开列表中选定的文件?

您的代码中有问题吗?在我看来,你做事情的方式是正确的。我认为问题在于servlet部分,我希望servlet打开所选的文件。目前,它只打开我在FileInputStream中指定的文件。您可以将要在href链接中打开的文件的名称作为url参数传递,并使用request.getParameter(paramName)在servlet中检索此参数;当我这样做的时候,我得到了空值。你能发布你的servlet的完整代码吗?你的代码中有问题吗?在我看来,你做事情的方式是正确的。我认为问题在于servlet部分,我希望servlet打开所选的文件。目前,它只打开我在FileInputStream中指定的文件。您可以将要在href链接中打开的文件的名称作为url参数传递,并使用request.getParameter(paramName)在servlet中检索此参数;当我这样做的时候,我得到了空值。你能发布你的servlet的完整代码吗?
    //open file in folder B
            if (s!= null && s.equals(folder[1])) {
                String subfolder2 = folder[1];
                String folderfilelist2 = dir + "\\" + subfolder2 + "\\" + "pdf";
                File completefolder2 = new File(folderfilelist2);
                completefolder2.getParentFile().mkdirs();
                File[] file_array2 = completefolder2.listFiles();
                        out.print("<table width=1200><tr>");
                        out.print("<p><th width=30><font size=\"6\">File under Company B</th></p>");
                        out.print("</tr></table>");
                        //create table 
                        out.print("<table width=1200><tr>");
                             out.print("<th width=50><b>No</b></th>");
                             out.print("<th width=400><b>File Name</b></th>");
                             out.print("<th width=200><b>Date Converted</b></th>");
                             out.print("<th width=100><b>Mark File</b></th>");
                             out.print("<th width=100><b>Download</b></th>");
                             out.print("<tr><th colspan=5><hr></th></tr>");
                        out.print("</tr></table>");
                        //list file
                        for (int i = 0; i < file_array2.length; i++) {
                             out.print("<table width=1200><tr>");
                                  out.print("<th width=50><font size=\"4\">" + (i +1 ) + "</font></th>");
                                  out.print("<th width=400><font size=\"4\"><a HREF='openfile'"+ file_array2[i].getName() + "\">" + file_array2[i].getName() + "</a></th>");
                                  out.print("<th width=200><font size=\"4\">" + df.format(new Date( file_array2[i].lastModified())) + "</font></th>");
                                  out.print("<th width=100> <input type='checkbox' name='selectedfile' value="+ file_array2[i].getName() +"\"></td>");
                                  out.print("<th width=100><a href='downloadfile'>Download</a></td>");
                             out.print("</tr></table>");
                        }
    out.print("<th width=400><font size=\"4\"><a HREF='openfile'"+ file_array2[i].getName() + "\">" + file_array2[i].getName() + "</a></th>");
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
        response.setContentType("APPLICATION/PDF");
        response.setHeader("Content-Disposition", "inline; filename=\""
                            + file_array1[1].getName() + "\"");
    FileInputStream fileInputStream = new FileInputStream(completefolder2 + "\\" + file_array2[1].getName());

    int q;
    while( (q = fileInputStream.read()) != -1 ) {
        out.write(q);
    }
    fileInputStream.close();
    out.close();
    }