开启tomcat的debug模式:
在
rem Guess CATALINA_HOME if not defined
前面添加下面的几句话:
if ""%1"" == ""stop"" goto skip_config
SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787
:skip_config
即可。
部署web应用:
第一种就是把项目放到webapps文件夹下即可
第二种是在tomcat\conf\Catalina\localhost文件夹下放置一个xml文件来发布该项目:
例如:test.xml 内容为:
<Context docBase="D:\Program Files\Genuitec\workspace\myweb\WebRoot"/>
这样就发布了一个myweb的项目,访问路径为: localhost:8080/test
第三种是在tomcat\conf 文件夹下面的server.xml文件的HOST节点中添加一个Context子节点:
例如:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <!-- 在这里加入下面的内容即可 --> <Context path="/test" docBase="D:\Program Files\Genuitec\workspace\myweb\WebRoot"/> </Host>
即可实现同样的发布myweb项目的效果,同样访问路径为:localhost:8080/test
下面添加一个账号密码都为root的用户:
添加一个root/root的用户:
tomcat-users.xml
<?xml version='1.0' encoding='cp936'?> <tomcat-users> <role rolename="manager-gui"/> <user username="root" password="root" roles="manager-gui"/> </tomcat-users>
修改Tomcat配置。步骤如下:
- 在Eclipse中双击Tomcat server,打开Tomcat配置页面。
- 修改Server locations为Use Tomcat installation。
- 修改Deploy path为webapps。
- 保存配置即可。
PS:如果不能修改配置,在Server中删除Tomcat,重新添加一次,即可配置。
tomcat的源码中大量使用了门面模式(facade pattern):
例如:
/**
* HttpSession的实际类型,包装了org.apache.catalina.session.StandardSession类
*/
StandardSessionFacade session;
/**
* HttpServletRequest的实际类型,包装了org.apache.catalina.connector.Request类
*/
RequestFacade requst;
/**
* HttpServletResponse的实际类型,包装了org.apache.catalina.connector.Response类
*/
ResponseFacade response;
/**
* ServletConfig的实际类型,包装了org.apache.catalina.core.StandardWrapper类
*/
StandardWrapperFacade servletConfig;
/**
* ServletContext的实际类型,包装了org.apache.catalina.core.ApplicationContext类
*/
ApplicationContextFacade servletContext;
我们使用tomcat的时候,获取到的HttpServletRequest对象实际上是RequestFacade对象,RequestFacade对象里面包装了org.apache.catalina.connector.Request类,也就是说RequestFacade是org.apache.catalina.connector.Request的门面类。。。
其它的类似。