search.jsp代码
<% List<Employee> employees =(List<Employee>)request.getAttribute("employeeList"); %>
servlet代码
public void service(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter pw = response.getWriter();
try {
EmployeeDAO dao = (EmployeeDAO) Factory.getInstance("EmployeeDAO");
List<Employee> employees = dao.findAll();
//结果传到jsp
request.setAttribute("employeeList", employees);
List<Employee> list =(List<Employee>)request.getAttribute("employeeList");
// System.out.println(list.size());
// response.sendRedirect("search.jsp");
request.getRequestDispatcher("search.jsp").forward(request,response);
} catch (Exception e1) {
e1.printStackTrace();
}
}
问题的原因是,之前采用了sendRedirect进行重定向,而应该采用
request.getRequestDispatcher("search.jsp").forward(request,response);
查了一下这两者的区别:
request.getRequestDispatcher()是请求转发,前后页面共享一个request ;
response.sendRedirect()是重新定向,前后页面不是一个request
转自:http://www.cnblogs.com/phpzxh/archive/2010/02/01/1661137.html