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() 方法。 因为另一个页面需要获取学生链表 可以 用转发的方式进行编写。

    内容:

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>學生信息表</h3>
<table>
<tr>
<th>studentId</th>
<th>name</th>
<th>idCard</th>
<th>sex</th>
<th>age</th>
<th>grade</th>
</tr>
<%
for(Student student:students){
%>
<tr>
<td><%=student.getStudentId() %></td>
<td><%=student.getName() %></td>
<td><%=student.getIdCard() %></td>
<td><%=student.getSex() %></td>
<td><%=student.getAge() %></td>
<td><%=student.getGrade() %></td>
</tr>
<% } %>
</table>
</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

以上所述是小编给大家介绍的JavaWeb学习过程之MVC查询模式详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的,在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • JavaWeb框架MVC设计思想详解

    Servlet:在Servlet中拼接html内容 JSP:在html中拼接java JSP+JavaBean:利用javaBean将大量的代码提取走 Servlet+JSP+JavaBean:Servlet是控制器,javabean封装数据,jsp展示数据 javaweb的经典三层结构: dao javabean servlet ==> service jsp javabean: javabean是一个遵循特定写法的java类 1.这个java类必须有一个无参的构造函数 2.属性必须私有化 3

  • JavaWeb项目中springmvc和tomcat对静态文件的处理

    1.激活Tomcat的defaultServlet来处理静态文件,web.xml配置 <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.js</url-pattern> </servlet-mapping> a.说到了这里另外说说url-pattern的配置 <!--url-pattern的三种写法--> <!--精确匹配:以&

  • JavaWeb学习过程之MVC查询模式详解

    一.首先先了解一下 什么是mvc? MVC是Model-View-Controller的简称,即模型-视图-控制器.它是一种设计模式,它吧应用程序分成三个核心模块,模型,视图,控制器.他们各自处理自己的任务. 模型:是应用程序的主体部分,模型指的是业务模型. 一个模型可以为多个视图提供数据. 视图:是用户看到的并与之交互的界面. 可以向用户显示相关的数据,接受用户的输入,但是它不进行任何实际的业务处理. 控制器:接受用户的输入并调用模型和视图,完成用户的需求. 流程: 客户端发送请求到 服务器,

  • Angular4学习教程之DOM属性绑定详解

    前言 DOM 元素触发的一些事件通过 DOM 层级结构传播,事件首先由最内层的元素开始,然后传播到外部元素,直到它们到根元素,这种传播过程称为事件冒泡.本文主要介绍了关于Angular4 DOM属性绑定的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 简介 使用插值表达式将一个表达式的值显示在模版上 <img src="{{imgUrl}}" alt=""> <h1>{{productTitle}}</h1&

  • Angular2学习教程之TemplateRef和ViewContainerRef详解

    TemplateRef 在介绍 TemplateRef 前,我们先来了解一下 HTML 模板元素 - <template> .模板元素是一种机制,允许包含加载页面时不渲染,但又可以随后通过 JavaScript 进行实例化的客户端内容.我们可以将模板视作为存储在页面上稍后使用的一小段内容. 在 HTML5 标准引入 template 模板元素之前,我们都是使用 <script> 标签进行客户端模板的定义,具体如下: <script id="tpl-mock"

  • spring cloud学习教程之config修改配置详解

    之前我们讲过了spring cloud之config配置的相关内容,那么在Git端修改配置后如何让客户端生效?下面来一起看看详细的介绍吧. 访问接口修改 refresh post方式执行http://localhost/refresh 会刷新env中的配置 restart 如果配置信息已经注入到bean中,由于bean是单例的,不会去加载修改后的配置 需要通过post方式去执行http://localhost/restart, 需要通过application.properties中配置endpo

  • iOS学习教程之UIView中坐标转换详解

    本文主要介绍的是关于iOS UIView坐标转换的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 在开发中我们经常会需要判断两个控件是否包含重叠,此时如果控件A和B的坐标原点如果不确定的话,那么肯定会导致比较不正确发生错误 判断包含重叠的代码如下: CGRectContainsRect(<#CGRect rect1#>, <#CGRect rect2#>) CGRectContainsPoint(<#CGRect rect#>, <#CGPoint

  • webpack学习教程之publicPath路径问题详解

    本文主要给大家介绍了关于webpack中publicPath路径问题的相关内容,分享出来供大家参考学习,下面来看看详细的介绍: output: { filename: "[name].js", path:path.resolve(__dirname,"build") } 如果没有指定pubicPath,则引入路径如下 <body> <script src="b.js"></script> </body&g

  • spring学习教程之@ModelAttribute注解运用详解

    本文主要给大家介绍了关于java中@ModelAttribute使用的相关资料,分享出来供大家参考学习,下面来一起看看详细的介绍: 一.@ModelAttribute注释方法  例子(1),(2),(3)类似,被@ModelAttribute注释的方法会在此controller每个方法执行前被执行,因此对于一个controller映射多个URL的用法来说,要谨慎使用. (1)@ModelAttribute注释void返回值的方法 @Controller public class HelloWor

  • MySQL数据库学习之查询操作详解

    目录 1.示例表内容 2.简单查询 3.给列起别名 4.列运算 5.条件查询 1.示例表内容 dept表: +--------+------------+----------+ | DEPTNO | DNAME | LOC | +--------+------------+----------+ | 10 | ACCOUNTING | NEW YORK | | 20 | RESEARCH | DALLAS | | 30 | SALES | CHICAGO | | 40 | OPERATIONS

  • Spring Data Jpa的四种查询方式详解

    这篇文章主要介绍了Spring Data Jpa的四种查询方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.调用接口的方式 1.基本介绍 通过调用接口里的方法查询,需要我们自定义的接口继承Spring Data Jpa规定的接口 public interface UserDao extends JpaRepository<User, Integer>, JpaSpecificationExecutor<User> 使用这

随机推荐