1:技能总结:

request对象主要用于处理客户端用户提交的请求信息

response对象用于响应客户请求并向客户端返回响应信息

JSP提供了文件引用指令include

将共性内容写入单独的文件中,通过include指令引用该文件,从而降低代码的冗余、利于代码维护

 

2:什么是JNDI ?

Java Naming and Directory Interface,Java命名和目录接口

通过名称将资源与服务进行关联

3:JNDI的作用与优点

在应用与Java对象或资源之间建立松耦合的逻辑关联,简化应用对于资源的配置及维护工作

可以在更大范围、不同应用之间共享资源

4:在Tomcat中发布Web应用程序使用:

 

先进行发布信息的修改

修改Tomcat\conf\context.xml文件

在<Context>中添加

<Environment name="tjndi" value="hello JNDI" type="java.lang.String" />语句

用lookup()进行查找

 

<Environment>元素用于配置命名的值,所配置的值作为环境条目资源,对整个Web应用可见,包含的属性有:name,type,value

name:环境条目的名称,

type:环境条目的JAVA类名全称

value:通过JNDI context请求时,返回给应用的参数值,该值必须转化成type 属性定义的JAVA类型

5:使用JNDI的步骤:

配置资源

通过Context的lookup()方法查找资源

 

6:为什么使用连接池?

传统数据库连接方式的不足 需要经常与数据库建立连接,在访问结束后必须关闭连接释放资源 当并发访问数量较大时,

执行速度受到极大影响 系统的安全性和稳定性相对较差

7:DataSource与连接池

javax.sql.DataSource接口的实现类

负责管理与数据库的连接 以连接池的形式对数据库连接进行管理

DataSource中事先建立多个数据库连接,这些数据库连接保存在连接池中。JAVA程序访问数据库时,只需要从连接池中取出空闲的状态的数据库连接

当程序访问数据库结束时,再将数据库连接返回给连接池,这样做可以提高访问数据库的效率

 

获取DataSource

Tomcat支持将DataSource实现发布为JNDI资源 Web应用通过JNDI获得DataSource引用

 

得到DataSource对象后,可以通过DataSource的getConnection()方法来获的数据库连接对象。

Connection conn=ds.getConnection();

当程序结束访问数据库后,应该调用Connecton的close()方法及时将Conncetion返回给数据库连接池,使Connection恢复空闲状态

 

8:使用连接池实现数据库连接

配置context.xml文件

配置web.xml文件

添加数据库驱动文件

进行代码编写,查找并获取数据源

 由于数据源由Tomcat创建并维护,所以必须把数据驱动文件放到Tomcat的lib目录下

ps:

C3p0: 开源的JDBC连接池,实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate、Spring等。

单线程,性能较差,适用于小型系统,代码600KB左右。

 

DBCP (Database Connection Pool):由Apache开发的一个Java数据库连接池项目, Jakarta commons-pool对象池机制,Tomcat使用的连接池组件就是DBCP。

单独使用dbcp需要3个包:common-dbcp.jar,common-pool.jar,common-collections.jar,预先将数据库连接放在内存中,

应用程序需要建立数据库连接时直接到连接池中申请一个就行,用完再放回。单线程,并发量低,性能不好,适用于小型系统。

 

Tomcat Jdbc Pool:Tomcat在7.0以前都是使用common-dbcp做为连接池组件,但

是dbcp是单线程,为保证线程安全会锁整个连接池,性能较差,

dbcp有超过60个类,也相对复杂。Tomcat从7.0开始引入了新增连接池模块叫做Tomcat jdbc pool

基于Tomcat JULI,使用Tomcat日志框架,完全兼容dbcp,通过异步方式获取连接,支持高并发应用环境,超级简单核心文件只有8个,支持JMX,支持XA Connection。

 

BoneCP:官方说法BoneCP是一个高效、免费、开源的Java数据库连接池实现库。

设计初衷就是为了提高数据库连接池性能,

根据某些测试数据显示,BoneCP的速度是最快的,要比当时第二快速的连接池快25倍左右,

完美集成到一些持久化产品如Hibernate和DataNucleus中。

BoneCP特色:高度可扩展,快速;连接状态切换的回调机制;允许直接访问连接;自动化重置能力;

JMX支持;懒加载能力;支持XML和属性文件配置方式;较好的Java代码组织,100%单元测试分支代码覆盖率;代码40KB左右。

 

Druid:Druid是Java语言中最好的数据库连接池,

Druid能够提供强大的监控和扩展功能,是一个可用于大数据实时查询和分析的高容错、高性能的开源分布式系统,

尤其是当发生代码部署、机器故障以及其他产品系统遇到宕机等情况时,Druid仍能够保持100%正常运行。

主要特色:为分析监控设计;快速的交互式查询;高可用;可扩展;Druid是一个开源项目,源码托管在github上。

 

 

 

 

9:访问数据源:

name:

指定Resource的JNDI名称

auth:

指定管理Resource的Manager

type:

指定Resource所属的Java类

maxActive:

指定连接池中处于活动状态的数据库连接的最大数目

maxIdle:

指定连接池中处于空闲状态的数据库连接的最大数目

maxWait:

指定连接池中的连接处于空闲的最长时间

 

10:添加数据库驱动文件

把数据库驱动jar文件,加入到Tomcat的lib中

配置应用程序的web.xml文件

在web.xml中配置<resource-ref>

 

 

11:三层模式的划分

                表示层   :与用户交互收集数据展示结果

实体类: 业务逻辑层:根据业务需要控制执行过程,进行事务管理

                数据访问层:提供与业务无关的数据访问操作

 

表示层:用户能够直接访问,用于显示数据和接收用户输入的数据,为用户提供交互式操作页面

业务逻辑层:提供对业务逻辑处理的封装

数据访问层:实现对数据的保存和读取操作(数据访问,可以访问关系数据库,文本文件或XML文档)

 

表示层向业务逻辑藏层发出请求,业务逻辑层向数据访问层发出请求

数据访问层在向业务逻辑层进行响应,业务逻辑层在向表示层进行响应

 

12:编写数据访问层组件 :数据库连接的开闭由业务层统一管理

13:编写业务逻辑层组件 :封装业务流程并统一管理数据库连接和事务

14:分层原则:

上层依赖其下层,依赖关系不跨层

表示层不能直接访问数据访问层 上层调用下层的结果,取决于下层的实现

下一层不能调用上一层

下一层不依赖上一层

上层的改变不会影响下一层

下层的改变会影响上一层得到的结果

在上一层中不能出现下一层的概念

分工明确,各司其职

 

15:三层开发的特点:

下层不知上层的存在

每一层仅知它下一层的存在,而不知另外的下层

上层使用下层提供的服务,并为下层提供数据

 

16:三层开发的优点:

职责划分清晰

利用面向对象的特性进行无损替换

复用代码

降低了系统内部的依赖程度

17:三层开发的缺点:

会将原本很直接的操作变得复杂化

功能的修改难度大、

功能定义变动的可能性很小

 18:分页如何实现:
limit字句:(limit后加int类型的数字参数,第一个数字表示起始位置,第二个表是显示数量  eg:0,3)

x-1*每页页数=起始位置

做分页必须知道当前页码

每页显示条数

总页数,

总条数(select  count  (1)from usejob )count 计数

 

ceil向上取整。

 

posted on 2020-07-23 17:46  吅^O^  阅读(127)  评论(0编辑  收藏  举报