tomcat学习

1.tomcat的组件的概念

1.核心组件Connector:Connector是与web事件连接器,监听固定的端口,接收外部的请求。并将请求传递给Container,Container的处理结果再返回给web

2.核心组件Container:Container是一个servlert容器,内部有多层容器组成,它主要是管理servlet的生命周期,调用servlet的方法去处理相关的业务逻辑。

3.jasper:tomcat的一个jsp解析引擎,他主要是把jsp文件转换为java文件。并且编译为class文件。

4.Naming:他主要是个域名服务,他主要是把名称和对象联系起来,使我们能用名称来访问对象。

5.session:它主要是管理和创建session,和session的持久化,它这个其实可以自定义的,它并且支持session的一个集群。其实对于tomcat而言session是在内存里开辟的空间,在开发中我们经常用session存放一些临时的信息。

6.Loging:它主要是负责相关的日记记录。

7.jmx:它是基于javase中的一个技术规范,他主要是一个为应用程序,设备,系统等植入管理功能的框架。可以通过jmx来远程监控tomcat的运行状态。

8.server.xml中的三种种类型的server对应的端口:

1.shutdown:这个端口负责监听和关闭tomcat的请求。并且向这个端口发送关闭服务的命令字符串

2.connector:它主要建立了http请求,通过浏览器访问tomcat的服务器的时候,使用的就是这个连接器。他的默认端口为8080

3.另外一个connector:它主要负责和其他http服务建立连接,把tomcat和其他http集成,在集成的时候就要用到这个连接器。

9.Tomcat的数据库连接池

3.修改内存

4.热部署的三种方式

1.第一种方式:直接把war放在webapp目录上

2.第二种方式是在conf文件夹中的server.xml中配置:在host标签里面配置<Context  debug="0"  docBase="绝对路径"  path="路径名称"   reloadable="true" /> (标签中的debug中的值代表程序发生异常时候日记的精准程度,docBase代表的是程序的绝对路径,path代表的是项目的名称,reloadable代表的是是否自动加载新的文件或者修改的文件。

3.第三种方式是在conf文件夹中的Catalina文件夹中localhost文件夹中创建一个项目名称的xml文件。在里面配置

<Context docBase="C:UsersAdministratorDesktopTest" reloadable="true" />

总结:

①、第一种方法比较普通,但是我们需要将编译好的项目重新 copy 到 webapps 目录下,多出了两步操作

②、第二种方法直接在 server.xml 文件中配置,但是从 tomcat5.0版本开始后,server.xml 文件作为 tomcat 启动的主要配置文件,一旦 tomcat 启动后,便不会再读取这个文件,因此无法再 tomcat 服务启动后发布 web 项目

③、第三种方法是最好的,每个项目分开配置,tomcat 将以confCatalinalocalhost 目录下的 xml 文件的文件名作为 web 应用的上下文路径,而不再理会 <Context>中配置的 path 路径,因此在配置的时候,可以不写 path。

通常我们使用第三种方法

4.学习单点登录:

CAS源码下载:https://github.com/apereo/cas/releases/tag/v4.1.7

5.Tomcat的多域名访问:

1.有利于提高资源的利用率

2.配置多域名访问:利用ip地址来访问:在server.xml里中添加

<Host appBase="C:/Users/Administrator/Desktop/Test" name="xiaoqiang" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="." debug="0"/>
</Host>  

appBase代码war的目录 name代表网址前缀  

还需要在C:WindowsSystem32driversetchosts文件中添加 127.0.0.1 xiaoqiang 映射地址。

利用端口号来访问:在Service里面写:

<Connector connectionTimeout="20000" port="8083" protocol="HTTP/1.1" redirectPort="8443"/>
<Engine name="xiaoqiang" debug="0">
<Host appBase="C:/Users/Administrator/Desktop/Test" name="localhost" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="." debug="0"/>
</Host>
</Engine>
</Service>

实现多域名访问

6.Tomcat安全规范

初始化配置:关闭服务器的端口,隐藏版本信息,禁用tomcat管理界面,自定义错误页面,AJP端口管理,启用 cookie的httponly

通过telnet访问关闭服务器的端口来关闭服务器 telnet 127.0.0.1 8005  然后输入端口名称SHUTDOWN 。为了防止别人telnet来访问把你的tomcat关掉,可以在server.xml中修改8005端口的名字

隐藏版本信息:通过catalina.jar中的orgapachecatalinautilServerInfo.properties文件中修改版本号

禁用tomcat管理界面:给webapps中的ROOT创建一个别名

启用cookie的httponly 在conf中的context.xml中Context标签中添加 httponly="true"

原文地址:https://www.cnblogs.com/socketqiang/p/10803277.html