tomcat简介(TOmcat找不到应用程序)

      最后更新:2023-10-05 06:45

      tomcat可以运行php吗

      tomcat可以运行php,不过需要配置一下。方法如下:将php解压到tomcat的根目录下,将文件夹名字改为php把php.exe所在的路径加入到path中将php.ini-development 复制一份。改名php.ini打开 extension_dir = "ext" 这个选项修改cgi.force_redirect 为这样 cgi.force_redirect  = 0修改tomcat/conf/context.xml文件将加上 privileged="true" 属性即:在中加入phporg.apache.catalina.servlets.CGIServletclientInputTimeout200debug0executableD:tomcatphpphp-cgi.exepassShellEnvironmenttruecgiPathPrefixWEB-INF/phpbin5    php/phpbin/*重启tomcat服务:在webappsROOTWEB-INF 下新建一个phpbin的文件夹在下面新建一个index.php
      tomcat可以运行php吗

      tomcat Setup安装问题?

      一:简介 tomcat是jakarta项目中的一个重要的子项目,其被JavaWorld杂志的编辑选为2001年度最具创新的java产品(Most Innovative Java Product),同时它又是sun公司官方推荐的servlet和jsp容器(具体可以见http://java.sun.com/products/jsp/tomcat/),因此其越来越多的受到软件公司和开发人员的喜爱。servlet和jsp的最新规范都可以在tomcat的新版本中得到实现。二:安装及配置tomcat最新版本为4.0.1,这个版本用了一个新的servlet容器Catalina,完整的实现了servlet2.3和jsp1.2规范。注意安装之前你的系统必须安装了jdk1.2以上版本。(一):安装1:windows平台从tomcat网站下载jakarta-tomcat-4.0.1.exe,按照一般的windows程序安装步骤即可安装好tomcat,安装时它会自动寻找你的jdk和jre的位置。2:linux平台下载jakarta-tomcat-4.0.1.tar.gz,将其解压到一个目录。(二):配置运行tomcat需要设置JAVA_HOME变量set JAVA_HOME=c:/jdk (win98,在msdos方式下使用,或者放入autoexec.bat中)export JAVA_HOME=/usr/local/jdk (linux下使用,放到/etc/bashrc或者/etc/profile中)(三):运行设置完毕后就可以运行tomcat服务器了,进入tomcat的bin目录,win98下用startup启动tomcat,linux下用startup.sh,相应的关闭tomcat的命令为shutdown和shutdown.sh。启动后可以在浏览器中输入http://localhost:8080/测试,由于tomcat本身具有web服务器的功能,因此我们不必安装apache,当然其也可以与apache集成到一起,下面会介绍。下面你可以测试其自带的jsp和servlet示例。三:应用(一):目录结构tomcat的目录结构如下:目录名: 简介bin : 存放启动和关闭tomcat脚本conf : 包含不同的配置文件,server.xml(Tomcat的主要配置文件)和web.xmlwork : 存放jsp编译后产生的class文件webapp: 存放应用程序示例,以后你要部署的应用程序也要放到此目录logs : 存放日志文件lib/japser/common : 这三个目录主要存放tomcat所需的jar文件(二):server.xml配置简介下面我们将讲述这个文件中的基本配置信息,更具体的配置信息见tomcat的文档server:port 指定一个端口,这个端口负责监听关闭tomcat的请求shutdown 指定向端口发送的命令字符串service:name 指定service的名字Connector (表示客户端和service之间的连接):port 指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求minProcessors 服务器启动时创建的处理请求的线程数maxProcessors 最大可以创建的处理请求的线程数enableLookups 如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址redirectPort 指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理connectionTimeout 指定超时的时间数(以毫秒为单位)Engine (表示指定service中的请求处理机,接收和处理来自Connector的请求):defaultHost 指定缺省的处理请求的主机名,它至少与其中的一个host元素的name属性值是一样的Context (表示一个web应用程序,通常为WAR文件,关于WAR的具体信息见servlet规范):docBase 应用程序的路径或者是WAR文件存放的路径path 表示此web应用程序的url的前缀,这样请求的url为http://localhost:8080/path/****reloadable 这个属性非常重要,如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,我们可以在不重起tomcat的情况下改变应用程序host (表示一个虚拟主机):name 指定主机名appBase 应用程序基本目录,即存放应用程序的目录unpackWARs 如果为true,则tomcat会自动将WAR文件解压,否则不解压,直接从WAR文件中运行应用程序Logger (表示日志,调试和错误信息):className 指定logger使用的类名,此类必须实现org.apache.catalina.Logger 接口prefix 指定log文件的前缀suffix 指定log文件的后缀timestamp 如果为true,则log文件名中要加入时间,如下例:localhost_log.2001-10-04.txtRealm (表示存放用户名,密码及role的数据库):className 指定Realm使用的类名,此类必须实现org.apache.catalina.Realm接口Valve (功能与Logger差不多,其prefix和suffix属性解释和Logger 中的一样):className 指定Valve使用的类名,如用org.apache.catalina.valves.AccessLogValve类可以记录应用程序的访问信息directory 指定log文件存放的位置pattern 有两个值,common方式记录远程主机名或ip地址,用户名,日期,第一行请求的字符串,HTTP响应代码,发送的字节数。combined方式比common方式记录的值更多注意:1:经过我测试,我设置Context 的path="",reloadable=true,然后放一个WAR文件到webapps目录,结果tomcat不能检测出此文件(重起tomcat可以),而把此文件解压,则tomcat会自动检测出这个新的应用程序。如果不能自动检测WAR文件,我们可以利用下面管理中讲的方法来部署应用程序。2:默认的server.xml中,Realm元素只设置了一个className属性,但此文件中也包含几个通过JDBC连接到数据库进行验证的示例(被注释掉了),通过Realm元素我们可以实现容器安全管理(Container Managed Security)。 3:还有一些元素我们没有介绍,如Parameter,loader,你可以通过tomcat的文档获取这些元素的信息。
      tomcat Setup安装问题?

      深入剖析Tomcat的作者简介

      Budi Kurniawan是《Java for Web With Servlets, JSP and EJB》的作者,同时也是一位IT咨询师,主要研究方向包括互联网与面向对象程序设计。除了其他一些计算机图书,他已经在10多种出版物上发表了约100篇文章,其中包括一些享有盛誉的Java杂志,如《Java-net》、《JavaPro》、《JavaWorld》等。Budi也是Brainysoftware-com的应用程序File Upload Bean的作者,在世界范围内很多公司都获得授权并使用该应用程序。Paul Deck是一个有15多年经验的IT架构师,参与了很多项目的开发,这些项目遍布在美国、加拿大、中国和澳大利亚。他喜欢旅行,对网络、互联网编程、设计模式和用户界面交互设计非常感兴趣。
      深入剖析Tomcat的作者简介

      Tomcat工作原理解析

      本文主要讲解Tomcat启动和部署webapp时的原理和过程,以及其使用的配置文件的详解。主要有三大部分: 1.Tomcat的简介和启动过程2.Tomcat部署webapp3.Tomcat处理一个http请求的过程【简介】Tomcat依赖/conf/server.xml这个配置文件启动server(一个Tomcat实例,核心就是启动容器Catalina)。Tomcat部署Webapp时,依赖context.xml和web.xml(/conf/目录下的context.xml和web.xml在部署任何webapp时都会启动,他们定义一些默认行为,而具体每个webapp的  META-INF/context.xml  和  WEB-INF/web.xml  则定义了每个webapp特定的行为)两个配置文件部署web应用。第一部分、Tomcat的简介和启动过程一个标准TOMCAT结构目录如上图所示:BIN目录主要存放各种平台下启动和关闭Tomcat的脚本文件.其中 有个档是catalina.bat,打开这个windos配置文件,在非注释行加入JDK路径,例如 : SET  JAVA_HOME=C:j2sdk1.4.2_06 保存后,就配置好tomcat环境了. startup.bat是windows下启动tomcat的文件,shutdown.bat是关闭tomcat的文件.conf: 存放不同的配置文件(如:server.xml和web.xml);server.xml文件:该文件用于配置和server相关的信息,比如tomcat启动的端口号、配置host主机、配置Contextweb.xml文件:部署描述文件,这个web.xml中描述了一些默认的servlet,部署每个webapp时,都会调用这个文件,配置该web应用的默认servlet。tomcat-users.xml文件:配置tomcat的用户密码与权限。context.xml:定义web应用的默认行为。/lib:存放Tomcat运行需要的库文件(JARS);/logs:存放Tomcat执行时的LOG文件;/temp:   临时目录/webapps:Tomcat的主要Web发布目录(包括应用程序示例);/work:存放jsp编译成Servlet后产生的class文件;二、Tomcat启动过程1、开启Tomcat:可以在IDE中启动Tomcat的服务器,也可以手动在 /bin/目录下找到startup.bat并双击,然后程序就会依次执行以下步骤:(1)引导(Bootstrap)启动: 调用了org.apache.catalina.startup.Bootstrap.class中的main方法,开始启动Tomcat容器;main方法如下:publicstaticvoid main(String args[]) {if(daemon ==null) {daemon =newBootstrap();//创建了一个引导对象try{//引导对象初始化,即创建了Catalina容器                daemon.init();} catch (Throwable t) {t.printStackTrace();return;}}// 根据不同的命令参数执行try {String command = "start";if(args.length > 0) {command = args[args.length - 1];}if(command.equals("startd")) {args[args.length - 1] = "start";daemon.load(args);daemon.start();} elseif(command.equals("stopd")) {args[args.length - 1] = "stop";daemon.stop();} elseif(command.equals("start")) {daemon.setAwait(true);daemon.load(args);daemon.start();} elseif(command.equals("stop")) {daemon.stopServer(args);} else {log.warn("Bootstrap: command "" + command + "" does not exist.");}} catch (Throwable t) {t.printStackTrace();}}publicvoid init()throws Exception{// Set Catalina path// 设置catalina_home属性,tomcat启动脚本里有通过-Dcatalina.home设置          setCatalinaHome();// 设置catalina_base属性,运行多实例的时候该目录与catalina_home不同          setCatalinaBase();// 初始化classloader,读取conf/catalina.properties,根据指定的repository创建classloader// 有三个classloader 分别是common、catalina、shared,tomcat6中三个相同          initClassLoaders();// 设置当前线程的classloader          Thread.currentThread().setContextClassLoader(catalinaLoader);// 待研究          SecurityClassLoad.securityClassLoad(catalinaLoader);// 以下通过反射调用Catalina中的方法// Load our startup class and call its process() method  if (log.isDebugEnabled())log.debug("Loading startup class");Class startupClass =catalinaLoader.loadClass("org.apache.catalina.startup.Catalina");Object startupInstance = startupClass.newInstance();// Set the shared extensions class loader  if (log.isDebugEnabled())log.debug("Setting startup class properties");String methodName = "setParentClassLoader";Class paramTypes[] =newClass[1];paramTypes[0] = Class.forName("java.lang.ClassLoader");Object paramValues[] =newObject[1];paramValues[0] = sharedLoader;Method method =startupInstance.getClass().getMethod(methodName, paramTypes);method.invoke(startupInstance, paramValues);catalinaDaemon = startupInstance;}2)调用Bootstrap中的init(),创建了Catalina对象(核心容器):主要进行了以下三步://设置tomcat实例的环境变量① Set up the environment variables required by this Tomcat instance//实例化将用于运行Tomcat实例的通用类加载② Instantiate the general class loaders that will be used for our running  Tomcat instance//初始化tomcat实例③ Initialize this Tomcat instance(3)调用Bootstrap中的load():实际上是通过反射调用了catalina的load方法。①Parse the main configuration file for a Tomcat instance, server.xml, converting each configuration element into the appropriate Tomcat component1。 (找到config file(server.xml);然后创建digester,解析server.xml,生成各组件对象(Server、Service、Container、Connector等)以及建立相互之间的关系。 )(4)Start up our outermost Top Level Element—the Server instance。(最后start(),同样是在Bootstrap中通过反射调用catalina对象的start方法。 接着启动server.start()方法:((Lifecycle) getServer()).start(); 接着调用service.start()方法。接下来是一系列的container的start,后续在分析(会部署所有的项目) 三、server.xml配置简介: 下面讲述这个文件中的基本配置信息,更具体的配置信息请参考tomcat的文档
      Tomcat工作原理解析

      Tomcat 组件简介

      title: Tomcat 组件简介date: 2020/05/06 17:19先简单介绍一下 Tomcat 中的各种组件,要不你后面听不懂conf/server.xml根据Tomcat自身的分类,上面这些元素可以分成四种:一个Tomcat只有一个 Server.xml,即一个Tomcat实例只有一个Server。它不是一个容器,它只是单纯地扮演着一个包裹的角色。它代表 Tomcat 实例本身。Server可配置的属性很少。根据上面摘录的默认配置,Server会侦听localhost的TCP端口8005,当该端口接收到字符串"SHUTDOWN"时,即执行关闭Tomcat操作。Server有两种特有的组件,一个是GlobalNamingResources(全局命名资源),一个是Service(服务)。除此之外,还可以有Listener(监听器)这种可以作用于不同层次容器的组件。Server默认配置了六种Listener。配置在Server这一层的Listener对所有容器起作用。它代表整个 Tomcat 实例,因此它还有一个作用,就是监听 SHUTDOWN 请求。它是一个顶层组件,用于包裹它下面的多个 Service 组件。一个Service就是一个完整的服务,负责将若干个Connector和一个Engine(引擎)包裹在一起。除此之外,Service还可以配置一个Executor(共享线程池)用于管理所有Connector的线程数量。如图所示,Service有Executor、Connector和Engine三种组件。其中,每个Connector负责侦听一个TCP端口,接收相应的请求,并转发给绑定的Engine处理。Engine处理完后,通过Connector把结果返回给客户端。在配置了Executor的情况下,所有Connector的线程受Executor统一管理。它的作用是将多个连接器与容器实例联系起来,使得不同协议的请求可以使用同一个容器来处理。Engine是Service的请求处理引擎,负责处理所有Connector发过来的请求,并将内部处理完毕的结果返回给Connector。它是最外层的容器。Engine.name - 引擎的名称Engine.defaultHost - 默认采用哪一个子容器Host来处理请求Engine 的作用是可以采用一个连接器接收请求并映射到不同的域名中一个Host就是一个虚拟主机,对应一个或多个域名。Host.name - 主机名称(域名)默认配置定义了一个名为 localhost 的主机。至少要有一个Host的名称与Engine的defaultHost一致。除了域名外,Host可以通过子节点alias来配置别名。别名的作用与域名一致。例如:其作用机制如下图所示:Host.appBase - 虚拟主机的根目录Host.unpackWARs - 放到 webapps 目录下的 WAR-file 是否应该被解压Host.autoDeploy - 是否自动部署放到 webapps 目录下的应用Context代表Host下面的一个虚拟目录。默认是不配置的Context.docBase - 应用程序的路径或者是WAR文件存放的路径Context.path - 此web应用程序的上下文路径Context.reloadable - 是否支持热部署如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,并通过类加载器重新加载class文件,以实现在不重启tomcat的情况下重新部署。Context.crossContext - 不同context是否共享session开头说过,Connector就是墙上的插座,负责侦听一个具体的TCP端口,并通过该端口处理Engine与客户端之间的交互。默认配置定义了两个 Connector:Valve的中文含义是阀门,可以简单地理解为Tomcat的拦截器。它负责在请求发送到应用之前拦截HTTP请求,可以定义在任何容器中。默认配置中定义了一个AccessLogValve,负责拦截HTTP请求,并写入到日志文件中。Listener即监听器,负责监听服务器端的行为。此处需要了解的监听器有两个:请求地址为: http://my.oschina.net/mzdbxqh
      Tomcat 组件简介

      本文由 在线网速测试 整理编辑,转载请注明出处。

          热门文章

          文章分类