javascript - 将数据从servlet 发送到jsp,显示在html 表格中。

标签 javascript jsp servlets

由于我在 Web 应用程序方面根本没有太多经验,所以我整天都在为此苦苦挣扎。

我有一个 index.jsp 页面,它向 Servlet 发送请求,创建一个非常大的 csv 表(5 列,500.000 + 行)。由于表格已排序,我想获取前 100 行并将它们显示在 html 表格中。因此 Servlet 会将请求对象重定向到一个 table.jsp,数据应该显示在该位置。

我想我需要一些关于一般方法的建议。我想到了几种方法和问题:

  1. 在创建 csv 文件时,将前 100 行存储在数组数组中,并通过请求对象将它们发送到 jsp 页面,在那里它们可以显示在 html 表格中。

  2. 只发送csv文件的路径,在jsp页面直接读取前100行。

  3. 选择json作为传输格式有用吗?

  4. 一个包含 500 个字符串的对象是否太多而无法在请求对象中传输?

  5. 请求对象是否是将数据传输到 jsp 页面的良好做法?

谢谢你的帮助

最佳答案

JSP页面被容器编译成servlets,所以它们最终是servlets,你可以在其中使用Java代码。因此,无需像使用 Javascript 解释数据时那样使用 JSON 作为传输格式。 JSP 在服务器端进行评估。

所以,我会这样做:

  • 在您的 servlet 中,检索数据
  • 将请求转发给 JSP(这发生在服务器端;客户端(浏览器)无法像重定向一样识别此步骤)
  • 在 JSP 中构建表格(并呈现响应)

Servlet 代码:

public void doGet(HttpServletRequest request, HttpServletResponse response)             
                  throws ServletException, IOException {
    List<MyObject> listData = ...; // however you get the data
    // set the attribute in the request to access it on the JSP
    request.setAttribute("listData", listData);
    RequestDispatcher rd = getServletContext()
                               .getRequestDispatcher("/path/to/page.jsp");
    rd.forward(request, response);
}

JSP(使用 JSTL 标签库):

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!-- html, head and starting body tag ... -->
<table>
    <c:forEach var="element" items="${listData}">
        <tr>
            <td>${element.abc}</td> 
            <td>${element.def}</td> 
            <td>${element.ghi}</td>
        </tr> 
    </c:forEach>
</table>

其中 MyObject 是一个包含实例变量 abcdefghi 的对象,并具有 getter 方法为他们。

请注意,如果您的 WEB-INF/lib 文件夹中没有 JSTL jar(可以下载 here),则需要它。

关于javascript - 将数据从servlet 发送到jsp,显示在html 表格中。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14819537/

相关文章:

javascript - JS/CSS - 保持 td 元素的宽度

JavaScript 非持久性安全问题

java - Servlet 代码中的结果集处理错误

javascript - 如何通过 javascript 动态添加 Google Maps API?

javascript - jQuery 隐藏跨度值超过范围 slider 值的部分

javascript - 使用 GPS 坐标在谷歌地图中绘制一条直线路径

java - 包含一个包含 JSP 的页面并加载各种 CSS 文件

java - 如何在 Struts 2 中访问 OGNL 跟踪评估?

java - 找不到亚马逊凭据方法

java - 二进制内容响应 - 文件名无效?