barriers / 阅读 / 详情

TOMCAT在webapps/目录下放好web应用包以后,要不要重启服务的?

2023-08-22 07:54:01
共3条回复
可乐

需要重新加载,可以不重启

max笔记

要重启服务

okok云

刷新就可以不用重启。

相关推荐

tomcat下的webapps 是什么

webapps目录用来存放应用程序。当tomcat启动时会去加载webapps目录下的应用程序。可以以文件夹、war包、jar包的形式发布应用。当然,也可以把应用程序放置在磁盘的任意位置,在配置文件中映射好就行。tomcat的webapps目录下的ROOT目录介绍:tomcat的webapps目录下有个默认的ROOT目录,也可以把项目war包解压开放入ROOT目录,同样可以运行项目。但放在ROOT目录下之后访问项目方式就会变为:ip+端口号。所以项目放在webapps目录和放在ROOT目录的区别是webapps不需要解压,ROOT需要解压;webapps访问项目需要加项目名,ROOT不需要加项目名。tomcat默认看到的cat页面的文件就是在ROOT文件夹下的,如果ROOT目录删除后,tomcat启动后还是会生成的。扩展资料:有两个办法可以在系统中部署web服务。1> 拷贝WAR文件或者web应用文件夹(包括该web的所有内容)到$CATALINA_BASE/webapps目录下。2> 为web服务建立一个只包括context内容的XML片断文件,并把该文件放到$CATALINA_BASE/webapps目录下。这个web应用本身可以存储在硬盘上的任何地方。如果有一个WAR文件,想部署它,则只需要把该文件简单的拷贝到CATALINA_BASE/webapps目录下即可,文件必须以“.war”作 为扩展名。一旦Tomcat监听到这个文件,它将(缺省的)解开该文件包作为一个子目录,并以WAR文件的文件名作为子目录的名字。接下来,Tomcat 将在内存中建立一个context,就好象在server.xml文件里建立一样。当然,其他必需的内容,将从server.xml中的 DefaultContext获得。部署web应用的另一种方式是写一个Context XML片断文件,然后把该文件拷贝到CATALINA_BASE/webapps目录下。一个Context片断并非一个完整的XML文件,而只是一个 context元素,以及对该应用的相应描述。这种片断文件就像是从server.xml中切取出来的context元素一样,所以这种片断被命名为 “context片断”。参考资料来源:百度百科-tomcat
2023-08-13 04:34:551

tomcat的webapps目录中是应用部署是文件夹,启动是

启动是加载所有目录下的应用。根据查询博客园显示,Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。所以可以将JSP程序打包成个war包放在目录下,服务器会自动解开这个wa包,并在这个目录下生成一个同名的文件夹。
2023-08-13 04:35:231

officewebapps部署后其他计算机访问不

你好,请问您是想问officewebapps部署后其他计算机访问不了的原因吗?原因:1、windows防火墙关闭或杀毒软件网络防火墙关闭。2、IIS访问权限有问题。
2023-08-13 04:35:301

金蝶webapps路径

服务器版本:CentOS Linux release 7.6.1810 (Core)金蝶版本:AAS-V10.zip一、准备工作1.上传软件包到服务器/usr/local/software路径(路径可自定义)2.关闭防火墙,关闭selinux临时并永久关闭防火墙systemctl stop firewalld && systemctl disable firewalld临时并永久关闭selinuxsetenforce 0 && sed -i "s/^SELINUX=.*/SELINUX=disabled/" /etc/selinux/config二、安装金蝶1.启动解压cd /usr/local/software&&unzip AAS-V10.zip启动(当前启动方式,部署好程序之后,看不到程序的启动日志,需要加一个jvm参数,换一种启动方式,详见如下)cd /usr/local/software/ApusicAS/bin&&./asadmin start-domain
2023-08-13 04:35:402

修改tomcat7的/webapps/ROOT发布路径

tomcat7跟以前的版本一样,默认的发布程序是/usr/local/tomcat/webapps/ROOT下面,即我们必须将测试文件放在此目录下才能进行测试,如何更改ROOT路径呢?我们可以修改vim /usr/local/tomcat/webapps/conf/server.conf。我的文件如下:Host name="localhost" appBase="/data/htdocs/www"unpackWARs="true" autoDeploy="true"/Host/Engine在host/host标签之间添加上:Context path="" docBase="example" debug="0" reloadable="true" /path是说明虚拟目录的名字,如果你要只输入ip地址就显示主页,则该键值留为空;docBase是虚拟目录的路径,它默认的是$tomcat/webapps/ROOT目录,现在我在webapps目录下建了一个example目录,让该目录作为我的默认目录。debug和reloadable一般都分别设置成0和true,重启tomcat应该就可以生效了。
2023-08-13 04:35:471

在Tomcat服务器的webapps目录下新建一个名字是letter

在Tomcat服务器的webapps目录下新建一个名字是letter的方法如下:前提条件:已安装好tomcat服务器。1创建静态web应用在tomcat的webapps目录下创建一个letter目录;在webappsletter下创建index.html:启动tomcat:打开浏览器访问http://localhost:8080/letter/index.html(此处8080为自己tomcat的端口号)index.htmlletterWorld!omcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。
2023-08-13 04:35:551

tomcat WEBapps文件夹下面放什么东西

项目名.war就是编译好的web项目了。
2023-08-13 04:36:032

Tomcatwebapps 目录中 部署后目录结构是什么意思?具体操作是什么?

(以下为tomcat6.0的目录结构) /bin 存放Windows或Linux平台上用于启动和停止Tomcat的脚本文件 /conf 存放Tomcat服务器的各种配置文件,其中最重要的是server.xml /lib存放Tomcat服务器所需的各种JAR文件/webapps存放Tomcat自带的两个Web应用:admin应用程序和manager应用程序 /lib存放Tomcat服务器以及所有Web应用都可以访问的JAR文件 /work Tomcat把由JSP生成的Servlet放于此目录下 /webapps 当发布Web应用时,默认情况下会将Web应用的文件存放于此目录中
2023-08-13 04:36:112

Tomcat服务器根目录下的Webapps文件里里面放做什么用的程序??对应Apache服务器根目录下的哪个文件夹?

先弄清楚apache和tomcat的区别。apache是web服务器,tomcat是应用(java)服务器,它只是一个servlet容器,可以认为是apache的扩展。apache和tomcat都可以做为独立的web服务器来运行。但是apache不能解释java程序。如:jsp。class等文件。然后再看webapps,顾名思义,webapps里边主要是放web应用的。比如我们开发的java网站等等都可以放到webapps里边进行部署发布。apache功能类似的是htdocs文件夹。区别就是上面的。apache只支持html,js等静态文件。jsp放入里边是不行的。
2023-08-13 04:36:301

java tomcat下wtpwebapps、webapps、work文件夹是干什么的?

wtpwebapps跟webapps差不多,都是存放编译后的项目。eclipse默认路径是wtpwebapps,因为一些项目需求,可能需要改到webapps下面。这个要在tomcat中修改。你可以看看下面的链接,修改eclipse下tomcat部署路径http://blog.csdn.net/yuan16423276/article/details/37502705
2023-08-13 04:36:371

