实现JSP通过Tomcat连接MySQL

 服务概述

1、Tomcat是什么?

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。

    Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为8.0.0-RC1 (alpha) Released。JSP全名为Java Server Pages,中文名叫java服务器页面,是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件中插入Java程序段和JSP标记,从而形成JSP文件,后缀名为.jsp 。支持JSP语言,收费ls、版web服务器:oracle的weblogic  ;IBM的websphere

Tomcat是一个应用服务器。 比如,假设我们浏览sina网的网页,而sina网的所有网页是配置在一个Tomcat服务器上的,那么,如果没有这个Tomcat来提供服务器端的服务的话,那你就打不开sina网的任何网页了

模式:B/S 模式

端口: 8080

 

1)关于java的相关概念:

JDK :java development kit (套件) 。简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。

SDK是Software Development Kit 一般指软件开发包,可以包括凼数库、编译程序等。

JRE: 是Java Runtime Enviroment是指Java的运行环境,是面向Java程序的使用者,而不是开发者。

JVM: java virtual machineJVM就是我们常说的java虚拟机。在JDK的安装目录里你可以找到jre目录里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。

2、Apache和Tomcat的区别:

       Apache只是一个Web服务器,可以作为独立的web服务器来运行,不过只支持静态网页,如ASP、PHPCGI、JSP等动态网页的就显得无能为力。

       Tomcat也可以作为独立的web服务器来运行。但Tomcat也是应用(Java)服务器,它只是一个Servlet容器(生成动态Web内容)

由于Apache解释静态页面要比tomcat快速而且稳定, 基于以上原因,一个现实的网站使用一个Apache作为Web服务器,为网站的静态页面请求提供服务;并使用Tomcat服务器作为一个Servlet/JSP插件,显示网站的动态页面;

3、Apache+Tomcat整合的好处:

      1). Apache主要用来解析静态文本,如html,tomcat虽然也有此功能,但apache能大大提高效率,对于并发数较大的企业级应用,能更好的显示apache的高效率;

      2)Tomcat用来解析jsp,servlet等,所有的客户请求首先会发送到Apache,如果请求是静态文本则由apache解析,并把结果返回给客户端,如果是动态的请求,如jsp,apache会把解析工作交给tomcat,由tomcat进行解析(这首先要两者现实整合),tomcat解析完成后,结果仍是通过apache返回给客户端,这样就可以达到分工合作,实现负载均衡,提高系统的性能!而且因为JSP是服务器端解释代码的,这样整合可以减少Tomcat的服务开销。

4、Apache+Tomcat整合的原理

实现JSP通过Tomcat连接MySQL_第1张图片 

作为Apache下面的子项目,Tomcat 与 Apache之间有着天然的联系。在实际操作中,主要是Apache作为主服务器运行,当监听到有jsp或者servlet的请求时,将请求转发给tomcat服务器,由tomcat服务器进行解析后,发回apache,再由apache发回用户。

    在tomcat中有两个监听的端口,一个是8080用于提供web服务,一个是8009用于监听来自于apache的请求。当apache收到jsp或者servlet请求时,就向tomcat 的8009端口发送请求,交由tomcat处理后,再返回给apache,由apache返回给客户。

 

一:实验目标

实战实现tomcat使用用户密码登录

实战:实现JSP通过Tomcat连接MySQL

二:实验环境

服务端:xuegod63.cn IP192.168.1.63

客户端:xuegod64.cn IP:192.168.1.64

三:实验步骤

1、安装JDK

1)准备相关软件包:

jdk-7u71-linux-x64.rpm

apache-tomcat-7.0.27.tar.gz  #tomcat安装包

mysql-connector-java   #用于使用java连接mysql数据库.mysql数据库连接器。

mysql-connector-java-5.1.34.tar.gz

2)安装及配置Java运行环境—jdk。升级了jdk的版本

[root@xuegod63~]#rpm-ivh jdk-7u71-linux-x64.rpm

[root@xuegod63~]#rpm –pql /root/jdk-7u71-linux-x64.rpm#通过查看jdk的信息可以知道jdk的安装目录在/usr/java

Linux export命令参数

功能说明:设置或显示环境变量。

语法:export[-fnp][变量名称]=[变量设置值]

例:

[root@xuegod63 ~]# A="aaa"

[root@xuegod63 ~]# echo $A

aaa

[root@xuegod63 ~]# export B="bbb"

[root@xuegod63 ~]# echo $B

