Tomcat是Java领域最著名的开源Web容器。(Web应用服务器)
安装Tomcat之前要安装好jdk。
登录http://tomcat.apache.org/,下载合适的Tomcat版本,建议不要下载安装文件,直接用压缩版,因为安装文件看不到启动、运行时控制台的输出,不利于开发者使用。
解压刚才的压缩包,可以看见有如下结构:
1、bin:存放启动和关闭Tomcat的命令的路径。
2、conf: 存放Tomcat的配置
3、lib:Tomcat服务器的核心类库,也可将第三方类库复制到该路径以便扩展Tomcat功能。
4、logs:保存每次Tomcat运行后产生的日志。
5、temp:保存Web应用运行过程中产生的临时文件。
6、webapps:该路径下自动部署Web应用,下文会在部署Web应用中会说,也准备写一篇blog模拟淘宝网三天免密登录的实现,通过详细案例说明。
7、work:保存Web应用在运行过程中编译生成的class文件,即便删除,每次运行Tomcat,系统会重新建立该路径。
新建一个系统变量 CATALINA_HOME,变量值为Tomcat安装目录。
在path里面添加%CATALINA_HOME%\lib;%CATALINA_HOME%\bin;
检查是否配置成功
在cmd控制台中输入startup能启动服务器
双击Tomcat安装目录下的bin目录startup.bat, 即可启动Tomcat
或者在cmd控制台输入startup.bat
启动之后打开浏览器,地址栏输入:localhost:8080
进入到这个界面就说明安装成功了。
ps:我经历过tomcat控制台乱码,我的解决方式:
regedit,打开注册表,如图找到 Tomcat目录,没有的话自己新建。
右击Tomcat新建一个32位的DWORD名称为CodePage,数值数据十进制65001
就是将原控制台编码格式由936GBK改为65001的UTF-8。
Tomcat默认的端口号是8080,如果8080端口已被占用,可以更改端口号。
安装目录下的conf下的server.xml
每一个元素代表一个服务,一个Tomcat可以运行多个服务,必须在不同的端口号提供不同的服务。建议使用1024以上的端口,以免造成冲突。更改port属性的值就可以了。
在tomcat网页的如图所示,有三个控制台,Status控制台是监控服务器状态,Manager控制台部署监控Web应用。我们一般只用Manager控制台。
点击Manager app,会弹出输入用户名密码登录界面。
进入\webapps\manager\WEB-INF目录下,打开Manager应用的配置文件有如下代码段:
HTML Manager interface (for humans)
/html/*
manager-gui
Text Manager interface (for scripts)
/text/*
manager-script
JMX Proxy interface
/jmxproxy/*
manager-jmx
Status interface
/status/*
manager-gui
manager-script
manager-jmx
manager-status
BASIC
Tomcat Manager Application
访问不同的资源需要不同的manager角色,如果需要访问匹配的/html/*的资源,给该用户分配一个manager-gui角色即可。
设置用户密码以文件的形式存放,打开conf目录下的tomcat-users.xml
tomcat-users xmlns="http://tomcat.apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
version="1.0">
目前没有配置任何的用户信息,所以弹出框中输入什么都不会登录成功。
tomcat-users xmlns="http://tomcat.apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
version="1.0">
据我所知在Tomcat中部署Web应用有如下几种:
1、Tomcat自动部署。
将一个Web应用(project)复制到webapps目录下,系统将会自动部署到Tomcat中。
2、控制台部署
上图所示,本质上也是自动部署,因为在webapps目录下也会多出你指定的web应用文件夹
3、利用一些集成开发工具
比如myeclipse,本质也是自动部署
4、增加自定义的Web部署文件
无需将web应用复制到webapps下,在conf目录下新建一个Catalina目录,在Catalina目录下新建localhost目录,新建一个名称为bingfeng(任意写)的xml文件。
文件内容如下:
启动服务器后,输入http://localhost:8080/bingfeng ,就可进入URI下的web应用。
5、修改server,xml文件
可能会破坏Tomcat系统文件,不推荐。
Tomcat提供了两种配置数据源的方式:
1、可以让所有的Web应用访问,称为全局数据源
2、只能单个Web应用访问,称为局部数据源
配置数据源,需要有jdbc驱动,我电脑上用的mysql数据库,将mysql数据库的jdbc驱动程序复制到Tomcat的lib目录下。驱动程序mysql官网应该找得到,我使用maven下载的。
无需修改系统的配置文件,只需修改自己的Web部署文件。
修改上文提到的conf/Catalina/localhost/bingfeng.xml
学过jdbc的读者很容易看懂这些属性,其中name属性:数据源在容器的JNDI名,即java命名目录接口。给Tomcat容器中的数据源起了一个名字,让其他程序可以通过该名字访问该数据源对象。
启动Tomcat服务器,该Web应用通过JNDIM名访问数据源,测试的jsp页面主要代码
//初始化Context
Context ct=new InitialContext();
/*
通过JNDI查找数据 JNDI为java:comp/env/test
java:comp/env/是Tomcat固定的 test是数据源名
*/
DataSource ds=(DataSource)ct.lookup("java:comp/env/test");
//连接数据库
Connection conn=ds.getConnecton();
Statement state=conn.createStatement();
ResultSet rs=state.executeQuery("select *from 表名");
while(rs.next())
{
out.println(rd.getString(1));
}
修改server.xml,配置与局部数据源相似,为了不去破坏Tomcat系统,尽量避免使用全局数据源
不用代码讲就是耍流氓
将Tomcat源码导入eclipse
关于Ant,请参考我的另一篇博文,Ant的安装与使用
关于Maven,请参考我的另一篇博文,
默认读者已经安装好Ant,eclipse,Maven。
下载Tomcat源码:https://tomcat.apache.org/download-90.cgi
解压到D:\tomcat\apache-tomcat-9.0.19-src,目录结构
1、在编译源码之前需要用Ant下载相关的依赖项目准备一个存放这些依赖项目的地方,例如D:\tomcat\basepath
2、要让ant工作起来,我们还要将apache-tomcat-9.0.19-src文件夹中的build.properties.default重命名为build.properties,并且打开它,修改base.path=D://tomcat/basepath
3、编译tomcat执行命令:ant。当编译完成后,我们可以查看目录D:\tomcat\apache-tomcat-9.0.19-src,
可以发现里面多了一个文件夹:output。
能在output/build/bin/startuo.bat成功启动服务器,说明Ant编译Tomcat成功。
1、打开eclipse,新建一个java项目Tomcat
2、import->file system
在From directory选择tomcat源码,选择java和test(如果你需要测试的话选择test),如下图:
将java、test设置成source folder,java build path ->Source->Add folder…->选择java和test。
现在项目结构如下图所示:
上面那些不爽的红叉是因为缺少jar的原因,添加jar包。
导入导致红xx的依赖包:
ant.jar:在你安装的ant目录:ANT_HOME/lib下。
jaxrpc.jar:在eclipse下的/plugin/ javax.xml.rpc_xxx(版本号)/lib/目录下。org.eclipse.jdt.core_3.10.2.v20150120-1634.jar:在eclipse的plugin目录下,版本不同,名字可能不同。
wsdl4j-1.5.1.jar:在之前导出的
右键tomcat8->Build Path->Configuration Build Path。导入上面的几个包!