問題:在Apache 5.0 和 5.5種,我需要為每一個程序修改web.XML文件中的servlet的名字,類的名字等等信息。而這些是在Apache Tomcat 4.0中不曾看到的。為什麼會這樣呢?
Jeff Hanson回答:根據Tomcat 5.0發布的說明: “讓web應用程序可以問CGI 和SSI,這在當使用一個安全管理程序(例如一個惡意的Web應用程序可以使用它們來躲開安全管理程序來獲得訪問控制)會制造安全問題。在Tomcat 5.0,它們都被設置為不被許可的,因為我們的目標是提供一個完全安全的默認設置。盡管如此,CGI 和SSI仍然是可以使用的。”
如何可以使用CGI: 把文件$CATALINA_HOME/server/lib/servlets-cgi.renametojar重新命名為$CATALINA_HOME/server/lib/servlets-cgi.jar. #8226; 在文件$CATALINA_HOME/conf/web.xml中,你需要把兩個地方的注視去掉,servlet聲明和servlet mapping。servlet 聲明看起來類似於下面:: <servlet> <servlet-name>cgi</servlet-name> ... </servlet> 而servlet mapping看起來類似於下面:: <servlet-mapping> <servlet-name>cgi</servlet-name> <url-pattern>/cgi-bin/*</url-pattern> </servlet-mapping> 這些servlet 聲明和mappings可以交替地加入到你的Web 應用程序部署描述符中。 使得SSI可用: ? 把文件$CATALINA_HOME/server/lib/servlets-ssi.renametojar重新命名為$CATALINA_HOME/server/lib/servlets-ssi.jar. #8226; 在文件$CATALINA_HOME/conf/web.xml中,你需要把兩個地方的注視去掉,servlet 聲明和servlet mapping。 servlet 聲明看起來類似於下面: <servlet> <servlet-name>ssi</servlet-name> ... </servlet> 而servlet mapping看起來類似於下面: <servlet-mapping> <servlet-name>ssi</servlet-name> <url-pattern>*.sHtml</url-pattern> </servlet-mapping> 這些servlet 聲明和mapping可以交替地加入到你的Web 應用程序部署描述符中。 "