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="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

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

时间: 2024-10-21 20:32:09

JavaWeb学习过程 之MVC模式下的查询的相关文章

MVC模式下基于SSH三大框架的java web项目excel表格的导出(不依赖另外的jar包)

最近工作中碰到了需要将web页面的表格内容导出到excel表格并下载到本地的需求.以下是在利用网上资源.与同事探讨下,完成的代码. 首先我们需要有定义好的实体类.以下是截取了项目中用到的部分代码. 1 public class QyggDocuments implements java.io.Serializable { 2 3 private static final long serialVersionUID = -2543382529255041149L; 4 5 private Stri

.net MVC模式下easyui datagrid控件分页

此参照一位仁兄代码,稍作修改 视图代码: <div id="tab" class="easyui-tabs" data-options="tools:'#tab-tools'" style="width:800px;height:400px"> <div title="****" style="padding:0px;"> <div class="

mvc模式下的数据库连接操作

mvc模式下数据库操作分为三部分,举一个容易理解的例子,mvc就是一种设计模式, 分为模型(Model),控制器(Controller ),视图(View),各自分工明确,连接数据库操作也遵从于这种模式 一部分是用来设置数据库的的用户名和密码的文件,可同时设置多个数据库的信息,实现可扩展性, 一部分是连接数据库,实例化类的操作, 一部分是用来调用实例化后的对象中的方法,写sql语句部分,分为了三个文件 在config.php文件中,设置常量define关于数据库信息,此处可以设置为二维数组,实现

【案例分享】使用ActiveReports报表工具,在.NET MVC模式下动态创建报表

提起报表,大家会觉得即熟悉又陌生,好像常常在工作中使用,又似乎无法准确描述报表.今天我们来一起了解一下什么是报表,报表的结构.构成元素,以及为什么需要报表. 什么是报表 简单的说:报表就是通过表格.图表等形式来动态显示数据,并为使用者提供浏览.打印.导出和分析的功能,可以用公式表示为: 报表 = 多样的布局 + 动态的数据 + 丰富的输出 报表通常包含以下组成部分: 报表首页:在报表的开始处,用来显示报表的标题.图形或说明性文字,每份报表只有一个报表首页. 页眉:用来显示报表中的字段名或对记录的

Android:MVC模式(下)

在上一篇文章中,我们将 View 类单独出来并完成了设计和编写.这次我们将完成 Model 类,并通过 Controller 将两者连接起来,完成这个计算器程序. 模型(Model)就是程序中封装了数据,并定义了操作和处理这些数据的逻辑的对象.在计算器的例子中,就是处理输入的操作数和运算符,并计算返回结果.Let's Go (注意:示例中直接使用 double 类型来处理数据,但严格来说很多语言的浮点数计算都是不精确的) 一,设计模型的接口 在程序构建之初,我们首先考虑的应该是各模块间的封装和扩

前端之Android入门(5) – MVC模式(下)

我们将 View 类单独出来并完成了设计和编写.这次我们将完成 Model 类,并通过 Controller 将两者连接起来,完成这个计算器程序. 模型(Model)就是程序中封装了数据,并定义了操作和处理这些数据的逻辑的对象.在计算器的例子中,就是处理输入的操作数和运算符,并计算返回结果.Let’s Go(注意:示例中直接使用 double 类型来处理数据,但严格来说很多语言的浮点数计算都是不精确的) 一,设计模型的接口 在程序构建之初,我们首先考虑的应该是各模块间的封装和扩展,设计好模块的接

JavaWeb学习(十): MVC模式

前情摘要: MVC 是一种设计思想(模式),并不是某种编程技术. MVC 由哪几部分组成? M: Model -- 用于实现某种功能. 封装应用程序的数据结构和事物逻辑,几种体现应用程序的状态,当数据状态发生改变的时 候能够在视图里面体现出来. 主要用 JavaBean 来实现(关于 JavaBean 可以看上一篇文章) V: View -- 展示给用户一个较好的页面. 它是 Model 的外在表现,当模型状态改变时会有所体现. 主要通过 JSP 来实现. C: Controller -- 分发

MVC模式下的数据展示:EasyUI的datagrid

我的数据库设计是一张老师表teacher,一张学生表student,一个教师对应多个学生,在学生一方建立外键; 还有一点想清楚,需要展示的数据是根据什么来的,是成功登陆的用户的id?还是直接展示所有的学生? student表 教师表: 我是习惯性的从后写到前,这里展示的是登录成功的老师下的学生信息 1 建立项目,建立好对应的包以及工具包 2建立好与数据库对应的实体类 package com.zr.model; public class Student { private int sid; pri

MVC模式下值的传递

公司项目转用MVC开发,故学习总结一下mvc会用到的常用传值方法:       正如大家都熟悉的,MVC路由及运行机制是:       首先,Web 浏览器向服务器发送一条URL 请求,如http://localhost:10080/Home/Register,也就是(http://HostName/ControllerName/ActionName/Parameters). 其次,请求被ASP. NET MVC 的路由映射系统获取,并按照映射规则, 解析出 ControllerName,Act