dao-service-servlet-jsp构建简易web通讯录(三层开发)预备知识

转载 2017年09月13日 20:21:45

结构关系

三层架构简介:所谓的三层分为物理上的三层和逻辑上的三层。物理上的三层包括:客户端(PC)、应用服务器、数据库服务器。逻辑上的三层,也就是我们要讨论的,分为表示层、业务逻辑层、数据访问层。
这里写图片描述

servlet

一、Servlet程序各模块介绍

1.JSP 用于显示、收集数据的部分。
2.Servlet 用于验证数据、实例化JavaBean、调用DAO连接数据库、控制页面跳转
3.DAO 用于连接数据库及进行数据库的操作如:查询、删除、更改等
4.JavaBean 用于数据的封装,方便将查询结果在servlet与jsp页面之间进行传递等
5.servlet过滤器 它能够在一个request到达servlet之前预处理request,也可以在离开servlet时处理response
6.servlet监听器 监听Web的各种操作,当相关的操作触发后将产生的事件,并对此事件进行处理
以上 1,2,3,4部分共同构成了MVC模式,JSP为MVC模式当中的V,Servlet为C,DAO与JavaBean合在一起为M。
二、模式运行流程:
用户首先打开一个JSP页面,这个JSP页面用于收集用户输入的数据(使用Form表单实现),当用户单击提交按钮时,此JSP页面被提交到对应的Servlet,此时工作转向Servlet。Servlet将提交到的数据进行处理,处理过程如下:
1、(可选)对数据进行合法性验证、乱码处理等
2. 实例化DAO,调用DAO的方法(进行数据库数据的更新查询操作)
3. 将DAO返回的数据进行保存,保存的位置可选(request,session等)
4. 进行页面的跳转
在Servlet调用DAO的方法过程中,DAO的处理过程如下:
1. 连接数据库(这些操作可以放在DAO的构造函数当中,也可以写成单独的方法)
2. 处理查询方法,这里给出基本步骤。先按查询语句及传过来的参数进行数据库的查询得到一个ResultSet结果集,为了方便将结果返回给Servlet及方便后面的显示,现将结果进行封装并以ArraryLis或者JSON串,xml串等等t的形式返回给servlet。为了进行数据的封装,这里就需要实例化一个JavaBean,这个JavaBean的字段与数据库表当中的字段一一对应,并为各个字段添加get(),set()方法。
Serlvet在得到数据后,再将页面进行跳转,此时数据已保存下来。我们可以在另外一个JSP页面当中将数据提取出来,并按一定的格式进行排列。至此,一个完整的查询操作就完成了。
此操作虽然比较简单,但是却充分体现了MVC模式的思想。
三、Servlet介绍
Servlet生命周期分为三个阶段:
  1,初始化阶段 调用init()方法
  2,响应客户请求阶段  调用service()方法
  3,终止阶段  调用destroy()方法
Servlet初始化阶段:
  在下列时刻Servlet容器装载Servlet:
   Servlet容器启动时自动装载某些Servlet,实现它只需要在web.XML文件中的之间添加如下代码:

 <servlet>
    <servlet-name>ListEmp</servlet-name>
    <servlet-class>com.baizhi.servlet.ListEmp</servlet-class>
  </servlet>
   <servlet-mapping>
    <servlet-name>ListEmp</servlet-name>
    <url-pattern>/ListEmp</url-pattern>
  </servlet-mapping> 

    2,在Servlet容器启动后,客户首次向Servlet发送请求
    3,Servlet类文件被更新后,重新装载Servlet
  Servlet被装载后,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。在Servlet的整个生命周期内,init()方法只被调用一次。
我们定义Servlet的时候只需要继承HttpServlet即可。
  
四、过滤器的原理和介绍:
http://blog.csdn.net/qiwancong/article/details/7005808
五、servlet监听器:
http://wenku.baidu.com/view/9d199629e2bd960590c677ff.html
六、servlet程序还可以作为android或者MTK,wince平台客户端软件的服务端,
根据客户端的请求,进行处理,操作数据库,逻辑判断等后返回json,xml等类型的数据。
转自http://blog.csdn.net/yjtacx/article/details/9963281

封装

1可以彻底隐藏方法的内部实现,仅仅提供一个调用的方法给其他人,让其他使用这个类的人不需要关心是如何实现的,只要知道该如何调用就行。
2隐藏方法的内部实现的好处,可以让保留调用方法不变的同时,随意修改类的结构,而不影响其他人运行结果。
3封装还会分开类的属性,将类的属性分成私有属性和公共属性。私有属性仅供类自身调用,和公共属性也仅提供一个供外部调用的方法。
4按照软件的术语,良好的封装是能够减少耦合。

