首页 / TOMCAT / Tomcat安装与优化
Tomcat安装与优化
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Tomcat安装与优化,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含11405字,纯文字阅读大概需要17分钟。
内容图文
一、 Tomcat介绍
Tomcat服务器是一个免费的开放源代码的web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是多的场合下被普遍使用,是开发和调试jsp程序的首选
可以这样认为,当一台服务器配置好apache服务器以后,可以利用apache服务器来响应我们的html页面的访问请求,而tomcat是 apahce 服务器的扩展,当你运行tomcat的时候实际上是作为一个apache独立的进程单独运行的,apache服务器为html页面提供服务的,而tomcat是运行jsp页面和servlet,另外tomcat也能具有处理html页面的功能,但是处理静态的能力没有apache处理好
Jsp:java服务器页面,是一个简化的servlet设计,在传统的HTML页面里面增加了java代码
jsp=html+java代码+jsp标签 (也就是html页面包含有java代码)
1、 tomcat组件
servlet(应用程序或者容器)是java提供的用于开发web服务器应用程序的一个组件,运行在服务器端,有servlet用于生成动态页面内容,servlet是平台独立的java类,编写一个servlet,实际上就是安装servlet规范编写一个java类
2、什么是servlet
Tomcat 处理请求和响应的过程是由servlet的程序来完成的,并且servlet是为例解决实现动态页面而衍生的东西,与我们之前了解的nginx或者apache想要实现动态页面需要和php服务器沟通的过程差不多,可以把servlet比作成php
Tomcat 是web应用服务器,是一个servlet/jsp容器,tomcat作为servlet容器,负责处理客户请求,并将servlet的响应传送给客户,而servlet是一种运行在java语言的服务器上的组件,servlet最常见的用途是扩展java web服务器功能,提供非常安全的,可以移植的(打包网页代码就可以在另外一个环境中运行,如linux系统跟windows环境),易于使用cgi替代品
3、Tomcat处理数据的流程:
(1)、浏览器发送请求数据
(2)、tomcat收到服务器的请求数据,由servlet容器处理并进行解析,并且把客户端的数据请求request改变成servlet request 交给后端的servlet 实例(或者或叫对象)
实例收到客户端的请求数据的请求对象,进行出处理客户端的请求,处理完成后将数据响应给servlet容器,响应servlet容器叫做servlet response
(3)、Servlet收到的实例的响应数据交给客户端
Servlet(tomcat)容器与servlet实例需要通过java servlet api接口进行通信,api接口是由开发人员在写代码的时候定义或者编写的
(1)Servlet和jsp的区别:
servlet请求和处理数据比较方便,但是页面处理完成的结果通过html标签返回给客户端数据非常麻烦,毫无格式的jsp显示数据非常方便,像html格式一样,但是封装页面数据比较麻烦
(2)tomcat的特点:
运行时占用的资源小,扩展性好,支持负载均衡和邮件服务器等开发应用系统常用的功能
二、部署Tomcat
export JAVA_HOME=/usr/local/java
<Context path="/WebProject" docBase="D:/WebProject" reloadable="true" />
path:浏览器访问时的路径名
docBase:web项目的WebRoot所在的路径,注意是WebRoot的路径,不是项目的路径。其实也就是编译后的项目
reloadble:设定项目有改动时,tomcat是否重新加载该项目
3、部署项目的第三种方法(apache-tomcat-7.0.52\conf\Catalina\localhost )
<Context docBase="D:/WebProject" reloadable="true" />
在浏览器输入路径:localhost:8080/xml文件名/访问的文件名
总结:
①、第一种方法比较普通,但是我们需要将编译好的项目重新 copy 到 webapps 目录下,多出了两步操作
②、第二种方法直接在 server.xml 文件中配置,但是从 tomcat5.0版本开始后,server.xml 文件作为 tomcat 启动的主要配置文件,一旦 tomcat 启动后,便不会再读取这个文件,因此无法再 tomcat 服务启动后发布 web 项目
③、第三种方法是最好的,每个项目分开配置,tomcat 将以\conf\Catalina\localhost 目录下的 xml 文件的文件名作为 web 应用的上下文路径,而不再理会 <Context>中配置的 path 路径,因此在配置的时候,可以不写 path。
通常我们使用第三种方法
protocol="org.apache.coyote.http11.Http11AprProtocol" <Connector executor="tomcatThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol" connectionTimeout="20000" enableLookups="false" redirectPort="8443" URIEncoding="UTF-8" />
启动以后查看日志 显示如下表示开启 apr 模式
其中:
其中:
<servlet> <servlet-name>default</servlet-name> <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>listings</param-name> <param-value>true</param-value><!-- 改成false --> </init-param> <load-on-startup>1</load-on-startup> </servlet>
4、访问日志设置
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
这样访问日志会记录到Logs中。
<error-page> <error-code>401</error-code> <location>/401.jsp</location> </error-page> <error-page> <error-code>404</error-code> <location>/404.jsp</location> </error-page> <error-page> <error-code>500</error-code> <location>/500.jsp</location> </error-page>
8、配置Log4j日志记录
# Output pattern : date [thread] priority category - message log4j.rootLogger=DEUBG, stdout, logfile log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender log4j.appender.logfile.File=${catalina.home}/logs/tomcat_app.log log4j.appender.logfile.layout=org.apache.log4j.PatternLayout log4j.appender.logfile.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n #3rd party library level log4j.logger.org.hibernate.cache=ERROR
9、关闭dns查询
可以看到如果把useURIValidationHack设成”false”,可以减少它对一些url的不必要的检查从而减省开销。
enableLookups=”false” : 为了消除DNS查询对性能的影响我们可以关闭DNS查询,方式是修改server.xml文件中的enableLookups参数值。
disableUploadTimeout :类似于Apache中的keeyalive一样
10、给Tomcat配置gzip压缩(HTTP压缩)功能
compression=”on” compressionMinSize=”2048″
compressableMimeType=”text/html,text/xml,text/javascript,text/css,text/plain”
HTTP 压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求网页后,从服务器端将网页文件压缩,再下载到客户端,由客户端的浏览器负责解压缩并浏览。相对于普通的浏览过程HTML,CSS,Javascript , Text ,它可以节省40%左右的流量。更为重要的是,它可以对动态生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等输出的网页也能进行压缩,压缩效率惊人。
1)compression=”on” 打开压缩功能
2)compressionMinSize=”2048″ 启用压缩的输出内容大小,这里面默认为2KB
3)noCompressionUserAgents=”gozilla, traviata” 对于以下的浏览器,不启用压缩
4)compressableMimeType=”text/html,text/xml” 压缩类型
最后不要忘了把8443端口的地方也加上同样的配置,因为如果我们走https协议的话,我们将会用到8443端口这个段的配置,对吧?
<!–enable tomcat ssl–> <Connector port=”8443″ protocol=”HTTP/1.1″ URIEncoding=”UTF-8″ minSpareThreads=”25″ maxSpareThreads=”75″ enableLookups=”false” disableUploadTimeout=”true” connectionTimeout=”20000″ acceptCount=”300″ maxThreads=”300″ maxProcessors=”1000″ minProcessors=”5″ useURIValidationHack=”false” compression=”on” compressionMinSize=”2048″ compressableMimeType=”text/html,text/xml,text/javascript,text/css,text/plain” SSLEnabled=”true” scheme=”https” secure=”true” clientAuth=”false” sslProtocol=”TLS” keystoreFile=”d:/tomcat2/conf/shnlap93.jks” keystorePass=”aaaaaa” />
注意:我们项目中使用e.printStackTrace();输出的异常会在控制台输出来,但是,不会记录到tomcat日志中。
而且,也不会记录到log4j的日志中。要想记录到log4j日志中,必须使用log4j输出来。
所以,实际上web项目中进行异常处理应该将e.printStackTrace();写写法多改成log4j的形式才对!
但是,实际项目中很多项目多偷懒使用了e.printStackTrace();方式输出异常。当出现异常的时候在控制台上查看一下就可以了,也不考虑实际运行时候的维护。假如有人不小心关了控制台,那么,你不就看不到异常了吗?
个人介意使用log4j的形式记入web异常!
原文:https://www.cnblogs.com/adududu/p/13991689.html
内容总结
以上是互联网集市为您收集整理的Tomcat安装与优化全部内容,希望文章能够帮你解决Tomcat安装与优化所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。