Tomcat下载安装配置以及源码编译

Tomcat是什么?

Tomcat是Java领域最著名的开源Web容器。(Web应用服务器)

安装Tomcat

安装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

双击Tomcat安装目录下的bin目录startup.bat, 即可启动Tomcat
或者在cmd控制台输入startup.bat
启动之后打开浏览器,地址栏输入:localhost:8080
进入到这个界面就说明安装成功了。
在这里插入图片描述
ps:我经历过tomcat控制台乱码,我的解决方式:
regedit,打开注册表,如图找到 Tomcat目录,没有的话自己新建。
在这里插入图片描述
右击Tomcat新建一个32位的DWORD名称为CodePage,数值数据十进制65001
就是将原控制台编码格式由936GBK改为65001的UTF-8。

配置Tomcat服务端口

Tomcat默认的端口号是8080,如果8080端口已被占用,可以更改端口号。
安装目录下的conf下的server.xml
每一个元素代表一个服务,一个Tomcat可以运行多个服务,必须在不同的端口号提供不同的服务。建议使用1024以上的端口,以免造成冲突。更改port属性的值就可以了。

 <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
进入控制台

在这里插入图片描述
在tomcat网页的如图所示,有三个控制台,Status控制台是监控服务器状态,Manager控制台部署监控Web应用。我们一般只用Manager控制台。
点击Manager app,会弹出输入用户名密码登录界面。

如何为控制台配置用户名和密码

进入\webapps\manager\WEB-INF目录下,打开Manager应用的配置文件有如下代码段:

<security-constraint>
    <web-resource-collection>
      <web-resource-name>HTML Manager interface (for humans)</web-resource-name>
      <url-pattern>/html/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
       <role-name>manager-gui</role-name>
    </auth-constraint>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Text Manager interface (for scripts)</web-resource-name>
      <url-pattern>/text/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
       <role-name>manager-script</role-name>
    </auth-constraint>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>JMX Proxy interface</web-resource-name>
      <url-pattern>/jmxproxy/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
       <role-name>manager-jmx</role-name>
    </auth-constraint>
  </security-constraint>
  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Status interface</web-resource-name>
      <url-pattern>/status/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
       <role-name>manager-gui</role-name>
       <role-name>manager-script</role-name>
       <role-name>manager-jmx</role-name>
       <role-name>manager-status</role-name>
    </auth-constraint>
  </security-constraint>
  <!-- Define the Login Configuration for this Application -->
  <login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>Tomcat Manager Application</realm-name>
  </login-config>

访问不同的资源需要不同的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>

目前没有配置任何的用户信息,所以弹出框中输入什么都不会登录成功。

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">
<!-- 添加一个角色 -->
<role rolename="manager-gui"/>
<!-- 添加一个用户 -->
<user username="bingfeng" password="123" roles="manager-gui"/>
</tomcat-users>

这样就可以登录成功了,进行对应用的管理以及部署,如下页面:
在这里插入图片描述

部署Web应用

据我所知在Tomcat中部署Web应用有如下几种:
1、Tomcat自动部署。
将一个Web应用(project)复制到webapps目录下,系统将会自动部署到Tomcat中。
2、控制台部署
上图所示,本质上也是自动部署,因为在webapps目录下也会多出你指定的web应用文件夹
3、利用一些集成开发工具
比如myeclipse,本质也是自动部署
4、增加自定义的Web部署文件
无需将web应用复制到webapps下,在conf目录下新建一个Catalina目录,在Catalina目录下新建localhost目录,新建一个名称为bingfeng(任意写)的xml文件。
文件内容如下:

<Context docBase="web应用的URI"  debug="0" privileged="true">
</Context>

启动服务器后,输入http://localhost:8080/bingfeng ,就可进入URI下的web应用。
5、修改server,xml文件
可能会破坏Tomcat系统文件,不推荐。

配置Tomcat数据源(访问数据库)

Tomcat提供了两种配置数据源的方式:
1、可以让所有的Web应用访问,称为全局数据源
2、只能单个Web应用访问,称为局部数据源
配置数据源,需要有jdbc驱动,我电脑上用的mysql数据库,将mysql数据库的jdbc驱动程序复制到Tomcat的lib目录下。驱动程序mysql官网应该找得到,我使用maven下载的。

局部数据源

无需修改系统的配置文件,只需修改自己的Web部署文件。
修改上文提到的conf/Catalina/localhost/bingfeng.xml

<Context docBase="web应用的URI"  debug="0" privileged="true">
<Resource name="test"  auth="Container" type="javax.sql.DataSource"
                   driveClassName="com.mysql.jdbc.Driver"
                   url="jdbc:mysql://localhost:3306/数据库名"
                   username=“root”  password="123456"  maxActive="5"
                   maxIdle="2"      maxWait="10000"/>
</Context>

学过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的核心思想(主要方面)

不用代码讲就是耍流氓
将Tomcat源码导入eclipse

1、使用Ant编译tomcat源码

关于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成功。

2、接下来就是将Tomcat源码导入eclipse

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。导入上面的几个包!
在这里插入图片描述

等下再写

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值