文章目录
8.1 c3P0连接池
jdbc没有保持连接的能力,一旦超过一定时间没有使用(大约几百毫秒)。连接就会被自动释放,每次新建连接都需要140毫秒左右的时间,而C3P0连接池可以池化连接,随时取用,平均每次取用只需要10-20毫秒。
在我们前一天的系统中,我们使用了多次访问和关闭,如果是一个大型项目,很多客户端并发随机访问数据库的情况,该系统效率低,而使用连接池的效率可以提高。
8.1.1 导入jar包
创建c3p0文件
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<!-- This is my config for mysql-->
<named-config name="mysql/example">
<!-- 指定链接数据源的基本属性 -->
<property name="user">root</property>
<property name="password">123456</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF8</property>
//上一句的demo改成自己的数据库名字
<!-- 若数据库中连接不足时,一次向数据库服务器申请多少个链接 -->
<property name="acquireIncrement">50</property>
<!-- 初始化数据库连接池时,连接的个数 -->
<property name="initialPoolSize">5</property>
<!-- 数据库连接池中最小连接数 -->
<property name="minPoolSize">5</property>
<!-- 数据库连接池中最大连接数 -->
<property name="maxPoolSize">1000</property>
<!-- c3p0数据库连接池中可以维护的Statement对象的个数 -->
<property name="maxStatements">20</property>
<!-- 每个连接同时可以使用的Statement对象的个数 -->
<property name="maxStatementsPerConnection">5</property>
</named-config>
</c3p0-config>
package sy.demo.util;
import java.sql.*;
import com.mchange.v2.c3p0.ComboPooledDataSource;
//使用连接池进行对象管理
public class CopyOfDBUtil {
static ComboPooledDataSource cpds = null;
public static Connection getConnection(){
try {
if(cpds == null){
//初始化cpds
cpds = new ComboPooledDataSource("mysql/example");
}
//从连接池中获取现有的连接
return cpds.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public static void closeAll(ResultSet rs,Statement stmt,PreparedStatement pstmt,Connection conn){
try {
if(rs != null){
rs.close();
}
if(stmt != null){
stmt.close();
}
if(pstmt != null){
stmt.close();
}
if(conn != null){
conn.close(); //将当前连接对象返回到连接池,供下一次调用
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args){
Connection conn = CopyOfDBUtil.getConnection();
System.out.println(conn != null ? "连接成功!" : "连接失败!");
}
}
8.2 Web项目基础
8.2.1 B/S相对于C/S的优势
- B/S ——Browser/Server 浏览器/服务器模型
在B/S结构下,程序完全放在应用服务器[中间件,Application Server]上,并通过应用服务器同数据库服务器进行通信。在客户机上无需安装任何文件,系统界面是通过浏览器来展现的。 - C/S—Client/Server 客户端/服务器模型
将任务合理分配在Client端和Server端,降低了系统的通信开销,可以充分利用两端硬件环境的优势。 - B/S 相对于C/S的优势
只需要开发一套软件
更新维护方便
受众群体会较于C/S广泛
8.2.3 动态网站和静态网站
-
动态网站 –简单点说,就是有后台服务器程序的支持.
动态网页是指在服务器端运行的程序或者网页,它们会随不同客户、不同时间,返回不同的网页。动态网页中的内容可自动生成,当不同的时间、不同的人访问同一网址时会产生不同的页面效果。 -
静态网页的内容是固定的,当我们修改那些静态网页时,都必须要通过专用的网页制作工具,比如Dreamweaver、Frontpage等,而且只要修改了网页中的一个字符或一个图片,都要重新上传一次覆盖原来的页面。
8.3 Tomcat的安装与配置
Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器Container,按照Sun Microsystems
8.3.1 安装
分为两种版本:
- 安装版 [过程中涉及到以下信息的指定]
|- JDK安装目录的指定
|- 指定Tomcat服务器 端口号 port – 8080 默认80 http
|- 指定后台服务器管理员用户名和密码
|- windows服务名称
32bit 和 64bit
JDK 5.0 + Tomcat 5.x
JDK 6.0 + Tomcat 6.x
JDK 7.0 + Tomcat 7.x - 解压缩版 [全英文路径]
1> 添加环境变量JAVA_HOME JDK安装路径
C:\Program Files (x86)\Java\jdk1.6.0_07
2> 安装windows服务
3> 启动tomcat服务
4> 打开浏览器运行tomcat服务器首页
http://127.0.0.1:8080/
win10需要对Apache文件夹右键——属性——安全——编辑——Users——完全控制——√
打开文件夹
C:\Program Files\Apache Software Foundation\Tomcat 7.0\bin
启动Tomcat7w.exe
在浏览器中输入localhost:8080
点击manager app,输入管理员用户名和密码
8.3.2 Tomcat目录介绍
- /bin 存放tomcat可执行的工具程序
- /conf 存放tomcat的配置文件信息
- /lib 存放tomcat服务器执行时必要的jar文件
- /log 保存tomcat服务器运行期间的日志信息
- /temp 临时目录
- /webapps web applications 保存当前tomcat中运行的web应用程序.
- /work 临时目录 用以產生由JSP編譯出的Servlet的.java和.class文件
Jsp java class
8.3.3 tomcat的常用配置
- 配置端口
conf/server.xml:
IIS asp web服务器
http 默认连接服务器端80端口
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
- 首页文件的配置
Conf/web.xml:
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
- 显示web应用的文件列表功能:
Conf/web.xml:
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
- 配置后台管理员用户名与密码
conf/tomcat-users.xml
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="manager"/>
<user username="tomcat" password="tomcat" roles="manager"/>
</tomcat-users>
8.4 Java Web项目开发过程
8.4.1 创建一个Web项目
Web网站根目录
|-静态资源文件
|- /WEB-INF 保存了当前web项目相关信息 [ROOT/WEB-INF]
|- web.xml 当前web项目的核心配置文件
8.4.2 设计Web项目的目录结构
静态资源文件
8.4.3 编写Web项目的代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <!-- 根路径 -->
<title>My JSP 'index.jsp' starting page</title>
<!-- index.jsp 可以修改,但是要和web.xml中的名字保持一致,可以是a.jsp之类的
-->
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
This is my JSP page. <br>
<%
Date d = new Date();
out.println("现在的时间:"+d);
%>
</body>
</html>
8.4.4 部署Web项目
deploy 将本地站点项目 放到Web容器中/webapps
见8,5
8.4.5 运行Web项目
http://localhost:8080/Web01/
8.5 Tomcat在MyEclipse中的整合和部署
8.5.1 整合
点击图中按钮——Configure Server,如下图,选中Enable,
分别添加三个路径
C:\Program Files\Apache Software Foundation\Tomcat 7.0
C:\Program Files\Apache Software Foundation\Tomcat 7.0
C:\Program Files\Apache Software Foundation\Tomcat 7.0\temp
同时修改jdk
确定之后,
里出现新建的Tomcat 7.x,启动,注意,在这里启动之前必须要把bin文件夹中exe关闭
没有报错即整合成功
8.5.2 部署
点击这个
出现界面如下
出现Successfully deployed,部署成功
manager app界面中多出Web01,
Web01页面如下