实现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、PHP、CGI、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整合的原理
作为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 IP:192.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的版本
[[email protected]~]#rpm-ivh jdk-7u71-linux-x64.rpm
[[email protected]~]#rpm –pql /root/jdk-7u71-linux-x64.rpm#通过查看jdk的信息可以知道jdk的安装目录在/usr/java
Linux export命令参数
功能说明:设置或显示环境变量。
语法:export[-fnp][变量名称]=[变量设置值]
例:
[[email protected] ~]# A="aaa"
[[email protected] ~]# echo $A
aaa
[[email protected] ~]# export B="bbb"
[[email protected] ~]# echo $B
bbb
3)修改环境变量:
[[email protected]~]#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#类路径
[[email protected]~]#source /etc/profile#使配置文件生效
4)验证java运行环境是否安装成功:
[[email protected]~]#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有两种安装方式,一种是直接解压就可以使用的二进制的文件。第二种是编译安装。采用第一种方法,因为在官网默认下载的便是第一种二进制的文件。
[[email protected] ~]# tar zxvf apache-tomcat-7.0.27.tar.gz
[[email protected] ~]# ls apache-tomcat-7.0.27/bin/ #执行文件在这个地方
[[email protected] ~]# mv apache-tomcat-7.0.27 /usr/local/tomcat/
[[email protected] ~]# cd /usr/local/tomcat/
[[email protected] tomcat]# vim webapps/ROOT/index.jsp #默认首页 ,网站根目录
注:/usr/local/tomcat/webapps/ROOT/ 网站根目录
2)为tomcat的启动创建一个Sysv的管理脚本
[[email protected] 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的脚本
[[email protected]]#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)设置开机启动:
[[email protected] ~]#chkconfig --add tomcat
[[email protected] ~]# chkconfig --list tomcat
tomcat0:off1:off2:on3:on4:on5:on6:off
[[email protected] ~]#chmod +x /etc/init.d/tomcat
[[email protected] ~]#service tomcat start#启动tomcat服务
[[email protected]]#netstat –antup | grep 8080
tcp00:::8080:::*LISTEN4220/java
4)浏览器登录Tomcat测试:
通过浏览器访问tomcat所提供的网站,上面我们已经知道tomcat可以单独提供Web服务的。
http://192.168.1.63:8080/
点击【ManagerApp】,进入管理页面的时候,出现信息:
5)添加账号密码
[[email protected] ~]# vim /usr/local/tomcat/conf/tomcat-users.xml #在文件最后改:
改:
<!--
<rolerolename="tomcat"/>
<rolerolename="role1"/>
<userusername="tomcat"password="tomcat"roles="tomcat"/>
<userusername="both"password="tomcat"roles="tomcat,role1"/>
<userusername="role1"password="tomcat"roles="role1"/>
-->
为:
<tomcat-users>
<!--
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
-->
<role rolename="manager-gui"/>
<user username="mk" password="123456" roles="manager-gui"/>
</tomcat-users>
#添加用户角色: manager-gui。添加了用户:mk 密码:123456
6)重新启动tomcat服务并测试登录
[[email protected] ~]#service tomcat stop
[[email protected] ~]#service tomcat start
重新登陆,并使用设置的用户名和密码登陆,登陆后的界面如图:
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
[[email protected] tomcat]# yum install -y apr-devel openssl
[[email protected] tomcat]# cd /usr/local/tomcat/bin
[[email protected] bin]# ls tomcat-native.tar.gz #在这个目录下有tomcat-native.tar.gz文件
tomcat-native.tar.gz
[[email protected] bin]# source /etc/profile
[[email protected] bin]# tar -zxvf tomcat-native.tar.gz
[[email protected] bin]# cd tomcat-native-1.1.23-src/jni/native/
[[email protected] native]# ./configure --with-apr=/usr/ --with-ssl
[[email protected] native]# make && make install
8)安装MySQL的连接器
[[email protected] ~]# tar -zxvf mysql-connector-java-5.1.34.tar.gz
[[email protected] ~]# cd mysql-connector-java-5.1.34
[[email protected] mysql-connector-java-5.1.34]# ls
build.xml COPYING mysql-connector-java-5.1.34-bin.jar README.txt
CHANGES docs README src
[[email protected] mysql-connector-java-5.1.34] cp mysql-connector-java-5.1.20-bin.jar /usr/local/tomcat/lib/ #复制过去这个jar包就可以了
[[email protected] tomcat]# service tomcat stop
[[email protected] tomcat]# service tomcat start
9)安装mysql:
[[email protected] ~]# yum install mysql-server -y
[[email protected] ~]# service mysqld restart
[[email protected] ~]# mysqladmin -uroot password 123456 #设置密码
10)设置mysql数据库默认编码为utf8
[[email protected] ~]# 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
[[email protected] ~]# service mysqld restart
11)创建测试数据库
注:确认上面是UFT8后,我们就来创建个测试数据库。注意您的终端也要是UTF8编码啊,否则中文会出现乱码!
[[email protected] ~]# mysql -uroot -p123456
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 [email protected] identified by ‘tomcat‘;
mysql> exit
[[email protected] ~]# mysql -utomcat -ptomcat #测试tomcat帐号。
12)测试主页:
[[email protected] ROOT]# pwd
/usr/local/tomcat/webapps/ROOT
#注:复制时,删除多添加%号。如果,直接复制此段内容,最后两行的开头会多出个%,注意把他删除了。[[email protected] ROOT]# vim test.jsp #写入以下内容:
<%@ page contentType="text/html;charset=utf-8"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%
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)%><br><br>
<%}%>
<%out.print("Congratulations!!! JSP connect MYSQL IS OK!!");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
测试
Httpd://192.168.1.63:8080/test.jsp