tomcat7支持websocket.0支不支持 standard-1.3的规范

Tomcat 7 只支持到JDK 1.6吗?_百度知道
Tomcat 7 只支持到JDK 1.6吗?
我有更好的答案
Tomcat 7可以支持到jdk1.7的。1、
查看系统版本 # uname –a //是64位系统,那么我们选择64位的JDKLinux 2.6.32-71.el6.x86_64 #1 SMP Fri May 20 03:51:51 BST
x86_64 x86_64 GNU/Linux2、
下载tomcat7和jdk1.7Tarbag专门放源码包,software专门放解压后的软件包# mkdir /usr/local/src/tarbag# mkdir /usr/local/src/software # cd /usr/local/src/tarbag# wget # wget3、
安装jdk(配置java环境)# tar -xzvf jdk-7u1-linux-x64.tar.gz# mv jdk1.7.0_01/ /usr/local/java配置java环境# vi /etc/profile加上以下信息export JAVA_HOME=/usr/local/javaCLASSPATH=/usr/local/java/lib/dt.jar:/usr/local/java/lib/tools.jarPATH=/usr/local/java/bin:$PATHexport PATH JAVA_HOME CLASSPATH查看是否成功# source /etc/profile# java
-version //看到1.7的字样说明安装成功了java version &1.7.0_01&Java(TM) SE Runtime Environment (build 1.7.0_01-b08)Java HotSpot(TM) 64-Bit Server VM (build 21.1-b02, mixed mode)4、
安装tomcat 7# tar –xzvf
apache-tomcat-7.0.22.tar.gz# mv apache-tomcat-7.0.22 /usr/local/tomcat75、
启动关闭tomcat7启动 # /usr/local/tomcat7/bin/startup.sh关闭# /usr/local/tomcat7/bin/shutdown.sh6、
开启tomcat测试
【0元入学,两周免费试听】
主营:培训【Python+人工智能,Java大数据,HTML5】
这个问题我怎么感觉没有意义呢JDK 和 Tomcat都是为了登陆web界面而用到的东西必须配套使用的要是出现了问题,,,把Tomcat重启一下就行了具体的和版本应该没有太大的关系我不是说版本不重要,只是出了问题和你提问的问题没有太大的关系好好考虑一下吧
我用的tomcat6和jdk1.7就可以,但是如果是tomcat7版本的话就不行了
本回答被网友采纳
不是只支持到1.6,是最低要求1.6版本的......
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Tomcat不同版本所对应的Servlet/JSP规范
上午在别人机器上做演示,写好 Servlet居然访问不了。后来回想叻下,觉得应该是Tomcat版本不一致的问题,我用的是Tomcat 7.0建的Project,他们大多数都是用的6.0的版本。回来又仔细测试叻下,发现果然是用到叻6.0版本不支持的特性。为叻省去在web.xml里指定URL的麻烦,我一般都是直接在Servlet里导入javax.servlet.annotation.*然后直接@WebServlet( "XX"
)完事,结果拿到别人的机子上死活读不出来,看来实际开发的话这个麻烦还是省不了的。下面是Apache官方网站给出的不同版本的Tomcat所对应的Servlet/JSP规范和JDK版本:
Servlet/JSP Spec
Tomcat version
release revision
Minimum Java Version
(archived)
(archived)
(archived)
(archived)
Apache官方对各版本的解释:
另外如果在桌面计算机上部署不同版本的Tomcat的话,CATALINA_HOME的值只能对应其中一个版本,就是说你要切换版本的话必须每次都要要去手动修改这个值然后重启服务器。
PS:上午做演示的时候那个谁谁一直在旁边嘀咕要用Eclipse部署,我只带叻Web应用手动部署不可以啊??看视频看傻叻吧~~
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。tomcat 7.0下载|Apache Tomcat 7.0下载v7.0.70 官方安装版_ IT猫扑网Tomcat7中文文档
作者:未知
来源:开源中国
Tomcat7中文文档
注:本文根据tomcat官网(tomcat.apache.org)tomcat7.0官方文档整理。
在开始学习之前,下载和安装 tomcat是必要的。(下载和安装tomcat之后的所有文档按照tomcat官网文档顺序)
(注:Tomcat7需要ja...
Tomcat7中文文档
注:本文根据tomcat官网(tomcat.apache.)tomcat7.0官方文档整理。
在开始学习之前,下载和安装tomcat是必要的。(下载和安装tomcat之后的所有文档按照tomcat官网文档顺序)
(注:Tomcat7需要java6及以上版本,请先安装java sdk。http://www.oracle.com/technetwork/java/javase/downloads/index.html.安装好后设置系统变量JAVA_HOME)
下载页面:http:// tomcat.apache.org 选7.0版的
以下是下载安装说明:
下载zip(pgp,md5) ,直接解压就可以了,无需安装。(启动tomcat:双击bin目录下的startup.bat文件。如果启动一闪而过,说明tomcat发现系统没安装Java或未正确设置JAVA_HOME系统变量。建议再下载一个tomcat增强的ARP。ARP这是一种让服务器更稳定,效率更高的增强的服务器技术。默认安装没有windows动态链接库tcnative-1.dll。所以tomcat启动时会提示没有找到ARP。下载存放到system32目录下即可。下载地址如下:http://labs.renren.com/apache-mirror/tomcat/tomcat-connectors/native/1.1.20/binaries/win32/)
双击“startup.bat”(注意不是startup.sh,startup.sh是UNIX系统用的)启动tomcat显示的信息就很“干净”了。
(启动显示的首页在tomcat主目录的webapps/ROOT里,ROOT是默认的Context(上下文)。)。关闭tomcat双击“shutdown.bat”。
Full docaumentation 是tomcat7说明文档(和官网一样的)
Deployer: 部署应用程序的工具
Extras:: 其他一些附加类库文件。
以下根据官网文档结构翻译成中文
Docs Home:文档主页
1) Introductiontomcat总体简要介绍
2) Setup介绍如何安装tomcat
3) First webapp第一个应用程序。介绍了Servlet 规范中web应用程序(web application)的概念,web application 的组织,文档机构,部署描述文件 (/WEB-INF/web.xml). 等
4) Deployer介绍了如何部署web application,预编译,和验证web application。
5) Manager利用Manager应用程序管理web application部署,以及在tomcat运行时重新部署
6) Realms and AAA介绍Realms(域)的概念,以及怎么配置权限管理。
7) Security Manager介绍怎么配置和使用Security Manager(安全管理器)
8) JNDI Resources介绍JNDI概念及如何定义
9) JDBC DataSources介绍了如何配置一个JNDI的JDBC数据源,以及一些流行数据库的配置方法。
10) Claoading介绍了如何加载类,以及怎样放置你的类。
11) JSPs介绍了Jasper的配置,JSP编译用法
12) SSL安装配置SSL(安全套接层),使用https协议。
13) SSI(服务器端包含)在tomcat中使用SSI(一种在HTML文件嵌入一些SSI指令,在网页加载时服务器端再解析这些指令的方法)
14) CGI通用网关接口。介绍tomcat如何配置CGI。
15) Proxy Support介绍有关代理的内容
16) MBean Descriptor介绍有关MBean内容。
17) Default Servlet默认的Servlet
18) Clustering(集群:是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。
19) Load Balancer负载均衡
20) Connectors连接模块,支持集群和负载均衡
21) Monitoring and Management监视管理tomcat
22) Logging有关日志的内容
23) APR/Nativetomcat一种实现更好性能,可扩张伸缩、更好集成的服务器技术
24) Virtual Hosting虚拟主机
25) Advanced IO
26) Additional Components附加组件
27) Mavenizedtomcat中如何利用Maven.
28) Security Considerations安全化方面的注意事项
29) Windows Service在Windows系统中将tomcat作为一种后台服务运行
30) Windows Authentication如何整合Windows系统的身份验证
31) Tomcat's JDBC Pooltomcat的数据库连接池技术,比common_dbcp更优的选择。
FAQ常见问题,里面有一些有用的编程经验。包括中文乱码处理,数据库连接等。
1)Introduction简单的一些介绍
Terminology 术语:
Context(一般叫上下文):简单的说: a Context is a web application.。一个Context就是一个web应用程序。
Directories and Files目录和文件:
文中$CATALINA_HOME代表你安装tomcat的目录。如果tomcat有多个实例就用$CATALINA_BASE区分。如果只有一个实例,$CATALINA_HOME和$CATALINA_BASE的意义是一样的。
Tomcat的目录及包含内容
/bin包含启动、关闭tomcat和其他一些脚本。.sh文件是UNIX系统用的,.bat是window系统用的,但功能是相同的。因为WIN32系统缺乏某些功能,因此在该目录下还包含一些辅助文件。
/conf包含一些配置文件和DTD文件,最重要的文件是server.xml,它是tomcat的主配置文件。
/logs日志目录,存放日志文件。
/webapps应用目录,你自己的web应用程序就放在这里。
(其实还包括 /lib(tomcat核心类库) /work(JVM临时文件目录[java.io.tmpdir]))
CConfiguringTomcat 配置tomcat
所有的配置文件在启动的时候会被读取,如果有配置文件有变动必须重启tomcat,以反映新的配置。
CWhere to Go for Help从哪里获得帮助
2) Setup(安装)
Windows环境的安装
Installation as a service。选择此项,在window系统将作为一个windows服务(service)来安装。如果安装过程中选中auto,则在window启动时将自动启动。出于安全考虑,建议为该服务建立一个单独的window账户,减少不必要的一些权限。
Java location: tomcat需要java环境。安装时,Tomcat会去读取window注册表或window的JAVA_HOME系统变量。
Tray icon: window右下角的托盘图标。如果作为tomcat作为serverice来运行,将不会出现托盘图标(但刚安装好后,选择立即启动时,会显示)。
安装程序将创建快捷方式来启动或配置tomcat,但要启动administration web application (用来管理tomcat配置的应用程序),必须先启动tomcat。
3) First webapp通过一个web应用,熟悉tomcat的基本结构
Installation
介绍了tomcat的安装以及一些工具的安装(Ant:一个类似make的工具,用来编译/运行/测试java程序,强烈推荐了解Ant,因为后面很多地方用到它。Ant介绍可见百度http://wenku.baidu.com/view/f21a8deb172ded630b1cb6d8.html. CVS:编程时的源代码控制工具,Concurrent Version System,方便维护源代码文档,适合多人开发时维护文档,有服务器端和客户端。百度介绍的很清楚:http://baike.baidu.com/view/20982.htm)
Deployment
Background背景
部署web应用到一个特定服务器时,将需要分配一个Context(比如/catalog),这样你就可以通过/catalog/index.html来访问你的网页了。
Standard Directory Layout一个web应用的标准目录结构
*.html, *.jsp, etc.放置HTML and JSP 网页以及css样式、图片等资料,大的项目可以再建立子目录。
/WEB-INF/web.xmlweb应用的部署文件,是个XML文件。在这个文件你可以你可以定义servlet和一些组件,还能够初始化参数,以及安全上的一些限制设置。
/WEB-INF/classes/在这个目录,放置java类文件,这些类文件是没有打包(JAR包)的类文件(servlet或非servlet类文件),放在这里的类必须和你的package目录结构一致。如类com.mycompany.mypackage.MyServlet ,目录就像下面/WEB-INF/classes/com/mycompany/mypackage/MyServlet.class
/WEB-INF/lib/在这个目录,放置java类文件(用JAR形式),比如第三方的类库和数据库连接用的JDBC驱动类库。
当你将一个应用程序安装到tomcat,WEB-INF/classes/ 和WEB-INF/lib/的类文件对于你特定的web应用程序里的其他类是可见的。 如果你将你所需要的所有类库放在这些位置,这将简化你的web应用程序的安装过程,而不必调整系统的类路径。(否则系统的类路径需要修改,不然import的类会找不到)
上述这些其实是Servlet API Specification, version 2.3章中的内容。
Shared Library Files共享文件库放在$CATALINA_HOME/lib目录中,共所有web 应用程序共享。JAR文件放在这里对web应用程序和tomcat内部代码都是可见的。web应用程序或tomcat用到的JDBC drivers放在这里是比较合理的。
tomcat预安装的共享类库包括Servlet 3.0andJSP 2.1APIs 和XML Parser APIs(一个XML解析器,符合JAXP(Java API for XML Parsing:用于分析XML的API)),这样你就可以在你的应用程序中用基于DOM-based 或 SAX-based方式处理XML文件。(DOM文档对象模型,SAX The Simple API for XML,一个循序存取XML的API)
Web Application Deployment Descriptor web应用部署描述
/WEB-INF/web.xml是部署描述文件。定义应用程序中服务器需要知道的一切东西(Context除外,它是部署的时候由管理员分配的)。
原文提供了一个web文件例子见:basic web.xml file,里面有每个元素的含义解释。Servlet包含了web.xml文件的DTD (文档类型描述),因此你的web.xml必须按照DTD的顺序声明。
Tomcat Context Descriptor tomcat的Context描述文件
/META-INF/context.xml用来定义tomcat特有的一些配置选项,如日志,数据源,session管理等,该文件必须包含一个&Context&元素。
This XML file must contain one Context element, which will be considered as if it was the child of the Host element corresponding to the Host to which the The Tomcat configuration documentation contains rmation on the Context element.(英文看不懂)
Deployment With Tomcat部署
$CATALINA_BASE 代表应用的基目录,相关的目录以它为根。如果你没有配置运行tomcat的多个实例 ,$CATALINA_BASE将被设置为$CATALINA_HOME。
要配置tomcat的多个实例,见百度。可以放在两个不同目录的tomcat软件,修改其中一个的端口即可,但不方便升级tomcat,因为两个tomcat软件都要升级。较好的做法是在同一个tomcat软件上运行多个实例,新建一个和tomcat目录一样的目录(比如在tomcat安装目录下新建一个web目录),但web目录只包括以下子目录(conf,logs,shared,webapps,work,temp),不包括bin、 lib目录。在/conf/server.xml中新建一个service元素,定义第二个实例,修改端口。然后在这个目录下写一个新的startup.bat文件(在bat文件中设置$CATALINA_BASE),用以启动tomcat。这样就可以启动另外一个tomcat实例了。
web应用要可执行,必须部署到servlet容器中(tomcat),即使是在开发期间。
几种部署的方法。
Copy unpacked directory hierarchy into a subdirectory in directory直接拷贝未打包的程序目录到$CATALINA_BASE/webapps/ ,tomcat将分配一个Context PATH给你(根据你的应用的子目录名),在开发期间,这是最快最容易的方法。安装和更新web应用后必须重启tomcat。
Copy the web application archive file into directory$CATALINA_BASE/webapps/.拷贝打包的web应用程序(war包)到$CATALINA_BASE/webapps/。如果拷贝时tomcat已经启动了,tomcat将自动解包,并且可执行。这种方式比较适合于从第三方来的打包的应用。注意:用这种方法部署,如果你想更新你的web应用,你必须删除tomcat自动解包的目录,并且将新的包覆盖原来的包。然后重启tomcat,反映你的变化。
Use the Tomcat "Manager" web application to deploy and undeploy web applications.利用Tomcat "Manager" web application部署。tomcat默认有一个Manager的web应用程序,这个应用程序的Context PATH是/manager.允许你在一个运行tomcat的服务器上部署或卸载应用程序,而不需要重启。
Use "Manager" Ant Tasks In Your Build Script. 利用在Ant的部署文件中的“Manager”任务(task)。tomcat包含一组自定义的Ant任务,这些任务被用于tomcat的部署。
Use the Tomcat Deployer. tomcat包含一个绑定到ant tasks的打包工具,可以在部署到服务器之前自动对JSPs(也是web应用程序的其中一部分)预编译。
Directory Structure目录结构
将源代码目录与原来tomcat部署的目录独立分开是一种很好的做法。它有很多优点,代码更容易管理、控制,部署更方便。你可以根据你喜欢的方式建立目录,下面是一种比较流行的目录结构:
docs/存放应用程序文档。
src/存放你的web应用程序特有的servlets, beans, and other Java classes源文件,如果有package,要注意目录与包名的一致。
web/存放一些静态内容,如HTML pages, JSP pages, JavaScript files, CSS stylesheet files, and images。这个目录成了你的web应用的根目录,
web/WEB-INF/这个目录包括:web.xml,自定义的tag库,已经其他你想放置的资源,虽然这个目录是根目录的子目录,但Servlet的规范不允许客户端直接访问该目录,因此这里是放置一些比较敏感且必要的信息的好地方,比如数据库的用户名和密码。
在开发期间,有两个目录是临时建立的。
build/当你执行Ant的一个默认build,这个目录将包含你的web应用程序包里文件的镜像。
dist/当你执行一个Ant的target目标时,这个目录将被建立,它将创建一个二进制的发行版本,包括你预先准备好的文档,版权等信息。
注意,不要在这两个目录编辑你的源文件,因为它们会被删除和重建。
Source Code
Source Code
Source Code
Source Code
External Dependencies外部的依赖
如何利用一些外部的依赖类库,不同的程序员有不同的方法,有的是拷贝一份外部依赖类库到每个应用程序的源代码控制文档。这会面临重大问题,特别是你要升级时,每个应用程序里你都要升级。
强烈推荐不要采取上面的做法,取而代之的,应该是将外部的依赖类库作为building应用程序的过程的一个部分,在Ant中设置build.xml文件里的build properties来配置要拷贝的文件目录,而不要担心外部类库升级问题。例子中的build.xml通过定义build properties,在类库修改时也不需要修改build.xml文件。
很多时候,系统管理员已经将这些类库放在了lib目录里,你根本不需要做什么,例子中的build.xml将自动为你建立一个包含这些文件的编译路径。
Source Code Control源代码控制
涉及到CVS使用的一些问题,不深究。
BUILD.XML Configuration FileProcesses
BUILD.XML配置文件
BUILD.XML被放置在源代码的顶层目录。介绍了build中常见的target。
Source Code
Deployment
Source Code
开发过程:建立Ant环境,建立源代码目录,编辑源代码和网页、构建web应用程序、测试应用程序、创建一个发布。
4) Deployer 部署
两种方式部署:
一、静态安装:在tomcat启动之前就安装好
二、动态安装:通过Tomcat Manager web application 管理程序安装或手工部署
Tomcat Manager 是一个部署应用程序,还有一种叫Client Deployer(客户端部署),这是基于命令行脚本的工具。
Installation
其实部署不需要安装任何东西,但如果你要用Client Deployer部署,则需要安装。Tomcat提供了一个Client Deployer(TCD),这个TCD没有在tomcat的核心包内,你需要单独下载安装(需要Ant)
A word on Contexts
在谈论部署问题时,Context这个概念必须要理解。简单的说一个Context 就是一个web应用程序。
为了在tomcat中配置Context,Context描述是必须的,这个描述放在一个XML文件里,这个文件里有一些与Context相关的配置,如命名资源,session等。在tomcat早起的版本中,Context描述也被放在tomcat的主配置文件Server.xml文件中,但是现在不推荐这样做(虽然这样它也可以正常工作)。
Context描述一般放在下面两个位置比较合理:
$CATALINA_BASE/conf/[enginename]/[hostname]/context.xml
$CATALINA_BASE/webapps/[webappname]/META-INF/context.xml
第一个文件名是[webappname].xml ;第二个文件名是context.xml。如果Context描述没有提供,tomcat将使用默认值配置这个Context。
官网接下去介绍了几种部署的方式。
这里重点讲一下Deploying on a running Tomcat server(在一个正在运行的tomcat服务器中部署)
假如Host 的autoDeploy属性是true,Host将会自动部署和更新web应用程序。拷贝WAR文件到web应用的根目录,web应用会自动展开的。假如web应用被更新了,tomcat会再部署,删除原来展开的目录,并重新展开新web应用WAR文件。注意如果unpackWARs属性是false,部署时就不会自动展开WAR文件。web.xml有变动也会重新部署,Context描述文件有变动或者添加到$CATALINA_BASE/conf/[enginename]/[hostname]/目录也会重新部署。
删除一个web应用的根目录就会卸载一个web应用
5) Manager
5) Manager(tomcat的一个管理用的web应用程序)
Introduction
在很多生产环境中,不必关闭和重启整个的容器而可以安装(或卸载或重载)一个的应用程序是很有用的。tomcat提供了一个专门管理用的web应用程序Manager.这个应用程序可以部署web应用、显示已经部署的应用、重载web应用、显式OS and JVM属性值、显示JNDI资源、停止或启动一个web应用、卸载一个应用。
tomcat默认安装有这个应用程序,manager.xml文件有这个应用的Context描述,如例子。&Context path="/manager" privileged="true"
docBase="/usr/local/kinetic/tomcat7/server/webapps/manager"&
&/Context&
有3种方式使用这个管理应用程序:
一是通过在浏览器中的使用管理界面;二是使用http形式的脚本,如http://{host}:{port}/manager/text/{command}?{parameters}
。脚本命令附加在http地址后面。三是通过ant的任务来操作。
Configuring Manager Application Aess(配置访问权限)
访问这个应用需要一个manager-script角色的用户并配置用户名和密码。
MemoryRealm tomcat默认将用户信息存放在$CATALINA_BASE/conf/tomcat-users.xml,如
&user name="craigmcc" password="secret" roles="standard,manager-script" /&
有manager-script角色的用户才能登录这个应用。
JDBCRealm如果你的用户信息存放在你自己的数据库中,只要赋予它manager-script角色就可以了。
JNDIRealm如果你的用户信息存放在目录中(通过LDAP),只要赋予它manager-script角色就可以了。
你还可以通过配置限定登录的IP地址。
官网下面介绍了如何使用Manager,此处不详解了。
6) Realms and AAA
Realm域其实就是一个访问权限的概念,也就是定义某个用户可以访问哪些资源,如网页等。
Realm定义在&Engine&、&Host&、&Context&代表不同的作用范围。
Digested Passwords(摘要式密码)
这是tomcat为了防止密码明码传输不安全而开发新技术,用某种算法对密码进行摘要,服务器上也对该密码用这种算法进行摘要,再进行比对,若一致就允许登录。
对Manager应用程序来说,tomcat没有给任何人分配manager-gui角色,只有管理员添加了这个角色,这个用户才能登录。
官网介绍了几种域的配置,下面重点讲解JDBCRealm。
JDBCRealm需要一个用户表,存放用户名和密码;还需要一个用户角色权限表,存放用户名和角色。这是一个典型的定义:
&Realm className="org.apache.catalina.realm.JDBCRealm"
driverName="org.gjt.mm.mysql.Driver"
connectionURL="jdbc:mysql://localhost/authority?user=dbuser&password=dbpass"
userTable="users" userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name"/&
其他几种域的配置方式也是大同小异。此处不详解。
7) Security Manager(安全性管理)
这章主要讲了tomcat在安全性上的管理。
JAVA的安全性管理可以在你用浏览器访问时阻止不信任的程序访问你的本地系统。Tomcat也可以使用安全管理性来保护你的服务器免受特洛伊网页侵害。
假如你授权他可以发布的人不小心将&% System.exit(1); %&这个指令放在JSP网页中,每次有人访问这个网页,tomcat就会退出。使用Java SecurityManager 就像多了一条防线,系统管理员可以使得tomcat更安全,更可靠。选择运行Java SecurityManager总比没有Java SecurityManager 明智。
Permissions
Permission类被用来定义:在一个类被tomcat加载的时候它有什么权限。
Standard Permissions所列的是JAVA中的Standard Permissions类。
Tomcat Custom Permissions
tomcat自定义的一个权限类:org.apache.naming.JndiPermission。用于控制访问JNDI资源。
这是tomcat自动部署时,自动建立的权限。
permission java.io.FilePermission "** your application context**", "read";
permission java.io.FilePermission
"** application working directory**", "read,write";
permission java.io.FilePermission
"** application working directory**/-", "read,write,delete";
这个定义允许它去读自己的静态资源,但不允许它使用文件去读取另外的文件。
Configuring Tomcat With A SecurityManager
Tomcat的安全策略文件 $CATALINA_BASE/conf/catalina.policy
Window下你可以通过%CATALINA_HOME%bincatalina start -security (Windows)这个指令启动带安全性管理的tomcat服务器。Configuring Package Protection in Tomcat
现在,你可以配置哪些tomcat的内部包是阻止被定义和访问的。
8) JNDI Resources
Introduction
Tomcat为每一个web应用程序提供了一个InitialContext实例,Java EE 在/WEB-INF/web.xml 文件提供了一组标准的元素,用于引用或定义resource。
web.xml configuration
这些定义的资源,可以被定义于你当前的WEB应用的WEB应用布署描述(/WEB-INF/web.xml)文件中的以下节点使用:
l &env-entry& :该值用来指定应用运行的环境入口(Environment entry),一个单值参数(a single-value parameter)可以用于配置应用程序如何操作。
l &resource-ref&:资源引用(Resource reference),典型的应用为JDBC DataSource、JavaMail Session,或者配置于Tomcat5中的自定义对象工厂。
l &resource-env-ref&:资源环境引用(Resource environment reference),增加于Servlet 2.4中的resource-ref校验,这种可以简化资源配置,不需要授权信息。
假如tomcat能够识别出使用一个合适的资源工厂创建资源,而不需要更进一步的配置信息,那么tomcat就用/WEB-INF/web.xml中的信息创建资源。
context.xml configuration
假如tomcat不能识别出一个合适的资源工厂去创建资源,或者需要额外的信息,那么tomcat还需要提供特殊的一些配置。Tomcat特殊的配置被放在&Context&元素中,这个元素可以放在$CATALINA_BASE/conf/server.xml 中,也可以放在每个web应用程序的META-INF/context.xml文件中。
&Environment&:相当于&env-entry&
&Resource&:相当于 &resource-ref&
&ResourceLink&:资源连接,可以指向&Server&元素中定义的&GlobalNamingResources&
&Transaction&:为在java:comp/UserTransaction中有效的初使化UserTransaction对象实例增加资源工厂。
假如一个资源被定义在&Context&中就没必要再在/WEB-INF/web.xml定义。然而,推荐保持入口放在/WEB-INF/web.xml。
同一个资源名称同时被定义在/WEB-INF/web.xml中的&env-entry&和&Context&中的&Environment&,只要&Environment& 允许(通过设置override属性为true),/WEB-INF/web.xml中的定义值优先。
Global configuration
Tomcat为global resources (全局资源)提供了一个单独的命名空间。global resources在$CATALINA_BASE/conf/server.xml中的&GlobalNamingResources&被定义。你可以使用这些资源(通过&ResourceLink&)。
假如一个资源被定义在&ResourceLink&就没必要再在/WEB-INF/web.xml定义。然而,推荐放在/WEB-INF/web.xml。
Using resources
InitialContext在一个web应用程序最开始的部署时被配置,它被当作一个可用的组件(只读的)。所有被配置的实体和资源都放在java:comp/env名字空间里。
// Obtain our environment naming context
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
// Look up our data source
DataSource ds = (DataSource)
envCtx.lookup("jdbc/EmployeeDB");
// Allocate and use a connection from the pool
Connection conn = ds.getConnection();
... use this connection to access the database ...
conn.close();
Tomcat Standard Resource Factories
Tomcat提供了一系列的标准资源工厂,同时又给你弹性灵活的配置(通过&Context&)而不必修改web应用程序或部署描述符文件。
注意:在标准资源工厂中,只有"JDBC Data Source"及"User Transaction"工厂可以移植到其它非TOMCAT平台,其它的标准资源工厂,包括你编写的自定义资源工厂,都只可以在TOMCAT下运行,不可以移植到其它的平台。
官网以下介绍了Generic JavaBean Resources、UserDatabase Resources、JavaMail Sessions、JDBC Data Sources等的配置和使用方法。
9) JDBC DataSources
Introduction
JNDI Datasource配置已经在JNDI-Resources-HOWTO中大篇幅的讲到,但从客户反馈的信息看,设置一些个别的细节配置还是很棘手。官网中提醒:下面的例子可能在tomcat7中要对JNDI resource 稍作修改才能用。这个指导文档假设你已经熟知ContextandHost和后面关于自动部署的知识。
Database Connection Pool (DBCP) Configurations
DBCP支持JDBC 2.0.。在运行JVM1.4的系统支持JDBC 3.0.
DBCP使用Commons Database Connection Pool,需要以下组件:
Commons DBCP
Commons Pool
这些类库被包含在$CATALINA_HOME/lib/tomcat-dbcp.jar中,只有connection pooling 需要的类被包含在里面,包名也更换了,以免混淆。
Preventing dB connection pool leaks(防止连接池泄漏)
数据库连接池别用来创建和管理数据库的连接。回收和重用已经存在的连接比新建一个连接的效率更高。
然而,这里有个问题。一个web应用程序应该能够正常的关闭ResultSet's, Statement's, and Connection's。而不能正常关闭这些资源将导致不能被重用,数据库连接池“泄漏”了。这最终将导致web应用程序中无连接可用。
为了配置一个DBCP DataSource,被遗弃的数据库连接被移除回收。
当可用连接不够时,DBCP 将还原和循环利用被遗弃的连接。
官网接着是各种数据库的连接例子。
Common Problems(通常碰到的问题)
关闭连接时要注意,代码如果不注意有可能关闭两次,导致错误。见例子。
10) Classloading
介绍了tomcat类的加载机制和原理。
Tomcat类加载的层次:Bootstrap(引导系统) System Common WebappX
加载顺序:
Bootstrap classes of your JVM
System class loader classes (described above)
/WEB-INF/classesof your web application
/WEB-INF/lib/*.jarof your web application
$CATALINA_HOME/lib
$CATALINA_HOME/lib/*.jar
XML Parsers and JSE 5
在Jse5众多的变化中,JSE 5JRE中包含了JAXP APIs和Xerces,这对使用自己的XML parser.是有影响的。
在tomcat前面的版本中你可以在$CATALINA_HOME/common/lib简单的替换XML parser。但是,在JSE5中,这样将不起作用。因为通常的类加载器派遣进程将总是选择JDK中指定的。
Tomcat通过Endorsed Standards Override Mechanism机制可以使用自己的XML parser. -Djava.endorsed.dirs=$JAVA_ENDORSED_DIRS
Introduction
Tomcat 7.0使用Jasper 2 Engine来实现JavaServer Pages 2.1(JSP 2.1规范)
Jasper 2被重新设计了。相比原版本提升了性能。
Configuration
默认,Jasper在开发web应用程序的时候被配置。
Jasper的servlet初始化参数在$CATALINA_BASE/conf/web.xml定义。
Known issues(目前已知存在的问题BUG)
在编译大的JSP文件时,有可能会出现java.lang.InternalError: name is too long to represent异常,你可以缩小JSP文件,也可以禁用SMAP,通过JSR-045支持的suppressSmap(true)属性。
Production Configuration
JSP主要的优化就是预编译JSP,然而有时是不可能的或不实际的,在这种情况,配置Jasper servlet就很关键了。
当你在生产机上使用Jasper 2时,你应该考虑作些改变。
Web Application Compilation
development(设置为开发模式)
Web Application Compilation
对于用JSPC(Apusic提供了jspc工具对JSP文件进行预编译,它的工作原理是首先对JSP源文件进行解析生成java文件,然后使用标准的Java编译器编译。)来编译web applications,用Ant是首选的方法。JSR-45 是这样规定的:JSP 被编译成 JAVA 代码时,同时生成一份 JSP 文件名和行号与 JAVA 行号之间的对应表(SMAP)。
当你更换tomcat版本时,重新编译你的JSP文件。在server runtime让PageContext pooling不可用。限制缓冲buffering。
12) SSL(讲解如何配置安全套接层,实现加密传输)
12)12)12)12)12)12)12)13) SSI
13) SSI13) SSI
SSI是嵌入HTML里的一些指令,在这些网页被请求的时候,由服务器端求值。它们允许你在HTML里增加动态生成的内容,而不必使用CGI程序,或其他技术。
SSI可以作为Servlet或Filter的支持,你只能选择其一,不能两者同时用。
org.apache.catalina.ssi.SSIServlet ,匹配的URL是*.shtml。
org.apache.catalina.ssi.SSIFilter,匹配的URL是*.shtml。
tomcat默认不支持SSI。
Installation
为了使用SSI Servlet或Filter,你只需去掉$CATALINA_BASE/conf/web.xml.中这些元素周围的注释标记即可。
Servlet Configuration配置SSI Servlet参数
Filter Configuration配置SSI Filter参数
Directives
SSI用HTML的注释的形式出现。这些指令在发送网页给客户端浏览器前被解释。
config- &!--#config timefmt="%B %Y" --& Used to set the format of dates and other items processed by SSI
echo- &!--#echo var="VARIABLE_NAME" --& will be replaced by the value of the variable.
exec- Used to run commands on the host system.
include- &!--#include virtual="file-name" --& inserts the contents
flastmod- &!--#flastmod file="filename.shtml" --& Returns the time that a file was lost modified.
fsize- &!--#fsize file="filename.shtml" --& Returns the size of a file.
printenv- &!--#printenv --& Returns the list of all the defined variables.
set- &!--#set var="foo" value="Bar" --& is used to assign a value to a user-defind variable.
if elif endif else- Used to create conditional sections. For example: &!--#config timefmt="%A" --& &!--#if expr="$DATE_LOCAL = /Monday/" --& &p&Meeting at 10:00 on Mondays&/p& &!--#elif expr="$DATE_LOCAL = /Friday/" --& &p&Turn in your time card&/p& &!--#else --& &p&Yoga class at noon.&/p& &!--#endif --&
CGI(Common Gateway Interface 通用网关接口)为一个web服务器定义了一种和外部程序(能够生成内容)交互的方式。通常是指CGI 程序 or CGI 脚本。
Tomcat's CGI多数兼容Apache httpd's,但有一些限制(比如只有一个cgi-bin目录)。
org.apache.catalina.servlets.CGIServlet. URL :"/cgi-bin/*".
tomcat默认不支持CGI.
Installation
要使用CGI,只需在$CATALINA_BASE/conf/web.xml.去掉相应的注释符(默认被注释掉了)。
Configuration
15) Proxy Support
15) Proxy Support
15)Proxy Support(下面的翻译来自网络)。
介绍 使用标准的Tomcat配置,web程序可以询问处理请求的服务器的名字和端口。当Tomcat使用 Coyote HTTP/1.1 Connector独立运行的时候,它能够报告包含在请求中的服务器名称和连接器监听的端口号。我们感兴趣的用于这个目的的API如下:
ServletRequest.getServerName(): 返回请求发送的服务器名称。 ServletRequest.getServerPort(): 返回请求发送的服务器端口。 ServletRequest.getLocalName(): 返回请求接收的IP接口的主机名。 ServletRequest.getLocalPort(): 返回请求接收的IP接口的端口号。
如果运行在一个代理服务器后,你也想通过这些函数取得这些值。特别,你想知道原始请求的端口,而不是连接器正在监听的端口。你可以使用&Connector&中的proxyName和proxyPort属性来配置这些值。 代理可以采用多种方式,下面将说明在几个通用情况下的代理配置。
Apache 1.3代理支持
Apache 1.3 支持一个可选模块 (mod_proxy) ,可以把web服务器配置成代理服务器。这个可以用来传送一个特定应用程序的request到一个tomcat 6实例,没必要配置一个web连接器,例如mod_jk。为了实现这个目的,你需要执行下面的一些步骤:
1. 配置你的Apache包含mod_proxy模块. 如果你正在通过源代码建构apache,最好是在./configure命令行包含--enable-module=proxy指令. 2. 如果httpd.conf中还没添加,加入如下指令,确保Apache启动时加载mod_proxy模块。
LoadModule proxy_module {path-to-modules}/mod_proxy.so
ddModule mod_proxy.c
LoadModule proxy_module {path-to-modules}/mod_proxy.so AddModule mod_proxy.c 3. 为你的Tomcat的web应用程序包含类似下面的两条指令到httpd.conf文件中。例如你的程序的上下文路径是/myapp:
ProxyPass /myapp http://localhost:8081/myapp
ProxyPassReverse /myapp http://localhost:8081/myapp
ProxyPass /myapp http://localhost:8081/myapp ProxyPassReverse /myapp http://localhost:8081/myapp 这个告诉Apache传送http://localhost/myapp/*形式的URLs 到Tomcat连接器监听的端口8081. 4. 给你的Tomcat添加一个特定的适当代理的连接器, 例如:
&Connector port="8081" ...
proxyName="www.mycompany.com"
proxyPort="80"/&
这个使web程序中的servlets把所有的代理请求发送到www.mycompany.com的80端口。 5. 忽略&Connector&中的proxyName 属性是可以的. 如果你这样做了, request.getServerName()返回值将是运行Tomcat的主机名. 在这个例子中, 是localhost. 6. 如果你也有一个监听8080的连接器, 到那个端口的请求都共享相同的虚拟主机名和web程序。 7. 你可能希望使用IP过滤功能让操作系统限制到8081的连接仅能来自Apache。 8. 另外, 你可以设置一系列应用程序仅能通过代理访问, 如下: *配置另一个 &Service& 仅包含一个&Connector& ,设置了代理端口. *为虚拟主机和程序配置适当的Engine, Host, and Context元素. *可选地, 使用IP过滤保护8081端口. 9. 当请求被Apache代理后,web服务器能够记录请求的存取日志。 因此,你通常应该禁止Tomcat中的存取日志。 当请求以这种方式被代理,所有到符合配置的应用程序的请求将交给Tomcat处理,包括静态内容。你可以使用mod_jk来提升性能,而不是使用代理。mod_jk可以配置成web服务器处理静态内容,而又不能处理在web应用程序描述符中 (/WEB-INF/web.xml)被过滤和安全限制的内容。
Apache 2.0代理支持
和Apache1.3相同的指令,除了在Apache2.0中你可以忽略 AddModule mod_proxy.c 指令。
16) MBean Descriptor
16) MBean Descriptor
16) MBean Descriptor
JMX:Java Management extensions(JMX)是SUN公司提出的一套管理框架。它定义了完整的框架体系、设计模式、API接口、基于网络的管理和监控服务等,通过这些可以对你的Java程序进行管理控制。
JMX管理框架依赖于核心的管理服务器。所谓管理服务器类似于代理,我们通过它去管理所有的受控对象。这样我们能够作最小的改动就使程序变得可管理。你的Java应用程序甚至可以简单到只增加几个方法然后作为可管理的对象(MBean)注册到JMX管理服务器上。这样你就可以利用JMX管理框架提供的标准接口去管理你的Java应用程序(例如你的EJB一样可以被JMX管理)。
17) Default Servlet
17) Default Servlet
默认Servlet是服务于静态资源和目录列表的。
18) Clustering(集群)
19) Load Balancer(负载均衡)
20) Connectors
AJP: AJP是定向包协议。因为性能原因,使用二进制格式来传输可读性文本。WEB服务器通过TCP连接和SERVLET容器连接。为了减少进程生成socket的花费,WEB服务器和SERVLET容器之间尝试保持持久性的TCP连接,对多个请求/回复循环重用一个连接。一旦连接分配给一个特定的请求,在请求处理循环结束之前不会在分配。换句话说,在连接上,请求不是多元的。这个使连接两端的编码变得容易,虽然这导致在一时刻会有很多连接。
21) Monitoring and Management
21) Monitoring and Management
22) Logging
24) Virtual Hosting
虚拟主机,就是在一个服务器上,定义多个主机名,但在DNS上对应的是同一个IP,浏览器访问时只能输入主机名(如:www.baidu1.com,www.baidu2.com),而不能输入IP访问。www.baidu1.com和www.baidu2.com就能对应到同一个服务器上的两个独立的web应用程序了。
25) Advanced IO
26) Additional Components
27) Mavenized
28) Security Considerations
29) Windows Service
30) Windows Authentication
26) Additional Components
31) Tomcat's JDBC Pool
Introduction
Tomcat的JDBC Pool(org.apache.tomcat.jdbc.pool)除DBCP外的另一种选择。
Tomcat的JDBC Pool有很多优点,12)12)如支持多线程,速度快等。
How to use
Tomcat connection pool已经做的尽可能简单了。对熟知commons-dbcp的人来说,转变很容易。
Additional features
initSQL validationInterval fairQueue
Inside the Apache Tomcat Container
工厂类:org.apache.tomcat.jdbc.pool.DataSourceFactory
Standalone
作为一个BEAN实例化。
Attributes
JNDI Factory and Type
Common Attributes(共同的属性,dbcp也有的)
Tomcat JDBC Enhanced Attributes(tomcat增强的属性)
Advanced usage(一些高级用法)
JDBC interceptors
Example: jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ConnectionSorg.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer" 相当于(会自动加前缀) jdbcInterceptors="ConnectionSStatementFinalizer"
还可以加属性。jdbcInterceptors="ConnectionSStatementFinalizer(useEquals=true)"
Code Example(代码示例)
以下是tomcat Configuration中一些Configuration
元素解释。
它使用户可以改变一个request和修改一个response. Filter 不是一个servlet,它不能产生一个response,它能够在一个request到达servlet之前预处理request,也可以在response离开servlet时处理response.换种说法,filter其实是一个“servlet chaining“(servlet 链).
一个filter包括:
  1. 在servlet被调用之前截获;
  2. 在servlet被调用之前检查
  3. 根据需要修改request头和request数据;
  4. 根据需要修改response头和response数据;
  5. 在servlet被调用之后截获.
  你能够配置一个filter 到一个或多个单个servlet或servlet组能够被多个filter 使用.几个实用的filter 包括:用户辨认filter,日志filter,审核filter,加密filter,符号filter,能改变xml内容的XSLT filter等.
  一个filter必须实现javax.servlet.
Source Code
Source Code
Source Code
Source Code
Source Code
Source Code
Source Code
Source Code
Source Code
Source Code
Source Code
Source Code
免责声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,也不承认相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,可以点击上方修改按钮,也欢迎发送邮件至:进行举报,并提供相关证据,工作人员会在5个工作日内联系您,一经查实,本站将立刻删除涉嫌侵权内容。}

我要回帖

更多关于 tomcat 7.0不支持 rar 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信