java - 如何将文件夹的详细信息发送到 servlet?
问题描述
我是 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 从文件夹中获取文件?
解决方案
我想到了。我没有重定向到folder.jsp
using <a href="folder.jsp">
,而是调用了一个 servlet,该 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>
这是doGet()
servlet中的方法:
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 对其进行更新,并在此答案中发布更新。
推荐阅读
- typescript - 指定方法的类型而不将方法转换为属性
- android - 元素的宽度和高度放大时Recyclerview缺少项目
- gradle - 找不到通过 Gradle 项目编译依赖项提供的类
- c++ - 如何压缩(组合迭代器)不处理 boost::prior
- ios - 获取日期组件中的当前月份日期
- javascript - window:beforeunload 在 Angular 5 中的页面刷新时执行
- vue.js - Vue.js - 使用动态组件访问数据
- php - 将 div 包装在 if 条件中
- python - Python删除特定行“”
- laravel - 如何在laravel中将用户名的顺序反转为姓名,然后是orderBy name?