解压缩下载的Tomcat压缩包,呈现的目录结构如下。

bin:目录存放一些启动和关闭Tomcat的可执行程序和相关内容。
conf:存放关于Tomcat服务器的全局配置。
lib:目录存放Tomcat运行或者站点运行所需的jar包,所有在此Tomcat上的站点共享这些jar包,如果需要扩展Tomcat功能,可以将第三方类库复制到该路径下。
logs:这是一个空路径,该路径用于保存Tomcat每次运行后产生的日志。
temp:保存Web应用运行过程中生成的临时文件。
wabapps:目录是默认的站点根目录,可以更改,用于自动部署Web应用,将Web应用复制到该路径下,Tomcat会将应用自动部署到容器中。
work:目录用于在服务器运行时过度资源,简单来说,就是存储jsp、servlet翻译、编译后的结果(class文件),该文件夹可以删除,但每次启动Tomcat服务器时,系统将再次建立该路径。
LICENSE等相关文档不怎么需要使用,故就不一一介绍。

修改默认端口

用文本编辑器打开conf目录下的server.xml,会发现下面这么一段,其中的8080就是默认端口,需要修改的话修改之后保存(建议使用1024以上的端口,避免与公用端口冲突),我设置的是8888,重启Tomcat即可!

    <Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

输入http://localhost:8888/,如下所以表现修改端口成功!

如上图所示,显示三个控制台:一个市Server Status控制台,另一个是Manager App控制台,还有一个市Host Manager控制台。Status控制台用于监控服务器的状态,而Manager控制台可以部署、监控Web应用,因此我们通常只使用Manager控制台即可。点击Manager App,显示登录界面,这个对应用户名和密码需要自己事先设置好,是通过Tomcat的JAAS(JAAS,全称Java Authentication Service,Java验证和授权API,它用于控制对Java Web应用的授权访问)控制的,设置方法如下:

进入conf文件夹,用文本编辑器打开tomcat-users.xml,在<tomcat-user></tomcat-user>之间添加如下代码:

<role rolename="manager-gui"/>
<user username="tufujie" password="123456" roles="manager-gui"/>

其中username对应用户名,password对应密码,可以自行修改。

修改后重启Tomcat登录Manager App,显示如下:

显示Web应用根路径下的所有页面

在Web应用的开发阶段,通常希望Tomcat能列出Web应用根路径下的所有页面,这样能更方便地选择需要调试的JSP页面。但是出于安全考虑,Tomcat并不会列出Web应用根路径下的所有页面,所有打开Tomcat的conf目录下的web.xml文件,搜索listings,将参数对应的值从false改为true,这样就能让Tomcat列出Web应用根路径下的所有页面。

 <init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>

部署Web应用

-》利用Tomcat自动部署->最常见、最简单的方式:将Web应用复制到Tomcat的webapps下,系统将会将该应用部署到Tomcat中。

-》利用控制台部署,实质依然是利用Tomcat的自动部署。

-》添加自定义的Web部署文件

部署相对复杂,在conf目录下新建Catalina文件夹,再在Catalina文件夹中新建localhost文件夹,在localhost文件夹中添加名字任意的XML文件,该文件就是部署Web应用的配置文件,该文件的主文件名将作为Web应用的虚拟路径。例如,我们在conf/Catalina/localhost下添加一个test.xml文件,该文件的内容如下:

<Context docBase-"G:\Eclipse\jsptest" debug="0" privileged="true">

</Context>

上面的配置文件中粗体字指定了Web应用的绝对路径,重启Tomcat,Tomcat将会把G:\Eclipse\路径下的servlettest文件夹部署成Web应用,我的该应用的地址是:http://localhost:8888/jsptest/。

-》修改server.xml,修改conf文件夹下的server.xml,修改该文件可能会破坏Tomcat的系统文件,不建议使用

配置Tomcat数据源

Tomcat提供两种配置数据源的方式,这两种方式所配置的数据源访问范围不同:一种数据源可以让所有的Web应用都访问,被称为全局数据源,使用全局数据源需要修改Tomcat原有的server.xml文件,所以可能导致破坏Tomcat系统,因此尽量避免使用全局数据源。另一种只能在单个的Web应用中访问,被称为局部数据源,局部数据源无需修改系统的配置文件,只需修改用户自己的Web部署文件,不会造成系统的的破坏,而且数据源被封装在一个Web应用之中,防止被其它的Web应用访问,提供了更好的封装性。建议采用这种。无论哪种方式,都需要提供特定数据库的JDBC驱动,将JDBC驱动程序也就是对应数据库的架包复制到Tomcat的lib路径下。例如:为上面的名为jsptest的应用添加局部数据源,修改Tomcat下conf/Catalina/localhost下的test.xml文件即可。为Context元素添加一个Resource子元素,增加的内容如下:

<!--其中name指定数据源在容器中的JNDI名,从而让其它程序可以通过改名字访问数据源对象,driverClassName指定链接数据库的驱动,url指定数据库服务的URL,username指定链接数据库的用户名,password指定链接数据库的密码,maxActive指定数据源最大活动连接数,maxIdle指定数据池中最大的空闲连接数,maxWait指定数据池中最大等待获取链接的客户端-->
<Resource name="jdbc/dstest" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/javaee" username="root" password="123456" maxActive="5" maxIdle="2" maxWait="10000"/>