bbb

3)修改环境变量:

[root@xuegod63~]#vim  /etc/profile#在文件的最后,添加如下内容:

export  JAVA_HOME=/usr/java/jdk1.7.0_71

export  JAVA_BIN=/usr/java/jdk1.7.0_71/bin

export  PATH=${JAVA_HOME}/bin:$PATH

export  CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar

注释:

exportJAVA_HOME=/usr/java/jdk1.7.0_71#java家目录

exportJAVA_BIN=/usr/java/jdk1.7.0_71/bin#java可执行文件目录

exportPATH=${JAVA_HOME}/bin:$PATH#修系统环境变量

exportCLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar#类路径

[root@tomcat~]#source  /etc/profile#使配置文件生效

4)验证java运行环境是否安装成功:

[root@xuegod63~]#java  -version

javaversion"1.7.0_71"

Java(TM)SERuntimeEnvironment(build1.7.0_71-b14)

JavaHotSpot(TM)64-BitServerVM(build24.71-b01,mixedmode)

#如果出现安装的对应版本,说明java运行环境已经安装成功。

2、安装tomcat提升服务器性能:

注:tomcat-native.tar.gz #这个软件包在tomcat的bin目录下已经提供,不需要再下载了。

具体的安装与配置

1)安装及配置tomcat

Tomcat有两种安装方式,一种是直接解压就可以使用的二进制的文件。第二种是编译安装。采用第一种方法,因为在官网默认下载的便是第一种二进制的文件。

[root@xuegod63 ~]# tar zxvf apache-tomcat-7.0.27.tar.gz  

[root@xuegod63 ~]# ls apache-tomcat-7.0.27/bin/ #执行文件在这个地方

[root@xuegod63 ~]# mv apache-tomcat-7.0.27 /usr/local/tomcat/

[root@xuegod63 ~]# cd /usr/local/tomcat/

[root@xuegod63 tomcat]# vim webapps/ROOT/index.jsp #默认首页 ,网站根目录

注:/usr/local/tomcat/webapps/ROOT/ 网站根目录

2)为tomcat的启动创建一个Sysv的管理脚本 

[root@xuegod63 tomcat]# vim /etc/init.d/tomcat #写入以下内容

#!/bin/bash

# Tomcat init script for linux.

# chkconfig: 2345 96 14

# description: The Apache Tomcat server/JSP container

JAVA_OPTS='-server -Xms64m -Xmx128m'

JAVA_HOME=/usr/java/jdk1.7.0_71

CATALINA_HOME=/usr/local/tomcat #指定tomcat家目录

$CATALINA_HOME/bin/catalina.sh $* #指定运行或关闭tomcat的脚本

[root@xuegod63tomcat]#ls /usr/local/tomcat/bin/catalina.sh

/usr/local/tomcat/bin/catalina.sh

说明:

JAVA_OPTS='-Xms64m-Xmx128m'#是用来设置JVM相关运行参数的变量。

-Xms:初始Heap(堆)大小,使用的最小内存,cpu性能高时此值应设的大一些

-Xmx:javaheap最大值,使用的最大内存上面两个值是分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议设为物理内存的一半。

3)设置开机启动: 

[root@xuegod63 ~]#chkconfig --add tomcat

[root@xuegod63 ~]# chkconfig --list tomcat

tomcat0:off1:off2:on3:on4:on5:on6:off

[root@xuegod63 ~]#chmod +x /etc/init.d/tomcat

[root@xuegod63 ~]#service tomcat start#启动tomcat服务

[root@xuegod63tomcat]#netstat –antup | grep 8080

tcp00:::8080:::*LISTEN4220/java

4)浏览器登录Tomcat测试:

通过浏览器访问tomcat所提供的网站,上面我们已经知道tomcat可以单独提供Web服务的。

http://192.168.1.63:8080/

实现JSP通过Tomcat连接MySQL_第2张图片 

点击【ManagerApp】,进入管理页面的时候,出现信息:

实现JSP通过Tomcat连接MySQL_第3张图片 

5)添加账号密码

[root@xuegod63 ~]# vim /usr/local/tomcat/conf/tomcat-users.xml #在文件最后改:

改:

为:

  

  

#添加用户角色: manager-gui。添加了用户:mk 密码:123456

6)重新启动tomcat服务并测试登录

[root@xuegod63 ~]#service tomcat stop

[root@xuegod63 ~]#service tomcat start

