一、首先先了解一下 什么是mvc?
MVC是Model-View-Controller的简称,即模型-视图-控制器。它是一种设计模式,它吧应用程序分成三个核心模块,模型,视图,控制器。他们各自处理自己的任务。
模型:是应用程序的主体部分,模型指的是业务模型。 一个模型可以为多个视图提供数据。
视图:是用户看到的并与之交互的界面。 可以向用户显示相关的数据,接受用户的输入,但是它不进行任何实际的业务处理。
控制器:接受用户的输入并调用模型和视图,完成用户的需求。
流程: 客户端发送请求到 服务器, 服务器 将请求发送给servlet ,servlet接收请求,根据请求的业务逻辑调用model层,然后在想servlet返回一个结果,根据结果 转向(转发,重定向)一个页面。
二、具体查询
问题:点击页面的一个超链接,显示数据库里学生的信息
1.根目录结构
2.
创建一个学生类Student。
内容属性: 获取get,set方法。
private String studentId;private String name;private String idCard;private String sex;private int age;private int grade;
2.创建一个StudentDao类 用于获取数据库信息 返回学生链表
内容:其中有我自己找的一个工具类
public class StudentDao {public List<Student> getAll(){List<Student> students=new ArrayList<Student>();ResultSet rs=null;try {String sql ="select studentId,name,idCard,sex,age,grade from student";rs=DBConnection.executeQuery(sql);while(rs.next()){String studentId=rs.getString(1);String name=rs.getString(2);String idCard=rs.getString(3);String sex=rs.getString(4);int age=rs.getInt(5);int grade=rs.getInt(6);Student student=new Student(studentId, name, idCard, sex, age, grade);students.add(student);}} catch (Exception e) {e.printStackTrace();}finally{if(rs!=null){try {rs.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}return students;}}
3.创建一个servlet 类名为ListAllStudentServlet 配置属性。 只改写doGet() 方法。 因为另一个页面需要获取学生链表 可以 用转发的方式进行编写。
内容:
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {StudentDao studentDao=new StudentDao();List<Student> students=studentDao.getAll();request.setAttribute("students", students); request.getRequestDispatcher("/student.jsp").forward(request, response); // 转发}
4.创建一个test.jsp 用于发送请求。
内容:<a href="listAllStudent">List all students</a>
5.创建显示页面,student.jsp
内容:
<body><%List<Student> students=(List<Student>)request.getAttribute("students");%><h3>