其中javaee数据库中的代码如下:

drop database javaee;
create database javaee;
use javaee; create table news_inf
(
news_id int primary key auto_increment,
news_title varchar(255)
); insert into news_inf
values
(null , 'Java核心技术卷一'),
(null , 'Java核心技术卷二');

测试的JSP代码片段如下:

Tomcat详解的更多相关文章

  1. Tomcat详解及SNS系统的部署实现

    Tomcat详解及SNS系统的部署实现   http://jungege.blog.51cto.com/4102814/1409290

  2. Tomcat详解系列(1) - 如何设计一个简单的web容器

    Tomcat - 如何设计一个简单的web容器 在学习Tomcat前,很多人先入为主的对它的认知是巨复杂的:所以第一步,在学习它之前,要打破这种观念,我们通过学习如何设计一个最基本的web容器来看它需 ...

  3. Tomcat详解系列(2) - 理解Tomcat架构设计

    Tomcat - 理解Tomcat架构设计 前文我们已经介绍了一个简单的Servlet容器是如何设计出来,我们就可以开始正式学习Tomcat了,在学习开始,我们有必要站在高点去看看Tomcat的架构设 ...

  4. Tomcat详解系列(3) - 源码分析准备和分析入口

    Tomcat - 源码分析准备和分析入口 上文我们介绍了Tomcat的架构设计,接下来我们便可以下载源码以及寻找源码入口了.@pdai 源代码下载和编译 首先是去官网下载Tomcat的源代码和二进制安 ...

  5. day08:软件系统的体系结构&Tomcat详解&Web应用&http协议

        day08 软件系统体系结构     常见软件系统体系结构B/S.C/S 1.1 C/S C/S结构即客户端/服务器(Client/Server),例如QQ: 需要编写服务器端程序,以及客户端 ...

  6. Linux 安装 Tomcat 详解

    说明:安装的 tomcat 为解压版(即免安装版):apache-tomcat-8.5.15.tar.gz (1)使用 root 用户登录虚拟机,在根目录下的 opt 文件夹新建一个 software ...

  7. tomcat 详解

    首先搞清楚几个概念:Servlet容器与web容器.Servlet容器的主要任务是管理servlet的生命周期,而web容器更准确的说应该叫web服务器,它是来管理和部署web应用的.还有一种服务器叫 ...

  8. Servlet学习之web服务器Tomcat 详解

    Web服务器是什么 Web服务器是指驻留于因特网上某种类型计算机的程序.当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件发送到该浏览器上,附带的信息会告诉浏览器如何查看该文 ...

  9. tomcat 详解五 tomcat页面设置访问权限

    转自:http://blog.knowsky.com/191233.htm 在web应用中,对页面的访问控制通常通过程序来控制,流程为:登录 -> 设置session -> 访问受限页面时 ...

随机推荐

  1. [译]Java Thread join示例与详解

    Java Thread join示例与详解 Java Thread join方法用来暂停当前线程直到join操作上的线程结束.java中有三个重载的join方法: public final void ...

  2. JS实现图片翻书效果示例代码

    js 图片翻书效果.  picture.html  <html xmlns="http://www.w3.org/1999/xhtml">  <head>  ...

  3. Spark Streaming揭秘 Day11 Receiver Tracker的具体实现

    Spark Streaming揭秘 Day11 Receiver Tracker的具体实现 ReceiverTracker是运行在Driver上Receiver管理程序,今天让我们深入学习一下. 核心 ...

  4. thinkphp操作数据库

    1.实现or操作: $where=array( 'city'=>array('like',array('%'.$_GET['city'].'%')); 'hangye'=>array('l ...

  5. PL/SQL Developer编码格式设置及中文乱码解决方案

    1.PL/SQL Developer中文字段显示乱码 原因:因为数据库的编号格式和pl /sql developer的编码格式不统一造成的. 2.PL/SQL Developer编码格式设置详细的解决 ...

  6. List<t>中如何将指定元素的值放到第一位

    public static List<GCountryExtend> GetList() { try { var result = new List<GCountryExtend&g ...

  7. Cadence封装制作之表贴封装的制作

    以0805封装为例 1.打开PCB editor-> Allegro PCB Design XL 2.File -> New ① Drawing Type -> Package Sy ...

  8. SQL优化的四个方面,缓存,表结构,索引,SQL语句

    一,缓存 数据库属于 IO 密集型的应用程序,其主要职责就是数据的管理及存储工作.而我们知道,从内存中读取一个数据库的时间是微秒级别,而从一块普通硬盘上读取一个IO是在毫秒级别,二者相差3个数量级.所 ...

  9. 【学习总结】【多线程】 线程 & 进程 & NSThread(多线程的一套API)

    一.进程和线程 1.什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开 Chrome.Xcode,系统就会分别启动2个进 ...

  10. Android中Google地图路径导航,使用mapfragment地图上画出线路(google map api v2)详解

    在这篇里我们只聊怎么在android中google map api v2地图上画出路径导航,用mapfragment而不是mapview,至于怎么去申请key,manifest.xml中加入的权限,系 ...