The data display here uses the EL expression of jsp, the background is put into the session, and the front-end EL is obtained.
The database design is like this, one teacher corresponds to multiple students, and the foreign key tid is established in the student table student and the teacher table teacher tid corresponds. Now after the teacher successfully logs in, the student information under the teacher can be displayed
Write from back to front;
1 Create the entity class student.java of the table corresponding to the database
public class Student { private int sid; private String sname; private String sage; public int getSid() { return sid; } public void setSid(int sid) { this.sid = sid; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public String getSage() { return sage; } public void setSage(String sage) { this.sage = sage; } public Student() { super(); } public Student(int sid, String sname, String sage) { super(); this.sid = sid; this.sname = sname; this.sage = sage; } }
2 StudentDao.java
public interface StudentDao { /** * * @param tid * @return 学生对象 * 根据老师id返回学生对象 */ public List<Student> getStudentBytid(int tid); }
3 StudentDaoImpl.java
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import JDBCUtil.JDBCUtil; import com.zr.dao.StudentDao; import com.zr.model.Student; public class StudentDaoImpl implements StudentDao{ /** * 根据传入的老师id获取学生 */ public List<Student> getStudentBytid(int tid) { //定义学生对象集合students接收数据库返回 List<Student> students = new ArrayList<Student>(); //获取数据库连接 Connection con=JDBCUtil.getConnection(); //编写SQL语句 StringBuffer sql=new StringBuffer("select * from student where tid=?"); try { PreparedStatement pst=con.prepareStatement(sql.toString()); pst.setInt(1, tid); //返回一个结果集 ResultSet rs=pst.executeQuery(); while (rs.next()) { //学生对象接收结果集的结果 Student s=new Student(); s.setSid(rs.getInt("sid")); s.setSname(rs.getString("sname")); s.setSage(rs.getString("sage")); students.add(s); } } catch (SQLException e) { e.printStackTrace(); } return students; }
4 searchService.java
import java.util.List; import com.zr.model.Student; public interface searchService { /** * 查询服务 * @param tid 通过老师ID * @return 学生对象所有信息 */ public List<Student> getStudents(int tid); }
5 searchServiceImpl.java
import java.util.ArrayList; import java.util.List; import com.zr.dao.StudentDao; import com.zr.daoIm.StudentDaoImpl; import com.zr.model.Student; import com.zr.service.searchService; public class searchServiceImpl implements searchService{ public List<Student> getStudents(int tid) { List<Student> students=new ArrayList<Student>(); StudentDao studentDaoImpl =new StudentDaoImpl(); students= studentDaoImpl.getStudentBytid(tid); return students; }
6 SearchController.java
import java.io.IOException; import java.util.ArrayList; 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 com.zr.model.Student; import com.zr.model.Teacher; import com.zr.service.searchService; import com.zr.serviceIm.searchServiceImpl; public class SearchController extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { List<Student> students=new ArrayList<Student>(); searchService sc=new searchServiceImpl(); //获取存放在session中的teacher对象 Teacher teacher=(Teacher) req.getSession().getAttribute("teacher"); //获取老师ID int td= teacher.getTid(); //根据老师id获取学生对象 students= sc.getStudents(td); //将students对象放入session中,前台用EL表达式获取值 HttpSession session= req.getSession(); session.setAttribute("students", students); req.getRequestDispatcher("main.jsp").forward(req, resp); } }
7 Configure web.xml file
Note: name should come first
<!-- 查询当前下面的学生信息 --> <servlet> <servlet-name>selectStus</servlet-name> <servlet-class>com.zr.controller.SearchController</servlet-class> </servlet> <servlet-mapping> <servlet-name>selectStus</servlet-name> <url-pattern>/selectStus</url-pattern> </servlet-mapping>
8 mian.jsp Front page
<body> <form action="selectStus"> <input type="submit" value="查询"> </form> <!-- 展示学生对象信息 --> <table class="table table-bordered" style="margin-top: 50px"> <tr> <td>学生编号</td> <td>学生名</td> <td>学生年龄</td> </tr> <!-- 利用EL表达式 --> <c:forEach items="${students}" var="student" varStatus="studentIndex"> <tr> <td>${student.sid}</td> <td>${student.sname}</td> <td>${student.sage}</td> </tr> </c:forEach> </table> </body>