虽然以前经常听人说起过tomcat,但是今天头一次使用tomcat。
1.Tomcat的安装过程:
首先应该从Apache官方网站上下载是用于Windows的.zip压缩包.
下面是相应的下载链接:
http://apache.etoak.com/tomcat/tomcat-7/v7.0.42/bin/apache-tomcat-7.0.42-windows-x64.zip
由于LZ的主机是64位的,所以就下载64位的apache tomcat版本。
在下载压缩包之后,在指定的路径下进行解压即可。
2.环境变量的设置
想在本地上运行tomcat的前提是已经安装好JDK了,
并且已经在环境变量的系统变量设置中将JAVA_HOME设置成功的基础上,
接下来就是设置TOMCAT_HOME了,
具体的操作如下图所示:
右键单击我的电脑,选择属性选项。
对于设置TOMAT_HOME是这样的,
环境变量设置之后,接下来就是通过XML文档对tomcat的相关属性
进行相应的设置了。
3.通过XML文件对Tomcat进行配置
Tomcat作为APache开源项目之一,与其他开源项目在文件夹以及路径的设置上面都是十分相似的。
Tomcat的配置文件夹为conf,进入到conf文件夹中之后可以发现有
server.xml
tomcat-users.xml
web.xml,
等一些其他类型的配置文件。
在这里我们只需要修改一下tomcat-users.xml这两个配置文件,
其余的配置文件不需要修改的。
如果想要修改端口号的话,是需要更改server.xml这个配置文件的。
在根据自身的情况对端口号进行修改之后,可以启动一下tomcat来查看一下情况。
进入到tomcat的bin这一个子目录的下面,
就会看到startup.bat由于当前的工作系统是windows的,
所以双击startup.bat就可以正常开启tomcat了。
如果主机系统是Linux的话呢,输入命令sh startup.sh
就可以启动tomcat了,不过在此之前需要将权限更改为777的。
对于LZ来说一开始启动tomcat后会出现console一闪而过的情况,
一开始还以为是tomcat的版本有些问题。
后来更换版本之后,问题依然存在,
于是打算查看一下一闪而过的控制台上面出现了什么信息提示。
如果能使控制台显示可以停留一下就可以看到提示信息了,
右键单击startup.bat,选择编辑按键,
然后进入到.bat的编辑面板上面。
在最后一行上面添加:
PAUSE
这样就查看控制台的提示信息了。
根据控制台的提示信息,得知原来是JAVA_HOME没有写在环境变量中。
原因是这个样子的,因为LZ使用的是NetBeans的开发环境,
所以,不必改写或是添加JAVA_HOME java程序也是照常可以运行的。
/*关于W7中的console
因为IDE环境中本身就会提供一个控制台,这个控制台应该是于当前操作系统是分开的。
而且W7的OS中的DOS并不是我们普遍所说的DOS系统,
它只是在模拟仿真DOS,而非是在W7中内嵌入DOS系统。
LZ的cmd窗口在切换路径的时候,并不会接收,于是使用power shell
来代替cmd窗口接收命令。
那就是开始->所有程序->附件 windows power shell->Windows PowerShell(x86)
选择这个就可以了。
接下来就会弹出一个类似于DOS的命令行界面,往里面输入命令,控制台就会全部接收了。
在LZ看来,运行对应的console应该是W7模拟的DOS操作系统的控制台所编写的,
因为是模拟的,所以具体的执行权限根据用户的身份权限有关系,LZ的W7是家庭版本所以权限有限,
并不能控制到当前W7系统的全部。
*/
在配置好JAVA_HOME之后呢,就可以再次运行tomcat了,
其实按照LZ的理解吧,tomcat实质上使用java 语言编写的,
是许多个.class文件的集合,当然为了加载方便这些.class文件已经被打包成了.jar文件。
所以如果想让它正确的运行的话,
也就是在tomcat运行的一开始,tomcat会上系统变量中寻找到JAVA_HOME
在当前系统中的路径,然后根据路径(JAVA_HOME)找到java的相应编辑器,
就是可以识别以及解析.class/.jar文件的相关程序。
然后通过该程序对.class/.jar文件进行加载,运行,这样下来的话tomcat就被成功的运行了。
4.开启tomcat
对于server.xml文件在未经过修改的情况下,
对于本地连接的端口号默认为8080,
所以在配置好了tomcat之后,可以通过浏览器对其进行检查。
通过双击startup.bat;
可以看到如下的显示说明tomcat运行成功:
打开Internet Explorer之后,在对应的地址栏中输入
5.Tomcat实现与数据库进行连接:
实现与数据库相连接,必须在tomcat中进行
创建一个用户然后设定登录密码,然后为其分配相关的权限。
使用记事本打开方式打开tomcat-users.xml文件。
在</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"/> -->
</tomcat-users>
根据上面的文档说明去掉注释前后的符号:""<!---->""
然后添加一个用户,这个用户在创建并分配密码和权限之后,
可以使用该用户名和密码来登录到mysql中,
登录mysql之后以该用户身份创建数据库,和数据库表。
这样tomcat就可以对其进行访问了。
去掉注释后,在</tomcat-users>的上一行添加你想创建用户的用户名,密码,以及所需要分配的权限。
不过要依照下面添加用户的格式,填写之后保存文件即可。
<user username="root2" password="zhu" roles="admin,manager"/>
然后在mysql中以该用户名称登录:
mysql -uroot2 -hlocalhost -p(enter)
Enter password: ***
不过LZ在这个地方进行的并不顺利, 于是改变了一下方法:
以root的身份进入到mysql中,
查看一下数据库中的所有用户的信息:
select user,host from mysql.user;
(不过这个是创建用户root2之后的截图)
create database school;
然后在mysql中创建与server.xml
同样的用户名以及登录密码所在主机名称并且针对数据库school
将与tomcat中的配置文件server.xml相同的信息用于mysql的数据库创建中,
create user "root2"; grant all on school to root2@localhost identified by "zhu";
这样的话,就以mysql和tomcat 就有了同样的用户名以及登陆密码,
这样的话,tomcat就可以很顺理成章的以root2的身份 登陆并访问mysql中的school database了,
又因为在mysql创建用户 root2 的时候 ,分配全部的对school数据库的权限了,
所以可以通过jsp来通过tomcat对数据库进行创建表,删除,更新等等的一些操作了。
那么,如何知道tomcat已经可以成功的连接到数据库了呢?
可以写一小段的.jsp代码来进行测试一下,
首先在路径下面创建一个记事本文件,然后调整属性让文件显示隐含文件类型名称,
将"新建文本文件.txt"修改为 "testjdbc.jsp",
接下来,我们对该testjdbc.jsp进行相应的编写:
打开文件testjdbc.jsp,向文件中添加如下内容:
<%@ page contentType="text/html;charset=GB2312" %> <%@ page import="java.sql.*" %> <HTML> <BODY> <% String driver="com.mysql.jdbc.Driver"; String url="jdbc:mysql://localhost:3306/school"; // 连接到 school 数据库 String userid="root2"; // 用户 String passwd="zhu"; // 密码 try{ Class.forName(driver); } catch(Exception e){ out.println(" 无法载入 "+driver+" 驱动程序 !"); e.printStackTrace(); } try { Connection con=DriverManager.getConnection(url,userid,passwd); if(!con.isClosed()) out.println(" 成功连接数据库 !"); con.close(); } catch(SQLException SQLe){ out.println(" 无法连接数据库 !"); } %> </BODY> </HTML>
用户名及登录密码还有所要连接的数据库可以根据实际的情况进行修改的,
既然jsp文件已经写好了,那么如何将其加载到tomcat
对其进行运行测试呢?
应该是将该testjdbc.jsp文件放到tomca的
webappsROOT的下面,接下来在Internet Exploer中的地址栏中输入:
http://localhost:8080/testjdbc.jsp
根据jsp脚本的编写,如果成功的连接到的mysql的话,就会有:
成功连接数据库!
这样的提示信息。
如果连接数据库失败的话:
无法连接数据库!
这样的提示信息。
如果总是连接失败的话,应该检查一下是否需要下载个mysql-connector什么的。
6.小结
这次在搭建tomcat的过程中学习到了很多知识,
个人觉得XML文档在开源项目中作为配置文档真的占有很大的比重,
如果有时间的话会专门系统的学习XML的一些语法规则的。
而且hive中的数据库的配置文件也是以XML写的。
其实,这次试验的目的是想要在本地搭建一个POJ平台的,
结果搭建后才知道,下载的POJ平台压缩包仅仅是个OJ,
相应的题集并不包含在其中的,最后虽然是正常显示了POJ的页面,
但是tomcat报了很多的错误,就LZ目前的水平看不懂tomcat报的那些错误的,
然后也懒得去apache的官网上面去查一些相关的报错信息,so....无奈的收工了。
LZ觉得吧......
POJ平台的搭建并不是很难,就是步骤比较的复杂,
而复杂的原因则是由于POJ平台系统中的许多环境变量是比较死板的,
没有任何的根据本地机器自动适配的优化措施。
例如tomcat只能安装在D:盘的下面,
mysql也只能安装在D:盘的下面。并且默认的8080端口必须要更改为80端口,等等。
用了整整一天,但是已经接触到了一直都想理解的tomcat了,还是很开心的。
下回还是专心AC吧,呵呵。