首页 > 代码库 > JavaWeb学习过程 之MVC模式下的查询

JavaWeb学习过程 之MVC模式下的查询

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

一、首先先了解一下 什么是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 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="http://www.mamicode.com/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.显示

    技术分享

三、学习过程中遇到的问题

  1.在连接sqlserver 数据库时 出现了 这个问题。

   问题:驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“Server key”。

   解决方法:

      这个问题是JDK与数据库之间的安全秘钥的问题。

      

     方案就是:

 

    1.下载两个jar包

 

      1.bcprov-ext-jdk15on-1.54.jar

 

      2.bcprov-jdk15on-1.54.jar

 

      下载地址在:http://download.csdn.net/detail/cw_hello1/9557049

 

    2.将下载的两个JAR文件复制到:JDK安装目录\jre\lib\ext下,例如我的就是D:\Program Files (x86)\java\JDK1.6\jre\lib\ext

 

    3.打开java.security文件:在JDK安装目录\jre\lib\security下的java.security文件。

 

      找到security.provider.1=sun.security.provider.Sun换成

 

      security.provider.1=org.bouncycastle.jce.provider.BouncyCastleProvider

 

    重新执行连接数据库程序就可以。 这个方法转自:http://blog.csdn.net/cw_hello1/article/details/51740893

 

 今天的学习就先到这里了,明天继续。

 

JavaWeb学习过程 之MVC模式下的查询