A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

JavaWeb期中笔记

JDBC回顾
     概述:
l  JavaDataBase Connectivity Java数据库的连接
l  sun公司提供的一套统一的接口规范
     驱动:
l  两个硬件设备之间通信的桥梁,
JDBC开发步骤:
l  注册驱动
n  Class.forName(“驱动名称”);
l  获取连接
n  通过DriverManager.getConnection(“数据库路径”,”数据库用户名”,”密码”);
l  获得执行sql语句对象,
n  定义sql语句
n  创建PreparedStatement对象,里面使用占位符?来代表需要传入的参数,set参数属性(第几个问号,参数值);
n  使用executeQuery()方法,和executeUpdate()方法来执行sql语句,返回结果集或者执行成功的记录条数
l  释放资源
n  连接的close()方法
使用单元测试替代main方法
l  可以直接通过结果颜色直观反映代码是否有误
l  一个类中可以测试很多方法
l  测试方法不可以有返回值,也不能有参数列表
l  注意事项:单元测试,红色什么时候出现
n  程序出现异常
n  assert语句,期望和实际值不一样的时候
l  实例格式,
@Test
public void 方法名(){
     方法体
}
         QueryRunner  手动传入连接  必须手动关闭  若传入连接池  关闭资源的动作由连接池来执行
     JDBC的API
l  Connection
n  createStatement():创建一个Statement对象将sql语句发送到数据库
n  prepareStatement(Stringsql):创建一个prepareStatement对象将参数化的sql语句发送到数据库
l  Statement
n  excuteQuery(Stringsql):执行给定的sql语句,返回单个的ResultSet对象
n  executeUpdate(Stringsql):执行给定的sql语句,内容可为增、删、改或不返回任何内容的sql语句
n  execute(Stringsql)执行给定的sql语句,该语句可能返回多个结果
n  执行批处理
n  addBatch(Stringsql):将给定的sql命令添加到此Statement对象的当前命令列表中
n  clearBath():清空此Statement的sql命令列表
n  executeBatch()将一批命令提交给数据库,若全部执行成功,则返回更新计数
自定义连接池
l  定义一个自定义连接池,需要先实现sun公司提供的接口(javax.sql.DataSource)
l  使用List集合存放多个连接的对象
还有一个适配器设计模式,和装饰者模式一同使用,解决需要重写的方法太多的问题
自定义连接池需要对连接的某些方法进行增强,有三种方法可以实现增强
1.  继承
                        i.         找到这个数据库驱动的实现类,继承它,在子类中重写它的某些方法,实现对它功能的增强,
                      ii.         缺点:是,通用性太差,一种数据库就需要有一个子类来增强
2.  使用装饰者模式
                        i.         装饰者模式  使用一个包装类来对数据库驱动的实现类进行包装,进而实现对这个实现类功能的增强
                      ii.         但由于我们只对这个类的某些功能进行增强,为了简化包装类的代码书写,使用适配器模式


JDBC的元数据MataData---编写通用性较强的代码
l  DatabaseMetaData:获取数据库连接的信息,获得数据库表的信息
n  获得数据库元数据:Connection中getMateData();
l  ParameterMetaData:获得sql中的参数的个数及类型
n  获得参数元数据:
l  ResultSetMetaData:获得结果集中的列名及类型
XML—可扩展标记语言
l  设计总之是传输数据,而不是显示数据
l  xml中标签没有被预定义,需要用户自行定义
l  具有自我描述性
l  w3c推荐标准
XML的作用
l  传输和存取数据
l  软件的配置文件
XML的使用
l  XML的语法
n  xml的文档声明
u 文档声明:必须在xml的第一行第一列
u 写法:
l  <?xml 属性名=”属性值” 属性名=”属性值” ..?>
n  version   :版本号.必须要有的.使用”1.0”
n  encoding:字符集.浏览器打开时采用的编码集
n  standalone:描述xml文档是否需要依赖其他的文件.没什么用的属性 属性值:yes or no
n  xml的注释
u <!---->
n  xml的属性
u  
n  xml的元素
u 命名规则
l  可包含字母、数字和其他字符
l  不可以数字或者标点开头
l  不能以xml开头,大小写都不可以
l   
n  xml的特殊字符和CDATA区
u &lt;---   <
u &gt;---  >
u &amp;--&
u &apos;--
u &quot;
XPath:
l  dom4j支持XPath的jar包
l  dom4j支持的XPath支持的API:
n  Listdocument.selectNodes(String xPath);
n  Nodedocument.selectSingleNode(String xPath);
XML的约束
l  用来约束文档中标签的类型,顺序,次数
l  用来规范XML的写法
l  分类和区别
n  分类
u DTD       :
l  DTD的语法是自成一体的
u Schema  :
l  Schema的语法是XML的语法,更容易被解析器解析
l  Schema支持名称空间
l  比DTD更强大的语义和语法的约束
n  DTD的语法
u 引入方式
l  内部引入
l  外部引入
n  本地引入
n  网络引入
n  Schema的语法

   
Tomcat
l  软件架构
n  c/s架构:
u Client/Server客户端和服务器端的软件,需要pc端安装的软件,例:QQ
u 优点:效果好,客户体验好,因为部分代码写到客户端所以速度较快
u 缺点:服务端更新,客户端都需要更行
n  b/s架构:
u Browser/Server浏览器端和服务器端的软件,不需要安装软件,有浏览器即可,例:京东,淘宝,WEBQQ
u 优点:服务器更新,客户端浏览器不需要更新,
u 缺点:效果比不上客户端软件,所有代码运行在服务器,服务器压力过大
l  效果:使用HTML5,CSS3可以做出炫的效果
l  服务器端压力:搭建服务器的集群,而且还有AJAX技术