重新登陆,并使用设置的用户名和密码登陆,登陆后的界面如图:

实现JSP通过Tomcat连接MySQL_第4张图片 

7)安装tomcat-native

Tomcat 可以使用 apr 技术来提供更好的伸缩性、性能。用来提高tomcat的性能。

tomcat native在具体的运行平台上,提供了一种优化技术,它本身是基于ARP(Apache Portable(轻便) Runtime)技术 tomcat可以利用apache的apr接口,使用操作系统的部分本地操作,从而提升性能。 APR提升的是静态页面处理能力

详细介绍:http://tomcat.apache.org/native-doc/

依赖的软件包:apr-devel,openssl-devel

[root@xuegod64 tomcat]# yum install -y apr-devel openssl

[root@xuegod63 tomcat]# cd /usr/local/tomcat/bin

[root@xuegod63 bin]# ls tomcat-native.tar.gz #在这个目录下有tomcat-native.tar.gz文件

tomcat-native.tar.gz

[root@xuegod63 bin]# source /etc/profile

[root@xuegod63 bin]# tar -zxvf tomcat-native.tar.gz

[root@xuegod63 bin]# cd tomcat-native-1.1.23-src/jni/native/

[root@tomcat native]# ./configure --with-apr=/usr/ --with-ssl

[root@tomcat native]# make && make install

8)安装MySQL的连接器

[root@xuegod63 ~]# tar -zxvf mysql-connector-java-5.1.34.tar.gz

[root@xuegod63 ~]# cd mysql-connector-java-5.1.34

[root@xuegod63 mysql-connector-java-5.1.34]# ls

build.xml COPYING mysql-connector-java-5.1.34-bin.jar README.txt

CHANGES docs README src

[root@xuegod63 mysql-connector-java-5.1.34] cp mysql-connector-java-5.1.20-bin.jar /usr/local/tomcat/lib/ #复制过去这个jar包就可以了

[root@xuegod63 tomcat]# service tomcat stop

[root@xuegod63 tomcat]# service tomcat start

9)安装mysql:

[root@xuegod64 ~]# yum install mysql-server -y

[root@xuegod64 ~]# service mysqld restart

[root@xuegod64 ~]# mysqladmin -uroot password 123456 #设置密码

10)设置mysql数据库默认编码为utf8

[root@xuegod64 ~]# vim /etc/my.cnf # 在配置文件中添加红色标记内容

[client]

default-character-set=utf8

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

default-character-set=utf8

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

[root@xuegod64 ~]# service mysqld restart

11)创建测试数据库

注:确认上面是UFT8后,我们就来创建个测试数据库。注意您的终端也要是UTF8编码啊,否则中文会出现乱码!

[root@xuegod64 ~]# mysql -uroot -p123456

实现JSP通过Tomcat连接MySQL_第5张图片 

mysql> create database tomcat;

mysql> use tomcat;

mysql> create table tt(id int,name varchar(128));

mysql> insert into tt values(1,'mk');

mysql> insert into tt values(2,'xuegod');

ysql> grant all on tomcat.* to tomcat@localhost identified by 'tomcat';

mysql> exit

[root@xuegod64 ~]# mysql -utomcat -ptomcat #测试tomcat帐号。

12)测试主页:

[root@xuegod63 ROOT]# pwd

/usr/local/tomcat/webapps/ROOT

#注:复制时,删除多添加%号。如果,直接复制此段内容,最后两行的开头会多出个%,注意把他删除了。[root@xuegod63 ROOT]# vim test.jsp #写入以下内容:

<%@ page contentType="text/html;charset=utf-8"%>

<%@ page import="java.sql.*"%>

<%

Class.forName("org.gjt.mm.mysql.Driver").newInstance();

String url ="jdbc:mysql://localhost/tomcat?user=tomcat&password=tomcat&useUnicode=true&characterEncoding=utf-8";

Connection conn= DriverManager.getConnection(url);

Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

String sql="select * from tt";

ResultSet rs=stmt.executeQuery(sql);

while(rs.next()) {%>

step:<%=rs.getString(1)%>

context:<%=rs.getString(2)%>

<%}%>

<%out.print("Congratulations!!! JSP connect MYSQL IS OK!!");%>

<%rs.close();

stmt.close();

conn.close();

%>

 

测试

Httpd://192.168.1.63:8080/test.jsp

实现JSP通过Tomcat连接MySQL_第6张图片