tomcat下的webapps目录中的文件哪些是可以删除的

那你webapps下肯定放了很多工程喽。。把你一些没用到工程删掉就可以啦。都可以删除的,如果你不用的话。
2023-08-13 04:36:532

tomcat下的webapps下的项目 无法运行 是怎么回事?是不是要改配置文件啊?

是。你在webapps下新添加的文件夹(比如说新建的文件夹为test),那么要通过设置tomcat|conf目录下的server.xml文件,添加如下内容:<!--TomcatManagerContext--><Contextpath="/test"docBase="test"debug="0"privileged="true"/>在类似上述代码的地方加入这段代码即可。
2023-08-13 04:37:001

网站建设中bin、conf、lib 、logs、temp、webapps、work等文件分别是用?

bin :存放启动和关闭Tomcat的可执行文件conf:存放Tomcat的配置文件lib :存放库文件logs :存放日志文件temp: 存放临时文件webapps :存放 web 应用work: 存放JSP转换后的Servlet文件
2023-08-13 04:37:081

为什么Tomcat的webapps目录下新建的目录不能访问html文件

  在Tomcat安装目录中,webapps默认为部署网站用的目录。webapps/ROOT是网站的根目录,其它目录都是网站的子目录,如webappsjsp-examples目录。但是,当我们新建一个子目录时,却并不能在浏览器里正常访问。就连HTML文件也访问不了。为什么会出现这种情况呢?  原来,在Tomcat中,每一个webapps下的子目录都被认为是一个JSP站点。因此,该子目录必需要有JSP站点的必要结构才行。也就是,在创建的子目录下,必需有WEB_INF目录以及WEB_INF下的web.xml文件。WEB_INF目录以及其下的web.xml文件,是JSP用来配置站点用的。
2023-08-13 04:37:151

tomcat下的webapps可以放一个.war的包吗 需要怎么配置才能使用

首先你要明白什么时候war包才会解压当tomcat启动时候会去查看webapps下的所有war包,同时查看是否有该war包对应的已解压文件,如果已经存在就不会再解压,也不会将你已经修改的jsp覆盖掉,只有当你删除war包对应的同名文件夹(你的工程)后,启动tomcat时才会再解压war文件 明白???
2023-08-13 04:37:241

为什么web项目在Tomcat下运行了而Tomcat下webapps中却没有该项目?

看Context 的docBase 这种配置方式,不用放到tomcat中去<Host name="localhost" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase="E:WorkspacewwwtxlWebRoot" Reloadable="true" debug="0"> <Resource name="jdbc/txldbs" type="javax.sql.DataSource" auth="Container" driverClassName="com.sybase.jdbc3.jdbc.SybDriver" maxActive="100" maxIdle="30" maxWait="10000" url="jdbc:sybase:Tds:192.168.1.40:4200/txldbs?charset=cp936" username="sa" password=""/> <Resource name="jdbc/rsk3" type="javax.sql.DataSource" auth="Container" driverClassName="com.sybase.jdbc3.jdbc.SybDriver" maxActive="100" maxIdle="30" maxWait="10000" url="jdbc:sybase:Tds:192.168.1.40:4200/rsk3?charset=cp936" username="sa" password=""/> </Context> <Valve className="org.apache.catalina.valves.FastCommonAccessLogValve" directory="logs" prefix="txl_access_log." suffix=".txt" pattern="common" resolveHosts="false"/></Host>
2023-08-13 04:37:331

如何把webpack前端工程部署到tomcat上

几种方法:1、在myeclipse里部署这个直接在myeclipse里配置好tomcat的根路径。在server里可以看到tomcat,选择部署你的工程就行了。2、把自己的web工程放在tomcat的webapps下2.1 把你的工程达成war包,放进tomcat的webapps下;2.2 把你工程的webroot下的内容用你的工程名称(其实是你想要的在啊浏览器访问的应用路径名)作为文件夹包住webroot下的内容(要保证你的classes有东西,lib有东西)3、把描述自己工程的context放在webapps下context里可以描述你的工程的名称,工程存放的路径4、在tomcat的conf/server.xml配置相应的context元素这个和3的作用差不多,只是这个是在tomcat的server启动时加载的以上都能让tomcat知道自己有多少应用要部署,将会进行相应的部署动作。部署完后,就可以在浏览器访问了。
2023-08-13 04:37:431

war包部署到tomcat 哪个路径

tomcat下的webapps文件夹下。
2023-08-13 04:37:502

如何获取tomcat下的webapps的绝对路径呢

(HttpServletRequest) ActionContext.getContext().get( ServletActionContext.HTTP_REQUEST)).getRealPath("/")) .getParent()
2023-08-13 04:38:103

tomcat 下webapps 下文件消失了???

都没有了么,你搜索你的所有的盘,看看有没有
2023-08-13 04:38:193

如何操作vue项目打包给服务器

