You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JSP页面中显示来自Java Servlet的ArrayList集合?

嘿,我来帮你搞定在JSP里显示Servlet传递的列表这件事!

首先先把你没写完的Servlet代码补全——你已经把列表放到request属性里了,最后别忘了调用forward完成请求转发,这是把数据传递到JSP的关键步骤:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    ArrayList<String> myList = new ArrayList<String>();
    myList.add("cat");
    myList.add("dog");
    myList.add("frog");
    request.setAttribute("list", myList);
    String nextJSP = "/index.jsp";
    RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP);
    dispatcher.forward(request, response); // 补上这行完成转发
}

接下来给你两种在JSP中显示列表的方法,推荐第一种(更符合Java Web的最佳实践):

方法1:用JSTL + EL表达式(推荐)

这种方式不用在JSP里写Java代码,视图和逻辑分离更清晰。首先要在JSP顶部引入JSTL核心标签库:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

然后用<c:forEach>标签遍历列表,结合EL表达式${}取出数据:

<h3>我的动物列表</h3>
<ul>
    <c:forEach var="animal" items="${list}">
        <li>${animal}</li>
    </c:forEach>
</ul>
  • var="animal":给遍历到的每个元素起个别名
  • items="${list}":指定要遍历的集合,这里的list就是你在Servlet里用request.setAttribute设置的属性名

⚠️ 注意:如果用JSTL,要确保你的项目里已经引入了JSTL的jar包(比如jstl-1.2.jar),不然标签会失效。

方法2:用传统Java脚本(不推荐)

如果暂时不想用JSTL,也可以直接在JSP里写Java代码,但这种方式会让JSP变得混乱,维护起来麻烦,只做临时参考:

<h3>我的动物列表</h3>
<ul>
    <%
        // 从request中取出列表,注意强制类型转换
        ArrayList<String> list = (ArrayList<String>) request.getAttribute("list");
        // 遍历输出每个元素
        for(String animal : list) {
    %>
            <li><%= animal %></li>
    <%
        }
    %>
</ul>

最后再提个小提醒:要确保你的Servlet在web.xml或者用注解@WebServlet配置了正确的访问路径,这样访问Servlet时才能触发doGet方法,把数据传递到JSP。

内容的提问来源于stack exchange,提问作者kieron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:17:19