tomcat的url配置

合集下载

tomcat配置文件详解

tomcat配置文件详解

tomcat配置文件详解(一):目录结构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.txt Realm (表示存放用户名,密码及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响应代码,发送的字节数。

tomcat8配置HTTPS,简单webservice客户端调用

tomcat8配置HTTPS,简单webservice客户端调用

Tomat8配置HTTPS 一.环境:Jdk1.8Tomcat8.0.22二.步骤:1,创建证书:首先建立目录,例如:d:/keys然后利用jdk的keytool工具生成证书d:\keys>keytool -genkey -alias wsria -keyalg RSA -keystore d:/keys/wsriakey.keystore具体的输入项图片中都有说明,有一点我要解释一下;在输入完密码后提示输入域名是我输入的是,其实这个域名是不存在的,但是我为了演示所以虚拟了这个域名,技巧在于修改C:\Windows\System32\drivers\etc\hosts添加内容如下:127.0.0.1 这样在访问的时候其实是访问的127.0.0.1也就是本机严重提醒:提示输入域名的时候不能输入IP地址2,导出证书:d:\keys>keytool -export -file d:/keys/wsria.crt -alias wsria -keystored:/keys/wsriakey.keystore3,为客户端的JVM导入证书(目前没觉得这步有什么用)d:\keys>keytool -import -alias kk -keystore "D:\ProgramFiles\Java\jdk1.8.0_45\jre\lib\security\cacerts" -file D:/keys/wsria.crt此处输入的口令是:changeit4、应用证书到Web服务器-Tomcat打开tomcat目录的conf/server.xml文件,开启83和87行的注释代码,并设置keystoreFile、keystorePass修改结果如下:注意大小写<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"maxThreads="150" SSLEnabled="true"scheme="https" secure="true"clientAuth="false" sslProtocol="TLS"keystoreFile="D:/keys/wsriakey.keystore"keystorePass="123456"/>到此Tomcat的SSL启用完成,现在你可以启动tomcat试一下了http://192.168.5.16:8443/---------------------------------------------------------------------------------------------------------------------- 以下是另一个方法,由于配置过程中出错,没有详细研究,不过觉得这个方法讲的比较详细,暂且在这里列出来,留作以后研究(webservice部分还是挺有用的)环境Jdk1.6 Tomcat6 jax-ws webservice1生成证书这里用到的文件,我们存放在D:/SSL/文件夹内,其中D:/SSL/server/内的文件是要交给服务器用的,D:/SSL/client/内的文件是要交给客户端用的。

Tomcat 中设置URL不区分大小写且支持中文名的处理方式

Tomcat 中设置URL不区分大小写且支持中文名的处理方式
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="utf-8"/>
ቤተ መጻሕፍቲ ባይዱ
其中关键是增加:URIEncoding="utf-8" 这样中文名也就支持了�
可以在其<Context >元素中增加caseSensitive="false"来使其不区分大小写。只是这样设置只能保证该Context定义的路径下的内容不区分大小写。其他Context定义的路径仍然区分大小写,除非也加上 caseSensitive="false"的选项。
不知道可否有办法使得Tomcat下的完整从根目录下就全部不区分大小写
1.Tomcat 中设置URL不区分大小写
默认情况下,Tomcat的URl是区分大小写的。如http://localhost/website和http://localhost/Website是不一样的。这样做的原因可能是因为tomcat支持jsp和Servlet,而Java语言是区分大小写的。一般来说这样做是没有问题的。但是如果某些网站程序或者页面制作过程中忽略了大小写问题,则就会导致网页显示不正常。如ArcIMS自身的Design设计的网页就存在这样的问题(如果第一次访问的话需要按照一些控件,问题就出现再按照控件的网页上,该网页的大小写不统一,导致无法按照成功)。
当然这样设置只能是对链接地址有效,至于jsp和Servlet中的语法还是区分大小写的,不是说做个该设置就全部是不区分大小写了

tomcat常用的调优参数

tomcat常用的调优参数

tomcat常用的调优参数Tomcat常用的调优参数Tomcat是一个开源的Java Servlet容器,广泛应用于Java Web 应用程序的部署和运行。

为了提高Tomcat的性能和稳定性,我们可以通过调优参数来优化其配置。

本文将介绍一些常用的Tomcat 调优参数,帮助您更好地配置和优化T omcat服务器。

1. 内存设置- -Xms: 设置JVM的初始堆大小,建议设置为物理内存的1/4或1/3。

- -Xmx: 设置JVM的最大堆大小,建议设置为物理内存的1/2或2/3。

- -XX:MaxPermSize: 设置JVM的永久代大小,建议设置为256MB或512MB。

- -XX:MaxMetaspaceSize: 设置JVM的元空间大小,建议设置为256MB或512MB。

2. 线程设置- maxThreads: 设置Tomcat的最大线程数,建议根据服务器的硬件配置和并发请求数进行调整。

- acceptCount: 设置Tomcat接受请求的队列大小,建议设置为200或300。

- connectionTimeout: 设置Tomcat的连接超时时间,建议设置为30秒或60秒。

3. 连接器设置- protocol: 设置连接器的协议,常用的有HTTP/1.1和AJP/1.3。

- port: 设置连接器的监听端口,建议使用80端口作为HTTP连接器的默认端口。

- maxKeepAliveRequests: 设置每个Keep-Alive连接的最大请求数,建议设置为100或200。

- keepAliveTimeout: 设置Keep-Alive连接的超时时间,建议设置为5秒或10秒。

4. 缓存设置- cacheSize: 设置Tomcat的静态文件缓存大小,建议根据静态文件的数量和大小进行调整。

- cacheTTL: 设置静态文件缓存的过期时间,建议设置为1小时或更长。

- cacheObjectMaxSize: 设置缓存对象的最大大小,建议根据缓存对象的平均大小进行调整。

tomcat url-pattern详解

tomcat url-pattern详解

Servlet和Filter的url匹配以及url-pattern详解<o:p></o:p>Servlet和filter是J2EE开发中常用的技术,使用方便,配置简单,老少皆宜。

估计大多数朋友都是直接配置用,也没有关心过具体的细节,今天遇到一个问题,上网查了servlet的规范才发现,servlet和filter中的url-pattern还是有一些文章在里面的,总结了一些东西,放出来供大家参考,以免遇到问题又要浪费时间。

<o:p></o:p>一,servlet容器对url的匹配过程:<o:p></o:p><o:p></o:p>根据这个规则表,就能很清楚的知道servlet的匹配过程,所以定义servlet的时候也要考虑url-pattern的写法,以免出错。

<o:p></o:p>对于filter,不会像servlet那样只匹配一个servlet,因为filter的集合是一个链,所以只会有处理的顺序不同,而不会出现只选择一个filter。

Filter的处理顺序和filter-mapping在web.xml中定义的顺序相同。

<o:p></o:p>二,url-pattern详解<o:p></o:p>在web.xml文件中,以下语法用于定义映射:l 以”/’开头和以”/*”结尾的是用来做路径映射的。

l 以前缀”*.”开头的是用来做扩展映射的。

l “/”是用来定义default servlet映射的。

l 剩下的都是用来定义详细映射的。

比如: /aa/bb/cc.action所以,为什么定义”/*.action”这样一个看起来很正常的匹配会错?因为这个匹配即属于路径映射,也属于扩展映射,导致容器无法判断。

Tomcat配置文件详解

Tomcat配置文件详解

Tomcat配置⽂件详解打开Tomcat的配置⽬录,我们会发现下⾯的配置⽂件:server.xml:Tomcat的主配置⽂件,包含Service, Connector, Engine, Realm, Valve, Hosts主组件的相关配置信息;web.xml:遵循Servlet规范标准的配置⽂件,⽤于配置servlet,并为所有的Web应⽤程序提供包括MIME映射等默认配置信息;context.xml:所有host的默认配置信息;logging.properties:⽇志相关配置;tomcat-users.xml:Realm认证时⽤到的相关⾓⾊、⽤户和密码等信息;Tomcat⾃带的manager默认情况下会⽤到此⽂件;在Tomcat中添加/删除⽤户,为⽤户指定⾓⾊等将通过编辑此⽂件实现;catalina.policy:Java相关的安全策略配置⽂件,在系统资源级别上提供访问控制的能⼒,以安全模式启动Tomcat会使⽤这个配置catalina.properties:Tomcat内部package的定义及访问相关的控制,也包括对通过类装载器装载的内容的控制;Tomcat在启动时会事先读取此⽂件的相关设置;jaspic-providers.xml:⽤户认证配置⽂件这篇博客就来介绍下这⼏个配置⽂件的作⽤,以及常⽤的配置选项。

server.xml配置server.xml是Tomcat的主配置⽂件,可以对Service, Connector, Engine, Realm, Valve, Hosts等主组件进⾏相关配置。

<!-- port: 接收shutdown指令的端⼝,默认仅允许通过本机访问,默认为8005;shutdown:发往此Server⽤于实现关闭tomcat实例的命令字符串,默认为SHUTDOWN;使⽤⽅式:telnet localhost 8005,输⼊SHUTDOWN即可关闭tomcat如果你不配置这两个属性,Tomcat的这种关闭机制还是会运⾏的。

tomcat rewriterule 参数规则 -回复

tomcat rewriterule 参数规则 -回复

tomcat rewriterule 参数规则-回复什么是Tomcat RewriteRule参数规则?在Tomcat服务器中,RewriteRule是用于URL重写和重定向的工具。

通过使用RewriteRule参数规则,可以修改传入请求的URL,并根据特定的规则将请求重定向到另一个URL。

这对于改进网站的搜索引擎优化(SEO)和更好的用户体验非常有帮助。

RewriteRule参数规则是根据Apache mod_rewrite模块的规则设定的。

在Tomcat中,这些规则能够帮助管理员以及开发人员在应用程序级别处理URL重写和重定向。

为什么需要Tomcat RewriteRule参数规则?URL的重写和重定向对于网站优化和改善用户体验非常重要。

通过重写和重定向URL,可以解决一些常见问题,例如搜索引擎索引重复内容的问题、制造友好的URL或处理页面移动后的旧链接。

RewriteRule参数规则可以帮助管理员和开发人员不需要修改应用程序代码,就能够在应用程序级别处理这些问题。

这使得管理和维护网站变得更加简单,同时也提供了更大的灵活性。

如何使用Tomcat RewriteRule参数规则?使用Tomcat RewriteRule参数规则需要以下步骤:1. 确保Tomcat服务器上安装了mod_rewrite模块。

如果没有安装,需要在服务器上安装该模块。

2. 在Tomcat的配置文件中,找到并打开虚拟主机(Virtual Host)的配置部分。

3. 在虚拟主机的配置部分中,找到RewriteEngine指令并将其设置为"On"。

这将启用URL重写功能。

4. 在RewriteEngine指令之后,可以使用RewriteRule指令设置重写规则。

语法如下:RewriteRule <Pattern> <Substitution> [Flags]<Pattern>:匹配要重写的URL的模式。

tomcat自动URLDecode解码问题(+号变空格)

tomcat自动URLDecode解码问题(+号变空格)

tomcat⾃动URLDecode解码问题(+号变空格)最近项⽬中出现⼀个问题,就是前段调后端接⼝,参数带+号,传到后端后+号⾃动URLDecode成空格了。

1.问题排查条件:tomcat配置server.xml有URIEncoding="UTF-8"1.1get请求、post请求(参数跟在URL的后⾯),request.getParameter("token")中token会被⾃动URLDecode。

⽽request.getQueryString()获得的值则是浏览器传的原值。

如果有中⽂,浏览器会⾃动转义,⾕歌浏览器在view source上可以看到浏览器往后端传之前的参数值。

1.2post请求(参数在body⾥⾯),request.getQueryString()值为空, request.getParameter("token")中token不会被⾃动URLDecode,⽽且中⽂乱码。

加上request.setCharacterEncoding("UTF-8");后,中⽂不乱码,但是token也不会⾃动URLDecode。

1.3去掉tomcat配置的URIEncoding="UTF-8",在1.1情况下token参数也会被⾃动URLDecode,此时采⽤tomcat默认的编码⽅式。

2.深⼊tomcat解析3.临时解决⽅案1.如果发现+号编码了,那么解码⼀下2.如果发现uss有空格,说明+号被URLDecode成空格,那么URLEncode⼀下就变成原来的值// 1.如果发现+号编码了,那么解码⼀下if (uss.contains("%2b") || uss.contains("%2B")) {uss = URLDecoder.decode(uss, "UTF-8");}// 2.如果发现uss有空格,说明+号被URLDecode成空格,那么URLEncode⼀下就变成原来的值if (uss.contains(" ")) {uss = URLEncoder.encode(uss, "UTF-8");}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一种方法:在tomcat 中的conf 目录中,在server.xml 中的,<host/>节点中添加:
<Context
path="/hello" docBase="D:eclipse3.2.2forwebtoolsworkspacehelloWebRoot" debug="0" privileged="true">
</Context>
至于Context 节点属性,可详细见相关文档。

第二种方法:将web 项目文件件拷贝到webapps 目录中。

第三种方法:很灵活,在conf 目录中,新建 Catalina (注意大小写)\localhost 目录,在该目录中新建一个xml 文件,名字可以随意取,只要和当前文件中的文件名不重复就行了,该xml 文件的内容为: <Context
path="/hello" docBase="D:eclipse3.2.2forwebtoolsworkspacehelloWebRoot" debug="0" privileged="true"> </Context>
第3个方法有个优点,可以定义别名。

服务器端运行的项目名称为path ,外部访问的URL 则使用XML 的文件名。

这个方法很方便的隐藏了项目的名称,对一些项目名称被固定不能更换,但外部访问时又想换个路径,非常有效。

第2、3还有优点,可以定义一些个性配置,如数据源的配置等。

还有一篇 详细的
1、直接放到Webapps 目录下
Tomcat 的Webapps 目录是Tomcat 默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。

也可以将JSP 程序打包成一个war 包放在目录下,服务器会自动解开这个war 包,并在这个目录下生成一个同名的文件夹。

一个war 包就是有特性格式的jar 包,它是将一个Web 程序的所有内容进行压缩得到。

具体如何打包,可以使用许多开发工具的IDE 环境,如Eclipse 、NetBeans 、ant 、JBuilder 等。

也可以用cmd 命令:jar -cvf applicationname.war package.*;
甚至可以在程序执行中打包:
双击代码全选
1 2 3 4 5 6 try{
string strjavahome = system.getproperty("java.home");
strjavahome = strjavahome.substring(0,stindexof())+"bin"; runtime.getruntime().exec("cmd
/c start "+strjavahome+"jar cvf hello.war c:tomcat5.0webappsroot*");
}
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">
2、在server.xml 中指定
在Tomcat 的配置文件中,一个Web 应用就是一个特定的Context ,可以通过在server.xml 中新建Context 里部署一个JSP 应用程序。

打开server.xml 文件,在Host 标签内建一个Context ,内容如下。

<Context path="/myapp" reloadable="true" docBase="D:myapp" workDir="D:myappwork"/> 其中path 是虚拟路径,docBase 是JSP 应用程序的物理路径,workDir 是这个应用的工作目录,存放运行是生成的于这个应用相关的文件。

3、创建一个Context 文件
以上两种方法,Web 应用被服务器加载后都会在Tomcat 的confcatalinalocalhost 目录下生成一个
XML文件,其内容如下:
<Context path="/admin" docBase="${catalina.home}/server/webapps/admin" debug="0" privileged="true"></Context>
可以看出,文件中描述一个应用程序的Context信息,其内容和server.xml中的Context信息格式是一致的,文件名便是虚拟目录名。

您可以直接建立这样的一个xml文件,放在Tomcat的confcatalinalocalhost目录下。

例子如下:
注意:删除一个Web应用同时也要删除webapps下相应的文件夹祸server.xml中相应的Context,还要将Tomcat的conf
catalinalocalhost目录下相应的xml文件删除。

否则Tomcat仍会岸配置去加载。

tomcat部署web应用主要有以下几种方式:
1.拷贝你的WAR文件或者你的web应用文件夹(包括该web的所有内容)到$CATALINA_BASE/webapps目录下。

2.为你的web服务建立一个只包括context内容的XML片断文件,并把该文件放到$CATALINA_BASE/webapps目录下。

这个web应用本身可以存储在硬盘上的任何地方。

这种context 片断提供了一种便利的方法来部署web应用,你不需要编辑server.xml,除非你想改变缺省的部署特性,安装一个新的web应用时不需要重启动Tomcat。

3.同方法2,只是将context片断放在CATALINA_BASEconfCatalinalocalhost目录下.这种方法比方法2>要有效,笔者经过多次实验发现方法2不如后面这种方法好用.前者多次出现系统打不开的情况.
4.直接在server.xml中</Host>前加上Context片断,使用这种方法时,tomcat会自动在CATALINA_BASEconfCatalinalocalhost目录下生成一个文件片断.方法同方法3具有同样效果.这种方式需要将ROOT目录删除才行.
另外,为了让tomcat只运行conf/server.xml中指定的web应用,可以有以下几种办法:
实现一:
1)将要部署的WEB应用放在webapps以外的路径, 并在server.xml相应的context中的docBase 指定.
2)删除webapps中的所有文件夹, 以及conf/catalina/localhost下所有xml文件.
注: webapps是server.xml中的Host元素的appBase属性的值.
实现二:
1) 修改server.xml中Host元素的属性, 添加或修改: deployXML="false" deployOnStartup="false" autoDeploy="false"
2) 含义:
deployXML="false": 不部署conf/catalina/localhost下的xml相应的WEB应用deployOnStartup="false" : tomcat启动时, 不部署webapps下的所有web应用autoDeploy="false": 避免tomcat在扫描改动时, 再次把webapps下的web应用给部署进来.。

相关文档
最新文档