案例如下:
package dao; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import entity.Emp; import util.DBUtil2; public class EmpDao { //采用分页查询三条数据(8-10) public List<Emp> findAll(){ List<Emp> list = new ArrayList<Emp>(); try{ Connection conn = DBUtil2.getConnection(); Statement state = conn.createStatement(); String sql = "SELECT * FROM("+ "SELECT ROWNUM rw,e.* FROM("+ "SELECT * FROM emp ORDER BY empno) e"+ ") WHERE rw BETWEEN 8 AND 10"; ResultSet rs = state.executeQuery(sql); while(rs.next()){ Emp e = new Emp(); e.setComm(rs.getDouble("comm")); e.setDeptno(rs.getInt("deptno")); e.setEmpno(rs.getInt("empno")); e.setHiredate(rs.getDate("hiredate")); e.setJob(rs.getString("job")); e.setMgr(rs.getInt("mgr")); e.setEname(rs.getString("ename")); e.setSal(rs.getDouble("sal")); list.add(e); } return list; }catch(Exception e){ e.printStackTrace(); throw new RuntimeException("数据库访问异常"); }finally{ DBUtil2.closeConnection(); } } //模拟增加员工 public void save(Emp e){ System.out.println("增加员工"+e.getEname()); } //测试dao正确 public static void main(String[] args) { EmpDao dao = new EmpDao(); List<Emp> list = dao.findAll(); for(Emp e: list){ System.out.println(e); } } } Servlet实现类 package web; 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 dao.EmpDao; import entity.Emp; public class FindEmpServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Override protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { //处理业务查询 EmpDao dao = new EmpDao(); List<Emp> list = dao.findAll(); //转发:让jsp继续完成这个请求 //1.将要转发的数据绑定到request上 req.setAttribute("emps", list); //将请求提交给jsp让他继续处理,同时请求工具req和res给jsp //getRequestDispatcher(String url)--获得转发器,输入转发的目的地 //当前:/jsp1/findEmp //目标"/jsp1/emp_list.jsp req.getRequestDispatcher("emp_list.jsp").forward(req, res); } } jsp文件: <%@page pageEncoding="utf-8" contentType="text/html; charset=utf-8" import="entity.Emp,java.util.List"%> <!doctype html> <html> <head> <meta charset="utf-8" /> <title>查寻员工</title> <style type="text/css"> table{ border:2px solid #CCC; border-collapse:collapse; width:70%; text-align:center; } table td{ border:2px solid #CCC; } </style> </head> <body> <table> <tr> <td>编号</td> <td>姓名</td> <td>职位</td> <td>上级</td> <td>入职日期</td> <td>工资</td> <td>奖金</td> <td>部门</td> </tr> <% List<Emp> list = (List<Emp>)request.getAttribute("emps"); if(list != null){ for(Emp e : list){ %> <tr> <td><%= e.getEmpno() %></td> <td><%= e.getEname() %></td> <td><%= e.getJob() %></td> <td><%= e.getMgr() %></td> <td><%= e.getHiredate() %></td> <td><%= e.getSal() %></td> <td><%= e.getComm() %></td> <td><%= e.getDeptno() %></td> </tr> <% } } %> </table> </body> </html> 总结:
req.setAttribute("emps", list) List<Emp> list = (List<Emp>)request.getAttribute("emps")
方法中的参数类型都为Object,可以绑定任何类型的数据,在jsp中通过request获取数据时,其类型为Object,需要转换为需要的类型
WEB组件:Servlet/JSP