public class MyTime{
private int num;//私有属性,仅能供类自身调用
    public String date;
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
    date= df.format(new Date());
    public String getDate() {
        return date;
    }

//
//    public void setDate(String date) {//隐藏设置时间的方法,只能显示时间
//        this.date = date;
//    }
}

http://www.cnblogs.com/qifengshi/p/5660462.html

myeclipse删除空包

myeclipse中通过调整视图结构就不会显示空包了。
在myeclipse里面package explorer 中有个倒三角 点击一下 ,下面选择package presentation 然后选择下面的就是包分成效果了具体操作如下:根据需求添加删除。
这里写图片描述

数据库连接时添加驱动

1:首选你需要下载Jdbc驱动器(mysql-connector-java-5.1.7-bin.jar这种类型的),百度云一下,网上有蛮多的

2:下载好上面的Jdbc驱动器后,打开工程,找到其下web root下的lib,将下好的驱动复制粘贴进去。
3然后点击刚才粘贴的那个jar包,找到build path继续找到add to build path,
(右键项目->Build Path->Configure Build Path->Java Build Path->Libraries->Add Jar->选择你的jar包 )
如图:
这里写图片描述

出现的结果如上图所示,这时添加完成之后,才可以使用MyEclipse连接My sql数据库。
这里写图片描述

连接数据库代码如下(需要重点注意的是Connection connect=DriverManage.getConnection(“jdbc:mysql://localhost:3306/test”,”root”,”密码”))//test是你所写数据库名称,root和密码是数据库的用户名和密码

dao-service-servlet-jsp构建简易web通讯录(三层开发)软件安装

安装软件 myeclipse 安装软件navicat for mysql
  • moqianmoqian
  • moqianmoqian
  • 2017年09月13日 20:02
  • 147

dao-service-servlet-jsp构建简易web通讯录(三层开发)知识点1

1 session.setAttribute("c",c) request.setAttribute("c",c) 2 execute(),executeQuery(),executeUpdate(...
  • moqianmoqian
  • moqianmoqian
  • 2017年09月13日 20:31
  • 103

dao-service-servlet-jsp构建简易web通讯录(三层开发)bug1

1 mysql连接不上,用net startup mysql无法启动 2.空指针异常 3 request.setAttribute 4 注意不要漏掉.xml中servlet的配置 5 强制关机,不关...
  • moqianmoqian
  • moqianmoqian
  • 2017年09月13日 20:42
  • 169

《Linux Shell脚本攻略》 笔记 之预备知识

《Linux Shell脚本攻略》笔记 之预备知识 一、BASH基础篇 1.type命令 区分内置或者外置命令 2.两种脚本给变量命名的方法: var1=`uname -r` var2=$(un...
  • wojiushiwo987
  • wojiushiwo987
  • 2015年01月03日 17:33
  • 1533

Android简单通讯录的开发

本次开发分为4步: 1、获取手机通讯录的信息; 2、手机通讯录的数据封装; 3、手机通讯录的信息的UI适配; 4、对ListView的优化。 GetNumber.java: 用来获取手机通讯录。下面...
  • qq_25585701
  • qq_25585701
  • 2016年07月07日 16:02
  • 3138

三层架构实例——通讯录

从三层理论知识的学习到实例操练,已经将近半个月的时间了,现在终于暂时告一段落了。开始跟步练习登录实例的时候,还是有很多的疑问,多亏了我们可爱的王丹(大)同学,听了她的讲解后,感觉顿时明白了许多,也从开...
  • u010773667
  • u010773667
  • 2014年04月04日 20:10
  • 1461

word2vec 中的数学原理详解(二)预备知识

word2vec 是 Google 于 2013 年开源推出的一个用于获取 word vector 的工具包,它简单、高效,因此引起了很多人的关注。由于 word2vec 的作者 Tomas Miko...
  • peghoty
  • peghoty
  • 2014年07月19日 22:46
  • 52995

软件开发学习路线

软件开发学习路线     ChinaITLab原创作者刘晓涛     2005-8-25   保存本文   推荐给好友   QQ上看本站  收藏本站       备注:本文选自ChinaITLab网校...
  • liyunlong
  • liyunlong
  • 2005年11月03日 09:59
  • 2013

1.预备知识

第一部分     快速开发平台  如果你从来没有接触过asp.netmvc,而且在综合使用它们之前,需要独立了解每一个概念那么请从第一部分开始。无论你是否在网站上(http://www.asp.ne...
  • sdtsfhh
  • sdtsfhh
  • 2012年11月08日 06:47
  • 1556

机器学习预备知识

机器学习预备知识 关键概念:错误率(error rate),精度(accuracy),训练误差(training error)/经验误差(empirical error),模型评估方法,性能度量,比较...
  • Antsypc
  • Antsypc
  • 2017年06月01日 15:22
  • 346
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:dao-service-servlet-jsp构建简易web通讯录(三层开发)预备知识
举报原因:
原因补充:

(最多只允许输入30个字)