这次给大家带来如何操作vue项目打包给服务器,vue项目打包给服务器的注意事项有哪些,下面就是实战案例,一起来看一下。当我们将 vue 项目完成后,面临的就是如何将项目进行打包上线,放到服务器中。我使用的是 vue-cli(simple) 脚手架,所以就讲一下如何将项目进行打包,并放到 tomcat 上。 如果是 vue-cli (非 simple 脚手架),这篇文章可能有点帮助。地址链接:vue-cli 如何打包上线先来描述一下期间遇到的问题有哪些:1、打包后将 dist 文件夹和 index.html 放到 tomcat,在浏览器中访问时,出现空白页,f12 提示 404。 2、打包好的静态资源均是绝对路径,无法引入进项目,也是 404。1、项目目录结构这是打包后的,所以有 dist 文件夹,打包方式:npm run build。2、webpack.config.js这里只是一小部分,因为这边最关键的就是 publicPath,下面会提,这边可以解决静态资源 404 无法引入的问题。3、npm run build 打包后的文件。npm run build 打包后生成一个 dist 文件夹,这里面的目录:我对 webpack 打包工具的原理不是很清楚,所以文件夹应该生成什么不是了解。我这边是这样子的。主要是一个主要的 build.js, 因为我们的 index.html 引入的就是这个 js 文件。还有一些图片文件和 ElementUI 生成的 ttf 和 woff。4、如何放到服务器中。接下来就是需要将生成的 dist 文件夹和 index.html 文件放到服务器中,只需要这两个。首先我将这两个文件放在同一个文件夹中,我命名为 gas(随意)。然后将文件夹放到 tomcat 中,我将文件夹放到 tomcat 的 webapps 文件夹目录下:ok 部署完成,启动 tomcat,你会发现显示一个空白页,一些静态资源都是 404。5、解决空白页和静态资源无法引入的问题。1、首先空白页的问题,可以重 f12 中看出来都是绝对路径的原因,而我们打包后,应该的引入路径是相对路径,这时我们需要的是修改 index.html 页面。看一下没改之前的:看我 /dist/build.js 引用的是绝对路径,这就导致了在 tomcat 去访问 index.html 页面时,报404。我们需要将路径变成相对路径 ./dist/build/。多一个点,很关键。好了到这里应该主页面可以显示了。但是你会发现,我的静态资源,我的图片(不包括 img 形式的引入),例如我在 css 中 background:url() 的图片显示404。2、解决静态资源失效的问题这就需要修改我们的 webpack.config.js 中的 publicPath 了,默认的 vue-cli 脚手架环境搭建好后,publicPath 是这样的:可以看到我们的路径是: /dist/。所以这时候我们如果打开页面,静态资源的路径都会是这样子的,并且报错404:http://10.0.0.181:8088/dist/bg.png?fe9b889cea51978538ce352593be0573显然可以看出和我们想要的路径不一致,上面我贴出来的在 tomcat 的文件目录中我将 dist 和 index.html 都放进了一个 gas 的文件夹中。所以正确的路径应该是这样的:http://10.0.0.181:8088/gas/dist/bg.png?fe9b889cea51978538ce352593be0573看出区别了吗!解决:所以我需要改变一下 webpack.config.js 中的输出路径 publicPath: /gas/dist/。将最外层的文件夹路径加进去,这样就可以将静态资源引入进项目了。ok,到现在为止,最主要的两个问题解决了,一个是 index.html 空白页,另一个是 静态资源路径不正确的问题。6、index.html 页面中的link 和 srcipt 引用的资源失效问题:原因还是路径的地址不对:妥协的解决方法是:将自己引用的资源手动放到打包出来的 dist 文件夹内,然后在 index.html 中按照 dist 的相对路径进行引用。代码中的 icon.ico 就是我手动将 icon 图标放到 dist 文件夹中,然后按照对应的引用路径进行引用。其他的 css 和 js 引用一样。7、待解决的问题:1、在我的项目中,使用了 ElementUI 框架,但是在打包放到服务器中后,发现按钮样式变了,所有的 padding 失效,所有我只能自己手动进行添加样式。2、在我的 index.html 中如果引入 link css文件时,还是没办法引入相对路径,所以我将 css 样式都放到了各自的组件中的 style 中了,其他的一般都是用 npm 注入依赖的形式进行安装。8、网上搜索到的相关问题和解决方法。1、求助!Vue项目用Webpack打包后放到服务器上,但访问是空白页?弄了好久了也不知道什么原因2、vue项目中,npm run build生成的index.html文件只有放在根目录下打开才能生效,怎么解决?3、Vue应用部署到服务器的正确方式相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!推荐阅读:怎样使用React 服务器端渲染如何使用vue.js做出编辑菜谱功能
2023-08-13 04:38:261

myeclipse8.5中集成的tomcat怎样启动?还有tomcat的wwebapps文件夹怎么没有?

选择你要启动的tomcat,右键add deployment添加项目,再右键run server 自带的tomcat的webapps本来就没有,是引用地址的。
2023-08-13 04:38:341

java jsp怎么发布到tomcat

