在servlet中怎么传集合显示在jsp页面

jsp页面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">















联系人列表

新增联系人
姓名电话邮箱关系操作
删除
删除
删除
删除



servlet页面:
package Servlet;

import impl.ContactsDaoImpl;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import dao.ContactsDao;
import entity.Contacts;

public class SelectAll extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    doPost(request, response);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    //处理乱码
    request.setCharacterEncoding("UTF-8");
    response.setCharacterEncoding("UTF-8");
    response.setContentType("text/html;charset=UTF-8");

    //得到httpsession对象
    HttpSession session=request.getSession();

    //得到数组的值
    String[] name=request.getParameterValues("name");
    String[] phone=request.getParameterValues("phone");
    String[] email=request.getParameterValues("email");
    String[] contact=request.getParameterValues("contact");
    //调用接口的实现方法; 
    ContactsDao contactsdao=new ContactsDaoImpl();
    List<Contacts> list=contactsdao.selectAll();
    if (list!=null) {
        session.setAttribute("name", name);
        response.sendRedirect("show.jsp");
    }
}

}

接口的实现方法类页面:
package impl;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import dao.BaseDao;
import dao.ContactsDao;
import entity.Contacts;

public class ContactsDaoImpl extends BaseDao implements ContactsDao {
//查询所有
public List selectAll() {
List list=new ArrayList();
String sql="select * from Contacts";
Contacts contacts=null;
//调用basedao中的公共方法;
rs=this.executeQuery(sql, null);
try {
while (rs.next()) {
contacts=new Contacts(rs.getString("name"), rs.getString("phone"), rs.getString("email"), rs.getString("contact"));
list.add(contacts);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(con, pstm, rs);
}
return list;
}

}
图片说明

你试试我的
Arraylist<> a =.....;//你的处理结果
PrintWriter pw = response.getWriter();
pw.println(a);// 前台servlet请求之后 无返回值就这样。 有返回值可以用ajax

    希望对你有用

表单提交 前端ajax,后台servlet 直接 return你的list 结果。 请求的数据 在ajax 成功的success 属性里面的 data里面

上面说的ajax 异步获取数据,如果不用异步可以将集合放到session 到jsp页面在去出来,怎么显示方式很多可以百度一下

if (list!=null) {
session.setAttribute("list", list);
response.getRequestDispatcher("show.jsp").forward(request,response);;
}
然后在show.jsp 中用jstl标签迭代list;

${listTest.name}
${listTest.phone}
${listTest.email}
${listTest.contact}

/c:forEach

if (list!=null) {
session.setAttribute("list", list);
response.getRequestDispatcher("show.jsp").forward(request,response);;
}
在页面中先引入一个c标签
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
这个在JSP中的html外边
然后在你想要放集合的位置写一个循环


user.name
user.phone
user.email
user.contact

/c:forEach
list是你在servlet页面传过来的集合,然后在c标签中循环就可以了

异步json传输
或者request.getAttribute("list")

可以使用request进行传输,也可以使用异步传输