l  http协议
n  协议:规定双方需要遵守的规则.
n  HTTP协议:
u 用来规定浏览器和服务器之前需要遵守的规则
n  http的协议的作用:
u 基于请求和响应的模型
u 请求和响应必须成对出现.
n  默认的端口号是80
l  http协议的版本
n  1.0              :每次响应后即刻关闭公司
n  1.1              :现在使用,不是立刻挂断等后面看看还会不会有请求
l  http协议的详解
n  请求部分
u 请求行
l  请求方式
n  GET和POST
u GET的提交的参数会显示在地址栏上,而POST不显示
u GET的提交有大小限制,POST没有大小限制
u GET没有请求体,POST有请求体
l  提交路径:
l  协议版本:1.0
u 请求头
l  都是键值对的形式显示的,一般一个key对应一个value,也个别的是一个key对应多个value.
l  User-Agent           :代表浏览器的类型.---文件下载:下载中文文件:IE使用URLEncodor进行编码,而Firefox使用Base64编码
l  Referer                 :代表网页的来源------防盗链
l  If-Modified-Since: 寻找本地缓冲,可以提高运行速度
n  响应部分
u 响应行
l  协议版本
l  状态码
n  200    :成功
n  302    :重定向
n  304    :查找本地缓存
n  404    :资源不存在
n  500    :服务器内部错误
l  状态码描述
u 响应头:键值对,一个key对应一个value,个别一个key对应多个value
l  Last-Modified       :与请求中的If-Modified-Since一起使用查找本地缓存
l  Content-Dispostion:文件下载时使用的一个头信息
l  Location               :
l  Servlet
n  概述:运行在WEB服务器上小的Java程序,用来接收和响应客户端发来的请求,通常使用HTTP协议
n  Servlet:sun公司提供的一个动态页面开发技术
n  使用:
u 编写实现类实现Servlet接口
u 将编写的类配置到服务器中
n  使用ServletRequest接受参数
u StringgetParameter(String name):接受一个名称对应一个值得数据
u String[]getParameterValues(String name):用于接受一个名称对应多个值得数据
u MapgetParameterMap();             :用于接受表单中的所有的数据,Map的key是表单提交的参数名称,Map的value是提交参数的值
l  Servlet的实现关系
n  Servlet        :接口
|
GenericServlet   :通用的Servlet
           |
HttpServlet         :专门处理http请求的Servlet
n  编写一个类继承Servlet,重写doSet和doPost方法
l  Servlet的生命周期
n  生命周期:一个对象从创建到销毁的过程.
n  Servlet生命周期:Servlet从创建到销毁的过程
u 用户第一次访问Servlet创建Servlet的实例
u 当项目从服务器中移除的时候,或者关闭服务器的时候
n  用户第一次访问的时候,创建唯一的一个Servlet的实例,Servlet的init()方法就会执行.任何一次请求服务器都会创建一个新的线程
l  Session概述
n  Cookie本身有大小和个数的限制,Session没有限制,Cookie的数据保存在客户端,Session保存在服务器端
n  执行原理:基于Cookie,使用Cookie把用户的Session标识存入客户端,在使用Cookie把用户标识传回服务器用于打开Session空间
n  使用
u request.getSession()如果携带的Cookie有JSESSIONID的话就会打开这个区域,如果没有则创建
步骤



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马