开发了struts很长 时间,
突然发现对一些配置文件还是不是理解很深。我新建一个struts的web工程,他的web_inf文件下有struts-config.xml 和 web.xml
另外tomcat的 对应server 下有该工程的 web.xml 和 server.xml问 1 这4个xml配置文件各自功能
2 两个web.xml的区别
突然发现对一些配置文件还是不是理解很深。我新建一个struts的web工程,他的web_inf文件下有struts-config.xml 和 web.xml
另外tomcat的 对应server 下有该工程的 web.xml 和 server.xml问 1 这4个xml配置文件各自功能
2 两个web.xml的区别
web.xml 对应actionservlet类进行配置 还应该声明web应用所使用的struts的标签库。server.xml
最主要配置这个 <Context docBase="website" path="" reloadable="false" source="org.eclipse.jst.j2ee.server:website"> <Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" logAbandoned="true" maxActive="200" maxIdle="30" maxWait="10000" name="oddsMatrixDB" password="kapowsky" removeAbandoned="true" removeAbandonedTimeout="600" testOnBorrow="true" type="javax.sql.DataSource" url="jdbc:mysql://10.0.4.200:3306/oddsmatrixdb?autoReconnect=true" username="sa" validationQuery="select 1"/>
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" logAbandoned="true" maxActive="200" maxIdle="30" maxWait="10000" name="oddsDB" password="kapowsky" removeAbandoned="true" removeAbandonedTimeout="600" type="javax.sql.DataSource" url="jdbc:mysql://10.0.4.200:3306/oddsmatrixoddsdb?autoReconnect=true" username="sa"/>
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" logAbandoned="true" maxActive="200" maxIdle="30" maxWait="10000" name="persisterOddsDB" password="kapowsky" removeAbandoned="true" removeAbandonedTimeout="600" type="javax.sql.DataSource" url="jdbc:mysql://10.0.4.200:3306/oddsmatrixoddsdb?autoReconnect=true" username="sa"/>
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" logAbandoned="true" maxActive="200" maxIdle="30" maxWait="10000" name="oddsmatrixtext" password="betbrain" removeAbandoned="true" removeAbandonedTimeout="600" type="javax.sql.DataSource" url="jdbc:mysql://10.0.4.162:3306/zbetbrain" username="betbrain"/> <Resource auth="Container" factory="org.apache.naming.factory.BeanFactory" instanceType="dev" machine="tomcat1" name="bean/BBBeanInitializer" type="com.oddsmatrix.website.odds.web.servlet.BBBeanInitializer"/>
<Environment name="url" type="java.lang.String" value="notconfigured.url"/> <!--MediatorConnector configuration oddsmediator.betbrain.com -->
<Resource address="10.0.4.249" auth="Container" emailBcc="[email protected]" emailFrom="[email protected]" emailSubject="localhost:OddsMatrix" emailTo="[email protected]" factory="org.apache.naming.factory.BeanFactory" isLoadDelay1="false" isLoadDelay20="false" isLoadDelay3="false" isTextUpdating="true" machineName="ft" name="bean/BBMediatorInitializer" port="1994" subscriptionName="" type="com.oddsmatrix.website.odds.web.servlet.BBMediatorInitializer"/>
</Context>
<Context docBase="addressbook" path="/addressbook" reloadable="true" source="org.eclipse.jst.jee.server:addressbook"/></Host>
</Engine>
<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=””)。
0 0 0
---此外web工程很多初始配置都在serverv.xml这个里面进行读唯一的问题是 2 两个web.xml的区别 (确实不知道第2个web.xml哪里来的 他和第1个又有社么区别)
作者: 凡石 Email:[email protected] http://yundao.com 晕倒网TOOL左界面
Name: ok.aaa.com [localhost] 作者: 凡石 Email:[email protected] http://yundao.com 晕倒网
Application Base: webapps //相对于TOMCAT_HOME
Host (ok.aaa.com[localhost])
Context (/) //ROOT物理目录 作者: 凡石 Email:[email protected] http://yundao.com 晕倒网
//但作为DOCBASE来说为虚拟目录(相对于Application Base)
//它是url://ok.aaa.com [localhost] 虚拟(别名)根目录,这是和APACHE不一样的地方!
//Application Base才是实实在在的url://ok.aaa.com [localhost]根目录 ,
//启动时系统会自动生成(通过测试ROOT下的WEB-INF、WEB.XML)
Context (/admin) //系统默认(删除对应的admin.xml其不能自动还原)作者: 凡石 Email:[email protected] http://yundao.com 晕倒网
Context (/balancer) //原理同上Context (/admin)作者: 凡石 Email:[email protected] http://yundao.com 晕倒网
Context (/jsp-examples) //相对于Application Base,启动时系统会自动生成。
Context (/manager) //原理同上Context (/admin)作
Context (/servlets-examples) //物理目录,相对于Application Base,启动时系统会自动生成。
Context (/tomcat-docs) //物理目录,相对于Application Base,启动时系统会自动生成。
Context (/webdav) //物理目录,相对于Application Base,启动时系统会自动生成。
作者: 凡石 Email:[email protected] http://yundao.com 晕倒网
原理:TOMCAT启动时会搜索HOST的APPBASE下的物理目录,物理目录有WEB-INF、WEB.XML信息则载入到TOOL界面,无时不载入,不过不载入的物理目录当然还是可以通过URL来访问;虚拟目录(alias)对应的xml文件存在则能载入,无时(相应的XML被删除)不载入,通过URL不可访。但是ROOT就不一样了,把ROOT.XML删了后,它也能被载入,因为它有双重性。每个目录只要都被正常载入,相应在TOMCAT_HOME\Catalina\ok.aaa.com [localhost] \生成其同名的XML,这个名称可以被更改,不过最好用可示性较强的文字来命名。关于SERVER.XML
- <Service name="Catalina">
<Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="80" redirectPort="8443" /> //url端口为80,默认是8080
<Connector port="8009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443" />
- <Engine defaultHost="aaa.com" name="Catalina">//这里是指默认主机,也就是通过IP、localhost来访问的主机
- <Host appBase="webapps" name="ok.aaa.com">//虚拟主机ok.aaa.com
<Alias>ok.bbb.com</Alias>//虚拟主机ok.aaa.com的别名和实实在在的url://ok.aaa.com [localhost]根目录webapps
<Alias>yes.aaa.com</Alias> //同上
<Alias>yes.bbb.com</Alias> //同上
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true" />
</Host>
- <Host appBase="f://myweb" name="aaa.com">//虚拟主机aaa.com和实实在在的url://aaa.com [localhost]根目录f://myweb
<Alias>bbb.com</Alias>//虚拟主机aaa.com的别名
<Alias>www.bbb.com</Alias> //同上
<Alias>www.aaa.com</Alias> //同上
<Logger className="org.apache.catalina.logger.FileLogger" prefix="aaa.com_log." suffix="txt" timestamp="true" /> <Context displayName="freeweb描述" docBase="d://freeweb" path="abc" useNaming="false" /> //别名abc指向物理目录d://freeweb
</Host>
<Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true" />
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" />
</Engine>
</Service>
</Server>注意:这里<Context displayName="freeweb描述" docBase="d://freeweb" path="abc" useNaming="false" /> //别名abc指向物理目录d://freeweb 在添加之后,要重启TOMCAT,这时会在TOMCAT_HOME/conf/Catalina/aaa.com/下生成一个abc.xml.其内容就是:<?xml version="1.0" encoding="utf-8" ?><Context displayName="freeweb描述" docBase="d://freeweb" path="abc" useNaming="false" />这之后,再入Tomcat Administration TOOL COMMIT CHANGE 一下 ,SERVER.XML 里那句<Context~~~~~~~~~~~ />就没了。呵 。。最后我要说的是,当进行备份时,一定不要仅把SERVER.XML WEB.XML .....这些文件备下来(和APACHE不一样),备就备整个conf目录!!!我之前就是以为在SERVER.XML写了CONTEXT就可行了,目录的事全交给SERVER.XML来管。可是这样是非常错误的想法。SERVER.XML是不保留CONTEXT的,它只是把你加入Context生成文件,之后删除你在它里面添的语句。它只有生成功能,没有对其的直接管理功能,功能都给相应的alias的XML文件了!
是你这个应用的配置文件,与Struts有关,如果你不用Struts,就没有这个;
server.xml 是Tomcat的配置,用来管理和设置Tomcat,与你的系统的开发关系不大,但可能影响你的应用系统的执行方式(浏览器地址栏中的地址)
两个 web.xml 的作用类似,是对应用进行设置,如servlet的设置等,但两个的作用单位不同,
tomcat下的适用整个Tomcat,即对Tomcat下的所有应用有效,而你的应用下的web.xml只对该应用有影响。如果两个web.xml设置了同一个属性,那么本应用下的起作用