将jsp部署到tomcat的方法有三种:1、直接放到Webapps目录下Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录 下的应用。也可以将JSP程序打包成一个war包放在目录下,服务器会自动解开这个war包,并在这个目录下生成一个同名的文件夹。一个war包就是有特 性格式的jar包,它是将一个Web程序的所有内容进行压缩得到。具体如何打包,可以使用许多开发工具的IDE环境,如Eclipse、 NetBeans、ant、JBuilder等。也可以用cmd 命令:jar -cvf applicationname.war package.*;甚至可以在程序执行中打包:try{ string strjavahome = system.getproperty("java.home"); strjavahome = strjavahome.substring(0,strjavahome.lastindexof(\))+"\bin\"; runtime.getruntime().exec("cmd /c start "+strjavahome+"jar cvf hello.war c:\tomcat5.0\webapps\root\*"); } catch(exception e){system.out.println(e);}webapps这个默认的应用目录也是可以改变。打开Tomcat的conf目录下的server.xml文件,找到下面内容:<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeloy="true" xmlValidation="falase" xmlNamespaceAware="false">
2023-08-13 04:38:431

在tomcat下部署项目后,在webapps下放置一个项目文件,

一、静态部署1、直接将web项目文件件拷贝到webapps 目录中 Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。所以可以将JSP程序打包成一个 war包放在目录下,服务器会自动解开这个war包,并在这个目录下生成一个同名的文件夹。一个war包就是有特性格式的jar包,它是将一个web程序的所有内容进行压缩得到。具体如何打包,可以使用许多开发工具的IDE环境,如Eclipse等。也可以用 cmd 命令:jar -cvf mywar.war myweb webapps这个默认的应用目录也是可以改变。打开Tomcat的conf目录下的server.xml文件,找到下面内容:<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">将appBase修改即可。 2、在server.xml中指定 在Tomcat的配置文件中,一个Web应用就是一个特定的Context,可以通过在server.xml中新建Context里部署一个JSP应用程序。打开server.xml文件,在Host标签内建一个Context,内容如下。在tomcat中的conf目录中,在server.xml中的,<host/>节点中添加: <Context path="/hello" docBase="D: workspacehelloWebRoot" debug="0" privileged="true"> </Context>或者<Context path="/myapp" reloadable="true" docBase="D:myapp" workDir="D:myappwork"/>或者<Context path="/sms4" docBase="D:workspacesms4WebRoot"/>
2023-08-13 04:38:511

为什么tomcat的webapps中的axis2文件夹删不了

可以删除,因为当tomcat启动以后就会自动解压war包到webapps目录下。Tomcat的项目部署方式有以下三种:1.直接把项目复制到Tomcat安装目录的webapps目录中,这是最简单的一种Tomcat项目部署的方法,也是初学者最常用的方法。2.在tomcat安装目录中有一个conf文件夹,打开此文件夹,其中包含配置文件server.xml,打开配置文件,并在<host>和</host>之间插入如下语句。<Context path="/hello" docBase="F:eclipse3.2workspacehelloWebRoot" debug="0" privileged="true"> </Context>其中,docBase为设置项目的路径。3.在conf目录中,在Catalinalocalhost(此处需要注意目录的大小写)目录下新建一个XML文件,任意命名,只要和当前文件中的文件名不重复即可,代码如下。<Context path="/hello" docBase="D:eclipse3.2workspacehelloWebRoot" debug="0" privileged="true"> </Context>第三种方法相对来说比较灵活,并且可以设置别名。
2023-08-13 04:38:581

LINUX tomcat下的webapps删不掉

ps -ef|grep tomcat 看看还有没有进程;关闭的时候如果tomcat未启动,是会抱着过错的,正常。我看你是root用户,应该不会是没有权限,那么检查一下这个目录是否有其它进程打开了在使用,进入webapps后,rm -rf * 直接删除试试。
2023-08-13 04:39:051

tomcat webapps下文件页面不能访问是什么原因

eclipse 里面认为那些是源码目录。所以,在文件浏览器里面访问
2023-08-13 04:39:143

为什么web项目在Tomcat下运行了而Tomcat下webapps中却没有该项目?

使用docBase配置 可以映射到其他目录 相当于iis的虚拟目录
2023-08-13 04:39:413

Myeclipse 把web项目部署到了Tomcat 的webapps在浏览器中访问不到

浏览器加个http试试
2023-08-13 04:39:514

把war包放入webapps里,启动TOMCAT,无法运行,页面报404?

springboot项目?如果是:springboot项目自带了tomcat所以要在pom中排除掉tomcat
2023-08-13 04:39:591

已经启动了tomcat,JSP文件也放在webapps下,但是用浏览器打开jsp文件显示的只是源代码。怎么做。

比如Myeclipse可以直接用它自带的插件部署,一键将你web工程下对应的文件部署到tomcat服务器目录下,然后在浏览器中用localhost访问,或者自己手动部署,网上资料很多的,对应文件夹下放什么东西,放好后一样红localhost访问tomcat,浏览器源代码jsp,webapps比如Myeclipse可以直接用它自带的插件部署,一键将你web工程下对应的文件部署到tomcat服务器目录下,然后在浏览器中用localhost访问,或者自己手动部署,网上资料很多的,对应文件夹下放什么东西,放好后一样红localhost访问
2023-08-13 04:40:071

问一下如何上传文件到tomcat的webapps文件夹中

你是指项目部署?
2023-08-13 04:40:165

在tomcat下部署 在webapps下的war包 的项目能不能直接通过localhost:8080访问不加项目名,急!在线等

修改conf下的server.xml.将path改成=“/”
2023-08-13 04:42:102

把一个项目粘贴到tomcat的webapps下面,但就是访问不到,求解

源码粘帖过去肯定执行不了,你要把源码编译后的文件夹或者压缩包复制到webapps下面才行,如果你用过的是eclipse就在项目的根目录上面点右键,export导出,选择到处war文件,把导出的压缩包复制到webapps下面,然后重启tomcat,就会发现webapps下面会产生一个文件夹,名字和war的名称一样,然后用ie登录试试看。
2023-08-13 04:42:241

Tomcat/webapps 文件下无故被上传了项目文件

貌似有个police模样的文件是用来控制权限的
2023-08-13 04:42:311

tomcat下的webapps 是什么

是存放网站的地方
2023-08-13 04:43:298

tomcat的webapp下的root文件夹的作用是什么

tomcat的root文件夹下面默认是tomcat的管理程序,但是如果你把自己的web项目发布到root下面的话,你可以不通过项目名直接访问你的项目,比如,你见了一个名为Test的项目,你要访问的路径一般是:http://localhost:8080/Test但是你把项目部署在root文件夹下之后,可以通过http://localhost:8080直接访问你的项目
2023-08-13 04:43:582

webapps 目录里是什么文件

webapps目录用来存放应用程序。当tomcat启动时会去加载webapps目录下的应用程序。可以以文件夹、war包、jar包的形式发布应用。当然,也可以把应用程序放置在磁盘的任意位置,在配置文件中映射好就行。
2023-08-13 04:44:131

webapps文件夹必须放到tomcat文件夹里面吗

是的 否则访问时会找不到资源
2023-08-13 04:44:232

tomcat部署文件不想放在webapps下怎么做

不一定。webapps是默认项目文件的路径,将项目文件放在该路径下,tomcat会自动调用它,但我们也可以自己指定路径。指定项目路径可以参考这篇文章:补充 tomcat的部署方法主要有以下几种:一、静态部署1、直接将web项目文件件拷贝到webapps 目录中Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。所以可以将JSP程序打包成一个 war包放在目录下,服务器会自动解开这个war包,并在这个目录下生成一个同名的文件夹。一个war包就是有特性格式的jar包,它是将一个web程序的所有内容进行压缩得到。具体如何打包,可以使用许多开发工具的IDE环境,如Eclipse等。也可以用 cmd 命令:jar -cvf mywar.war mywebwebapps这个默认的应用目录也是可以改变。打开Tomcat的conf目录下的server.xml文件,找到下面内容:<Host name="localhost" appBase="webapps"unpackWARs="true" autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false">将appBase修改即可。 2、在server.xml中指定在Tomcat的配置文件中,一个Web应用就是一个特定的Context,可以通过在server.xml中新建Context里部署一个JSP应用程序。打开server.xml文件,在Host标签内建一个Context,内容如下。在tomcat中的conf目录中,在server.xml中的,<host/>节点中添加: <Context path="/hello" docBase="D: workspacehelloWebRoot" debug="0" privileged="true"> </Context>或者<Context path="/myapp" reloadable="true" docBase="D:myapp" workDir="D:myappwork"/>或者<Context path="/sms4" docBase="D:workspacesms4WebRoot"/>说明:path是虚拟路径;docBase 是应用程序的物理路径;workDir 是这个应用的工作目录,存放运行时生成的与这个应用相关的文件;debug 则是设定debug level, 0表示提供最少的信息,9表示提供最多的信息privileged设置为true的时候,才允许Tomcat的Web应用使用容器内的Servletreloadable 如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,可以在不重起tomcat的情况下改变应用程序,实现热部署antiResourceLocking和antiJARLocking 热部署是需要配置的参数,默认false避免更新了某个webapp,有时候Tomcat并不能把旧的webapp完全删除,通常会留下WEB-INF/lib下的某个jar包,必须关闭Tomcat才能删除,这就导致自动部署失败。设置为true,Tomcat在运行对应的webapp时,会把相应的源文件和jar文件复制到一个临时目录里。3、创建一个Context文件在conf目录中,新建 Catalina\localhost目录,在该目录中新建一个xml文件,名字不可以随意取,要和path后的那个名字一致,按照下边这个path的配置,xml的名字应该就应该是hello(hello.xml),该xml文件的内容为:<Context path="/hello" docBase="E:workspacehelloWebRoot" debug="0" privileged="true"></Context>tomcat自带例子如下:<Context docBase="${catalina.home}/server/webapps/host-manager"privileged="true" antiResourceLocking="false" antiJARLocking="false"></Context>这个例子是tomcat自带的,编辑的内容实际上和第二种方式是一样的,其中这xml文件名字就是访问路径,这样可以隐藏应用的真实名字。4、注意:删除一个Web应用同时也要删除webapps下相应的文件夹和server.xml中相应的Context,还要将Tomcat的confcatalinalocalhost目录下相应的xml文件删除,否则Tomcat仍会去配置并加载。。。二 动态部署登陆tomcat管理控制台:,输入用户名和密码后便可管理应用并动态发布。在Context Path(option):中输入/yourwebname ,这代表你的应用的访问地址。XML Configration file URL中要指定一个xml文件,比如我们在F:下建立一个hmcx.xml文件,内容如下: <Context reloadable="false" />其中docBase不用写了,因为在下一个文本框中填入。或者更简单点,这个文本框什么都不填,在WAR or Directory URL:中键入F:hmcx即可,然后点击Deploy按钮,上面就可以看到了web应用程序,名字就Context Path(option):中的名字。如果部署.war文件还有更加简单的方式,下面还有个Select WAR file uploae点击浏览选择.war文件,然后点击Deploy也可以。参考:
2023-08-13 04:44:311

如何让Tomcat直接浏览webapps下的网页,而不是去webapps下的ROOT网页?

抄的,打字麻烦我在$tomcat/webapps/下建了个myjsp目录作为我网站的默认目录,在myjsp中有一个a.jsp文件,该文件要作为我网站的默认主页。 修改配置文件: 首先,修改$tomcat/conf/server.xml文件。 在server.xml文件中,有一段如下: Xml代码 <engine name="Catalina" defaultHost="localhost改为你的域名"> <host name="localhost改为你的域名" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> …… <host> </engine> 在<host></host>标签之间添加上: Xml代码 <Context path="" docBase="myjsp" debug="0" reloadable="true" /> path是说明虚拟目录的名字,如果你要只输入ip地址就显示主页,则该键值留为空; docBase是默认目录的路径,它默认的是$tomcat/webapps/ROOT目录,现在我在webapps目录下建了一个myjsp目录,让该目录作为我的默认目录。 debug和reloadable一般都分别设置成0和true。
2023-08-13 04:44:391

tomcat下的webapps里面的文件可以删除吗

都可以删除的,如果你不用的话。host-manager manager ROOT 这三个留着,其它的都可以删除。
2023-08-13 04:44:481

如何访问tomcat的webapps文件夹下的资源,例如图片,视频等

你应该在http://localhost:8080/webapps/加上你的应用名称,比如应用如:manager正确的应该是http://localhost:8080/webapps/manager/aa.jpg
2023-08-13 04:44:551

tomcat部署文件不想放在webapps下怎么做

不一定。webapps是默认项目文件的路径,将项目文件放在该路径下,tomcat会自动调用它,但我们也可以自己指定路径。指定项目路径可以参考这篇文章:补充 tomcat的部署方法主要有以下几种:一、静态部署1、直接将web项目文件件拷贝到webapps 目录中Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。所以可以将JSP程序打包成一个 war包放在目录下,服务器会自动解开这个war包,并在这个目录下生成一个同名的文件夹。一个war包就是有特性格式的jar包,它是将一个web程序的所有内容进行压缩得到。具体如何打包,可以使用许多开发工具的IDE环境,如Eclipse等。也可以用 cmd 命令:jar -cvf mywar.war mywebwebapps这个默认的应用目录也是可以改变。打开Tomcat的conf目录下的server.xml文件,找到下面内容:<Host name="localhost" appBase="webapps"unpackWARs="true" autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false">将appBase修改即可。 2、在server.xml中指定在Tomcat的配置文件中,一个Web应用就是一个特定的Context,可以通过在server.xml中新建Context里部署一个JSP应用程序。打开server.xml文件,在Host标签内建一个Context,内容如下。在tomcat中的conf目录中,在server.xml中的,节点中添加: 或者或者说明:path是虚拟路径;docBase 是应用程序的物理路径;workDir 是这个应用的工作目录,存放运行时生成的与这个应用相关的文件;debug 则是设定debug level, 0表示提供最少的信息,9表示提供最多的信息privileged设置为true的时候,才允许Tomcat的Web应用使用容器内的Servletreloadable 如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,可以在不重起tomcat的情况下改变应用程序,实现热部署antiResourceLocking和antiJARLocking 热部署是需要配置的参数,默认false避免更新了某个webapp,有时候Tomcat并不能把旧的webapp完全删除,通常会留下WEB-INF/lib下的某个jar包,必须关闭Tomcat才能删除,这就导致自动部署失败。设置为true,Tomcat在运行对应的webapp时,会把相应的源文件和jar文件复制到一个临时目录里。3、创建一个Context文件在conf目录中,新建 Catalina\localhost目录,在该目录中新建一个xml文件,名字不可以随意取,要和path后的那个名字一致,按照下边这个path的配置,xml的名字应该就应该是hello(hello.xml),该xml文件的内容为:tomcat自带例子如下:<Context docBase="${catalina.home}/server/webapps/host-manager"privileged="true" antiResourceLocking="false" antiJARLocking="false">这个例子是tomcat自带的,编辑的内容实际上和第二种方式是一样的,其中这xml文件名字就是访问路径,这样可以隐藏应用的真实名字。4、注意:删除一个Web应用同时也要删除webapps下相应的文件夹和server.xml中相应的Context,还要将Tomcat的confcatalinalocalhost目录下相应的xml文件删除,否则Tomcat仍会去配置并加载。。。二 动态部署登陆tomcat管理控制台:,输入用户名和密码后便可管理应用并动态发布。在Context Path(option):中输入/yourwebname ,这代表你的应用的访问地址。XML Configration file URL中要指定一个xml文件,比如我们在F:下建立一个hmcx.xml文件,内容如下: 其中docBase不用写了,因为在下一个文本框中填入。或者更简单点,这个文本框什么都不填,在WAR or Directory URL:中键入F:hmcx即可,然后点击Deploy按钮,上面就可以看到了web应用程序,名字就Context Path(option):中的名字。如果部署.war文件还有更加简单的方式,下面还有个Select WAR file uploae点击浏览选择.war文件,然后点击Deploy也可以。参考:
2023-08-13 04:45:411

用JSP编写HelloWorld 并在浏览器中输出。该文件位于Tomcat安装目录的WebappsFirstExample中

alert("HelloWorld");难道是这?
2023-08-13 04:45:494

为什么Tomcat的webapps目录下新建的目录不能访问html文件

  在Tomcat安装目录中,webapps默认为部署网站用的目录。webapps/ROOT是网站的根目录,其它目录都是网站的子目录,如webappsjsp-examples目录。但是,当我们新建一个子目录时,却并不能在浏览器里正常访问。就连HTML文件也访问不了。为什么会出现这种情况呢?  原来,在Tomcat中,每一个webapps下的子目录都被认为是一个JSP站点。因此,该子目录必需要有JSP站点的必要结构才行。也就是,在创建的子目录下,必需有WEB_INF目录以及WEB_INF下的web.xml文件。WEB_INF目录以及其下的web.xml文件,是JSP用来配置站点用的。
2023-08-13 04:46:001

如何在tomcat部署php项目

推荐:《PHP视频教程》1.相关jar包下载将phpJavaBridge.rar中的JavaBridge.jar、php-servlet.jar和php-script.jar复制到tomcat的lib目录下;2.修改tomcat安装目录下conf文件夹里的web.xml文件,在web-app标签里增加以下的代码<listener><listener-class>php.java.servlet.ContextLoaderListener</listener-class></listener><servlet><servlet-name>PhpJavaServlet</servlet-name><servlet-class>php.java.servlet.PhpJavaServlet</servlet-class></servlet><servlet><servlet-name>PhpCGIServlet</servlet-name><servlet-class>php.java.servlet.fastcgi.FastCGIServlet</servlet-class><init-param><param-name>prefer_system_php_exec</param-name><param-value>On</param-value></init-param><init-param><param-name>php_include_java</param-name><param-value>Off</param-value></init-param></servlet><servlet-mapping><servlet-name>PhpJavaServlet</servlet-name><url-pattern>*.phpjavabridge</url-pattern></servlet-mapping><servlet-mapping><servlet-name>PhpCGIServlet</servlet-name><url-pattern>*.php</url-pattern></servlet-mapping>3.部署php项目直接到php项目复制到tomcat的webapps目录下,然后启动tomcat。
2023-08-13 04:46:071

如何在resin中布署.WAR文件

直接放到Webapps目录下就可以了,步骤如下:Tomcat的Webapps目录是Tomcat默认的应用目录,务器启动时,会加载所有这个目录 下的应用。也可以将JSP程序打包成一个war包放在目录下,服务器会自动解开这个war包,并在这个目录下生成一个同名的文件夹。一个war包就是有特 性格式的jar包,它是将一个Web程序的所有内容进行压缩得到。在程序执行中打包:<pre t="code" l="java">try{ string strjavahome = system.getproperty(java.home); strjavahome = strjavahome.substring(0,strjavahome.lastindexof(\))+\bin\; runtime.getruntime().exec(cmd /c start +strjavahome+jar cvf hello.war c:\tomcat5.0\webapps\root\*); } catch(exception e){system.out.println(e);}webapps这个默认的应用目录也是可以改变。打开Tomcat的conf目录下的server.xml文件,找到下面内容即可:<pre t="code" l="java">lt;Host name=localhost debug=0 appBase=webapps unpackWARs=true autoDeloy=true xmlValidation=falase xmlNamespaceAware=false;
2023-08-13 04:46:231

如何修改webservice访问路径

1、添加虚拟路径 在D: empapache-tomcat-6.0.18confserver.xml中</host>字段前添加 <Context path="" debug="0" docBase="D: empapache-tomcat-6.0.18webappsaxis" reloadable="true"></Context> path是说明虚拟目录的名字,如果你要只输入ip地址就显示主页,则该键值留为空; docBase是虚拟目录路径2、 修改D: empapache-tomcat-6.0.18webappsaxisWEB-INFweb.xml,找到下面字段 <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <!-- <url-pattern>/services/*</url-pattern> --> <url-pattern>/*</url-pattern> </servlet-mapping> 将>/services/*修改成/*是为了去掉/services以上方法经过测试成功哈,自己试试。
2023-08-13 04:46:451

为什么我的tomcat老是配置不成功是环境设置变量的原因还是我的版本问题

1. 配置系统管理(Admin Web Application) 大多数商业化的J2EE服务器都提供一个功能强大的管理界面,且大都采用易于理解的Web应用界面。Tomcat按照自己的方式,同样提供一个成熟的管理工具,并且丝毫不逊于那些商业化的竞争对手。Tomcat的Admin Web Application最初在4.1版本时出现,当时的功能包括管理context、data source、user和group等。当然也可以管理像初始化参数,user、group、role的多种数据库管理等。在后续的版本中,这些功能将得到很大的扩展,但现有的功能已经非常实用了。 Admin Web Application被定义在自动部署文件:CATALINA_BASE/webapps/admin.xml 。 (译者注:CATALINA_BASE即tomcat安装目录下的server目录) 你必须编辑这个文件,以确定Context中的docBase参数是绝对路径。也就是说,CATALINA_BASE/webapps/admin.xml 的路径是绝对路径。作为另外一种选择,你也可以删除这个自动部署文件,而在server.xml文件中建立一个Admin Web Application的context,效果是一样的。你不能管理Admin Web Application这个应用,换而言之,除了删除CATALINA_BASE/webapps/admin.xml ,你可能什么都做不了。 如果你使用UserDatabaseRealm(默认),你将需要添加一个user以及一个role到CATALINA_BASE/conf/tomcat-users.xml 文件中。你编辑这个文件,添加一个名叫“admin”的role 到该文件中,如下: <role name="admin"/> 你同样需要有一个用户,并且这个用户的角色是“admin”。象存在的用户那样,添加一个用户(改变密码使其更加安全): <user name="admin" password="deep_dark_secret" roles="admin"/> 当你完成这些步骤后,请重新启动Tomcat,访问http://localhost:8080/admin,你将看到一个登录界面。Admin Web Application采用基于容器管理的安全机制,并采用了Jakarta Struts框架。一旦你作为“admin”角色的用户登录管理界面,你将能够使用这个管理界面配置Tomcat。 2.配置应用管理(Manager Web Application) Manager Web Application让你通过一个比Admin Web Application更为简单的用户界面,执行一些简单的Web应用任务。 Manager Web Application被被定义在一个自动部署文件中: CATALINA_BASE/webapps/manager.xml 。 你必须编辑这个文件,以确保context的docBase参数是绝对路径,也就是说CATALINA_HOME/server/webapps/manager的绝对路径。 (译者注:CATALINA_HOME即tomcat安装目录) 如果你使用的是UserDatabaseRealm,那么你需要添加一个角色和一个用户到CATALINA_BASE/conf/tomcat-users.xml文件中。接下来,编辑这个文件,添加一个名为“manager”的角色到该文件中: <role name=”manager”> 你同样需要有一个角色为“manager”的用户。像已经存在的用户那样,添加一个新用户(改变密码使其更加安全): <user name="manager" password="deep_dark_secret" roles="manager"/> 然后重新启动Tomcat,访问http://localhost/manager/list,将看到一个很朴素的文本型管理界面,或者访问http://localhost/manager/html/list,将看到一个HMTL的管理界面。不管是哪种方式都说明你的Manager Web Application现在已经启动了。 Manager application让你可以在没有系统管理特权的基础上,安装新的Web应用,以用于测试。如果我们有一个新的web应用位于/home/user/hello下在,并且想把它安装到 /hello下,为了测试这个应用,我们可以这么做,在第一个文件框中输入“/hello”(作为访问时的path),在第二个文本框中输入“file:/home/user/hello”(作为Config URL)。 Manager application还允许你停止、重新启动、移除以及重新部署一个web应用。停止一个应用使其无法被访问,当有用户尝试访问这个被停止的应用时,将看到一个503的错误??“503 - This application is not currently available”。 移除一个web应用,只是指从Tomcat的运行拷贝中删除了该应用,如果你重新启动Tomcat,被删除的应用将再次出现(也就是说,移除并不是指从硬盘上删除)。 3.部署一个web应用 有两个办法可以在系统中部署web服务。 1> 拷贝你的WAR文件或者你的web应用文件夹(包括该web的所有内容)到$CATALINA_BASE/webapps目录下。 2> 为你的web服务建立一个只包括context内容的XML片断文件,并把该文件放到$CATALINA_BASE/webapps目录下。这个web应用本身可以存储在硬盘上的任何地方。 如果你有一个WAR文件,你若想部署它,则只需要把该文件简单的拷贝到CATALINA_BASE/webapps目录下即可,文件必须以“.war”作为扩展名。一旦Tomcat监听到这个文件,它将(缺省的)解开该文件包作为一个子目录,并以WAR文件的文件名作为子目录的名字。接下来,Tomcat将在内存中建立一个context,就好象你在server.xml文件里建立一样。当然,其他必需的内容,将从server.xml中的DefaultContext获得。 部署web应用的另一种方式是写一个Context XML片断文件,然后把该文件拷贝到CATALINA_BASE/webapps目录下。一个Context片断并非一个完整的XML文件,而只是一个context元素,以及对该应用的相应描述。这种片断文件就像是从server.xml中切取出来的context元素一样,所以这种片断被命名为“context片断”。 举个例子,如果我们想部署一个名叫MyWebApp.war的应用,该应用使用realm作为访问控制方式,我们可以使用下面这个片断: <!-- Context fragment for deploying MyWebApp.war --> <Context path="/demo" docBase="webapps/MyWebApp.war" debug="0" privileged="true"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Context> 把该片断命名为“MyWebApp.xml”,然后拷贝到CATALINA_BASE/webapps目录下。 这种context片断提供了一种便利的方法来部署web应用,你不需要编辑server.xml,除非你想改变缺省的部署特性,安装一个新的web应用时不需要重启动Tomcat。 4.配置虚拟主机(Virtual Hosts) 关于server.xml中“Host”这个元素,只有在你设置虚拟主机的才需要修改。虚拟主机是一种在一个web服务器上服务多个域名的机制,对每个域名而言,都好象独享了整个主机。实际上,大多数的小型商务网站都是采用虚拟主机实现的,这主要是因为虚拟主机能直接连接到Internet并提供相应的带宽,以保障合理的访问响应速度,另外虚拟主机还能提供一个稳定的固定IP。 基于名字的虚拟主机可以被建立在任何web服务器上,建立的方法就是通过在域名服务器(DNS)上建立IP地址的别名,并且告诉web服务器把去往不同域名的请求分发到相应的网页目录。因为这篇文章主要是讲Tomcat,我们不准备介绍在各种操作系统上设置DNS的方法,如果你在这方面需要帮助,请参考《DNS and Bind》一书,作者是Paul Albitz and Cricket Liu (O"Reilly)。为了示范方便,我将使用一个静态的主机文件,因为这是测试别名最简单的方法。 在Tomcat中使用虚拟主机,你需要设置DNS或主机数据。为了测试,为本地IP设置一个IP别名就足够了,接下来,你需要在server.xml中添加几行内容,如下: <Server port="8005" shutdown="SHUTDOWN" debug="0"> <Service name="Tomcat-Standalone"> <Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="8080" minProcessors="5" maxProcessors="75" enableLookups="true" redirectPort="8443"/> <Connector className="org.apache.coyote.tomcat4.CoyoteConnector" port="8443" minProcessors="5" maxProcessors="75" acceptCount="10" debug="0" scheme="https" secure="true"/> <Factory className="org.apache.coyote.tomcat4.CoyoteServerSocketFactory" clientAuth="false" protocol="TLS" /> </Connector> <Engine name="Standalone" defaultHost="localhost" debug="0"> <!-- This Host is the default Host --> <Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="ROOT" debug="0"/> <Context path="/orders" docBase="/home/ian/orders" debug="0" reloadable="true" crossContext="true"> </Context> </Host> <!-- This Host is the first "Virtual Host": http://www.example.com/ --> <Host name="www.example.com" appBase="/home/example/webapp"> <Context path="" docBase="."/> </Host> </Engine> </Service> </Server> Tomcat的server.xml文件,在初始状态下,只包括一个虚拟主机,但是它容易被扩充到支持多个虚拟主机。在前面的例子中展示的是一个简单的server.xml版本,其中粗体部分就是用于添加一个虚拟主机。每一个Host元素必须包括一个或多个context元素,所包含的context元素中必须有一个是默认的context,这个默认的context的显示路径应该为空(例如,path=””)。 5.配置基础验证(Basic Authentication) 容器管理验证方法控制着当用户访问受保护的web应用资源时,如何进行用户的身份鉴别。当一个web应用使用了Basic Authentication(BASIC参数在web.xml文件中auto-method元素中设置),而有用户访问受保护的web应用时,Tomcat将通过HTTP Basic Authentication方式,弹出一个对话框,要求用户输入用户名和密码。在这种验证方法中,所有密码将被以64位的编码方式在网络上传输。 注意:使用Basic Authentication通过被认为是不安全的,因为它没有强健的加密方法,除非在客户端和服务器端都使用HTTPS或者其他密码加密码方式(比如,在一个虚拟私人网络中)。若没有额外的加密方法,网络管理员将能够截获(或滥用)用户的密码。但是,如果你是刚开始使用Tomcat,或者你想在你的web应用中测试一下基于容器的安全管理,Basic Authentication还是非常易于设置和使用的。只需要添加<security-constraint>和<login-config>两个元素到你的web应用的web.xml文件中,并且在CATALINA_BASE/conf/tomcat-users.xml 文件中添加适当的<role>和<user>即可,然后重新启动Tomcat。 下面例子中的web.xml摘自一个俱乐部会员网站系统,该系统中只有member目录被保护起来,并使用Basic Authentication进行身份验证。请注意,这种方式将有效的代替Apache web服务器中的.htaccess文件。 <!-- Define the Members-only area, by defining a "Security Constraint" on this Application, and mapping it to the subdirectory (URL) that we want to restrict. --> <security-constraint> <web-resource-collection> <web-resource-name> Entire Application </web-resource-name> <url-pattern>/members/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>member</role-name> </auth-constraint> </security-constraint> <!-- Define the Login Configuration for this Application --> <login-config> <auth-method>BASIC</auth-method> <realm-name>My Club Members-only Area</realm-name> </login-config> 6.配置单点登录(Single Sign-On) 一旦你设置了realm和验证的方法,你就需要进行实际的用户登录处理。一般说来,对用户而言登录系统是一件很麻烦的事情,你必须尽量减少用户登录验证的次数。作为缺省的情况,当用户第一次请求受保护的资源时,每一个web应用都会要求用户登录。如果你运行了多个web应用,并且每个应用都需要进行单独的用户验证,那这看起来就有点像你在与你的用户搏斗。用户们不知道怎样才能把多个分离的应用整合成一个单独的系统,所有他们也就不知道他们需要访问多少个不同的应用,只是很迷惑,为什么总要不停的登录。 Tomcat 4的“single sign-on”特性允许用户在访问同一虚拟主机下所有web应用时,只需登录一次。为了使用这个功能,你只需要在Host上添加一个SingleSignOn Valve元素即可,如下所示: <Valve className="org.apache.catalina.authenticator.SingleSignOn" debug="0"/> 在Tomcat初始安装后,server.xml的注释里面包括SingleSignOn Valve配置的例子,你只需要去掉注释,即可使用。那么,任何用户只要登录过一个应用,则对于同一虚拟主机下的所有应用同样有效。 使用single sign-on valve有一些重要的限制: 1> value必须被配置和嵌套在相同的Host元素里,并且所有需要进行单点验证的web应用(必须通过context元素定义)都位于该Host下。 2> 包括共享用户信息的realm必须被设置在同一级Host中或者嵌套之外。 3> 不能被context中的realm覆盖。 4> 使用单点登录的web应用最好使用一个Tomcat的内置的验证方式(被定义在web.xml中的<auth-method>中),这比自定义的验证方式强,Tomcat内置的的验证方式包括basic、digest、form和client-cert。 5> 如果你使用单点登录,还希望集成一个第三方的web应用到你的网站中来,并且这个新的web应用使用它自己的验证方式,而不使用容器管理安全,那你基本上就没招了。你的用户每次登录原来所有应用时需要登录一次,并且在请求新的第三方应用时还得再登录一次。当然,如果你拥有这个第三方web应用的源码,而你又是一个程序员,你可以修改它,但那恐怕也不容易做。 6> 单点登录需要使用cookies。 7.配置用户定制目录(Customized User Directores) 一些站点允许个别用户在服务器上发布网页。例如,一所大学的学院可能想给每一位学生一个公共区域,或者是一个ISP希望给一些web空间给他的客户,但这又不是虚拟主机。在这种情况下,一个典型的方法就是在用户名前面加一个特殊字符(~),作为每位用户的网站,比如: http://www.cs.myuniversity.edu/~username http://members.mybigisp.com/~username Tomcat提供两种方法在主机上映射这些个人网站,主要使用一对特殊的Listener元素。Listener的className属性应该是org.apache.catalina.startup.UserConfig,userClass属性应该是几个映射类之一。如果你的系统是Unix,它将有一个标准的/etc/passwd文件,该文件中的帐号能够被运行中的Tomcat很容易的读取,该文件指定了用户的主目录,使用PasswdUserDatabase 映射类。 <Listener className="org.apache.catalina.startup.UserConfig" directoryName="public_html" userClass="org.apache.catalina.startup.PasswdUserDatabase"/> web文件需要放置在像/home/users/ian/public_html 或者 /users/jbrittain/public_html一样的目录下面。当然你也可以改变public_html 到其他任何子目录下。 实际上,这个用户目录根本不一定需要位于用户主目录下里面。如果你没有一个密码文件,但你又想把一个用户名映射到公共的像/home一样目录的子目录里面,则可以使用HomesUserDatabase类。 <Listener className="org.apache.catalina.startup.UserConfig" directoryName="public_html" homeBase="/home" userClass="org.apache.catalina.startup.HomesUserDatabase"/> 这样一来,web文件就可以位于像/home/ian/public_html 或者 /home/jasonb/public_html一样的目录下。这种形式对Windows而言更加有利,你可以使用一个像c:home这样的目录。 这些Listener元素,如果出现,则必须在Host元素里面,而不能在context元素里面,因为它们都用应用于Host本身。 8.在Tomcat中使用CGI脚本 Tomcat主要是作为Servlet/JSP容器,但它也有许多传统web服务器的性能。支持通用网关接口(Common Gateway Interface,即CGI)就是其中之一,CGI提供一组方法在响应浏览器请求时运行一些扩展程序。CGI之所以被称为通用,是因为它能在大多数程序或脚本中被调用,包括:Perl,Python,awk,Unix shell scripting等,甚至包括Java。当然,你大概不会把一个Java应用程序当作CGI来运行,毕竟这样太过原始。一般而言,开发Servlet总要比CGI具有更好的效率,因为当用户点击一个链接或一个按钮时,你不需要从操作系统层开始进行处理。 Tomcat包括一个可选的CGI Servlet,允许你运行遗留下来的CGI脚本。 为了使Tomcat能够运行CGI,你必须做如下几件事: 1. 把servlets-cgi.renametojar (在CATALINA_HOME/server/lib/目录下)改名为servlets-cgi.jar。处理CGI的servlet应该位于Tomcat的CLASSPATH下。 2. 在Tomcat的CATALINA_BASE/conf/web.xml 文件中,把关于<servlet-name> CGI的那段的注释去掉(默认情况下,该段位于第241行)。 3. 同样,在Tomcat的CATALINA_BASE/conf/web.xml文件中,把关于对CGI进行映射的那段的注释去掉(默认情况下,该段位于第299行)。注意,这段内容指定了HTML链接到CGI脚本的访问方式。 4. 你可以把CGI脚本放置在WEB-INF/cgi 目录下(注意,WEB-INF是一个安全的地方,你可以把一些不想被用户看见或基于安全考虑不想暴露的文件放在此处),或者你也可以把CGI脚本放置在context下的其他目录下,并为CGI Servlet调整cgiPathPrefix初始化参数。这就指定的CGI Servlet的实际位置,且不能与上一步指定的URL重名。 5. 重新启动Tomcat,你的CGI就可以运行了。 在Tomcat中,CGI程序缺省放置在WEB-INF/cgi目录下,正如前面所提示的那样,WEB-INF目录受保护的,通过客户端的浏览器无法窥探到其中内容,所以对于放置含有密码或其他敏感信息的CGI脚本而言,这是一个非常好的地方。为了兼容其他服务器,尽管你也可以把CGI脚本保存在传统的/cgi-bin目录,但要知道,在这些目录中的文件有可能被网上好奇的冲浪者看到。另外,在Unix中,请确定运行Tomcat的用户有执行CGI脚本的权限。9.改变Tomcat中的JSP编译器(JSP Compiler) 在Tomcat 4.1(或更高版本,大概),JSP的编译由包含在Tomcat里面的Ant程序控制器直接执行。这听起来有一点点奇怪,但这正是Ant有意为之的一部分,有一个API文档指导开发者在没有启动一个新的JVM的情况下,使用Ant。这是使用Ant进行Java开发的一大优势。另外,这也意味着你现在能够在Ant中使用任何javac支持的编译方式,这里有一个关于Apache Ant使用手册的javac page列表。使用起来是容易的,因为你只需要在<init-param> 元素中定义一个名字叫“compiler”,并且在value中有一个支持编译的编译器名字,示例如下: <servlet> <servlet-name>jsp</servlet-name> <servlet-class> org.apache.jasper.servlet.JspServlet </servlet-class> <init-param> <param-name>logVerbosityLevel</param-name> <param-value>WARNING</param-value> </init-param> <init-param> <param-name>compiler</param-name> <param-value>jikes</param-value> </init-param> <load-on-startup>3</load-on-startup> </servlet> 当然,给出的编译器必须已经安装在你的系统中,并且CLASSPATH可能需要设置,那处决于你选择的是何种编译器。 10.限制特定主机访问(Restricting Access to Specific Hosts) 有时,你可能想限制对Tomcat web应用的访问,比如,你希望只有你指定的主机或IP地址可以访问你的应用。这样一来,就只有那些指定的的客户端可以访问服务的内容了。为了实现这种效果,Tomcat提供了两个参数供你配置:RemoteHostValve 和RemoteAddrValve。 通过配置这两个参数,可以让你过滤来自请求的主机或IP地址,并允许或拒绝哪些主机/IP。与之类似的,在Apache的httpd文件里有对每个目录的允许/拒绝指定。 例如你可以把Admin Web application设置成只允许本地访问,设置如下: <Context path="/path/to/secret_files" ...> <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127.0.0.1" deny=""/> </Context> 如果没有给出允许主机的指定,那么与拒绝主机匹配的主机就会被拒绝,除此之外的都是允许的。与之类似,如果没有给出拒绝主机的指定,那么与允许主机匹配的主机就会被允许,除此之外的都是拒绝的。
2023-08-13 04:46:531