你的位置:首页 > Java教程

[Java教程]JavaWeb学习过程 之MVC模式下的查询


   近些天一直在学习javaweb 但总是时断时续,今天终于有时间,来学习一下MVC下的查询模式。

一、首先先了解一下 什么是mvc?

  MVC是Model-View-Controller的简称,即模型-视图-控制器。它是一种设计模式,它吧应用程序分成三个核心模块,模型,视图,控制器。他们各自处理自己的任务。

  模型:是应用程序的主体部分,模型指的是业务模型。 一个模型可以为多个视图提供数据。

  视图:是用户看到的并与之交互的界面。 可以向用户显示相关的数据,接受用户的输入,但是它不进行任何实际的业务处理。

  控制器:接受用户的输入并调用模型和视图,完成用户的需求。

  流程: 客户端发送请求到 服务器, 服务器 将请求发送给servlet ,servlet接收请求,根据请求的业务逻辑调用model层,然后在想servlet返回一个结果,根据结果 转向(转发,重定向)一个页面。

二、具体查询

  问题:点击页面的一个超链接,显示数据库里学生的信息

    

    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 block          e.printStackTrace();        }      }          }      return students;    }}

    3.创建一个servlet 类名为ListAllStudentServlet 配置属性。 只改写doGet() 方法。 因为另一个页面需要获取学生链表 可以 用转发的方式进行编写。

    内容:

1 public void doGet(HttpServletRequest request, HttpServletResponse response)2       throws ServletException, IOException {3 4     StudentDao studentDao=new StudentDao();5     List<Student> students=studentDao.getAll();6     request.setAttribute("students", students);  7     request.getRequestDispatcher("/student.jsp").forward(request, response); // 转发8   }

    4.创建一个test.jsp 用于发送请求。

    内容:<a href="listAllStudent">List all students</a>

    5.创建显示页面,student.jsp 

    内容: 

 1 <body> 2   <% 3     List<Student> students=(List<Student>)request.getAttribute("students"); 4   %> 5   <h3>學生信息表</h3> 6    7   <table> 8       <tr> 9         <th>studentId</th>10         <th>name</th>11         <th>idCard</th>12         <th>sex</th>13         <th>age</th>14         <th>grade</th>15       </tr>16       17       <%18         for(Student student:students){19           20        %>21       <tr>22         <td><%=student.getStudentId() %></td>23         <td><%=student.getName() %></td>24         <td><%=student.getIdCard() %></td>25         <td><%=student.getSex() %></td>26         <td><%=student.getAge() %></td>27         <td><%=student.getGrade() %></td>28       </tr>29       <% } %>30       31   </table>32   33   34  </body>

    6.显示

     暑假去普吉岛旅游价格普吉岛旅游6天普吉岛旅游费用多少普吉岛旅游哪里好玩普吉岛旅游行程圣迹苍岩开车方便吗?圣迹苍岩旅游区开车有多远? 梅溪牌坊要门票吗?珠海梅溪牌坊优惠价? 珠海梅溪牌坊门票价格?梅溪牌坊门票多少钱? 梅溪牌坊在哪里坐车?珠海梅溪牌坊坐几路车? 大学城广东科学中心旅游攻略?大学城科学中心有什么好玩的? 大学城科学馆地铁路线?大学城广东科学馆怎么去? 广州大学城科学馆订票?大学城科学馆门票预订? 大学城科学馆门票多少钱?广州大学城科学馆有没有学生票? 西岭雪山旅游住宿 蜈支洲岛在哪里_蜈支洲岛怎么去_蜈支洲岛交通指南 三亚热带天堂森林公园游览图 亚龙湾中心广场门票_亚龙湾中心广场交通 武汉欢乐谷地址_武汉欢乐谷在哪里_武汉欢乐谷在哪 嵩山少林寺在哪_嵩山少林寺在哪个省 深圳欢乐谷门票价格_深圳欢乐谷门票优惠 深圳欢乐谷有什么好玩的_深圳欢乐谷地图 HL-30712EGW Datasheet HL-30712EGW Datasheet HL-30712EYW Datasheet HL-30712EYW Datasheet HL-30712M2BQYC Datasheet HL-30712M2BQYC Datasheet 1月国内旅游 1月国内旅游 1月国内旅游 1月旅游推荐 1月旅游推荐 1月旅游推荐 1月广东旅游 1月广东旅游 1月广东旅游