日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

tomcat安装启动配置

發布時間:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tomcat安装启动配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

服務器:

服務器的概念非常的廣泛,它可以指代一臺特殊的計算機(相比普通計算機運行更快、負載更高、價格更貴),也可以指代用于部署網站的應用。我們這里說的服務器,其實是web服務器,或者應用服務器。它本質就是一個軟件,一個應用,通過軟硬件的結合從而達到發布應用(工程)的作用,讓用戶可以通過瀏覽器訪問我們的應用。

常見的應用服務器,請看下表:

  • 重量級:重量級服務器實現了所有的JavaEE規范
  • 輕量級:輕量級服務器實現了部分JavaEE規范
服務器名稱說明
weblogic實現了javaEE規范,重量級服務器,又稱為javaEE容器
websphereAS實現了javaEE規范,重量級服務器。
JBOSSAS實現了JavaEE規范,重量級服務器。免費的。
Tomcat實現了jsp/servlet規范,是一個輕量級服務器,開源免費。

Tomcat:

Tomcat是Apache軟件基金會的一個核心項目,由Apache、Sun和其它公司共同開發而成的。由于有了Sun公司的參與支持,最新的Servlet、JSP規范總是能在Tomcat中得到體提現,因為Tomcat技術先進、性能穩定,而且免費,所以深受Java愛好者并得到了部分軟件開發商的認可,已成為目前開發企業JavaWeb應用的最佳Servlet容器選擇之一。

Tomcat各版本的技術支持:

Servlet SpecJSP SpecEL SpecWebSocket SpecAuthentication (JASIC) SpecApache Tomcat VersionLatest Released VersionSupported Java Versions
6.03.15.0TBDTBD10.1.x10.1.0-M6 (alpha)11 and later
5.03.04.02.02.010.0.x10.0.128 and later
4.02.33.01.11.19.0.x9.0.548 and later
3.12.33.01.11.18.5.x8.5.727 and later
3.12.33.01.1N/A8.0.x (superseded)8.0.53 (superseded)7 and later
3.02.22.21.1N/A7.0.x (archived)7.0.109 (archived)6 and later(7 and later for WebSocket)
2.52.12.1N/AN/A6.0.x (archived)6.0.53 (archived)5 and later
2.42.0N/AN/AN/A5.5.x (archived)5.5.36 (archived)1.4 and later
2.31.2N/AN/AN/A4.1.x (archived)4.1.40 (archived)1.3 and later
2.21.1N/AN/AN/A3.3.x (archived)3.3.2 (archived)1.1 and later

Mac版本下載:

下載地址:http://tomcat.apache.org/

啟動Tomcat:

  • 下載好了解壓到指定路徑,并進到bin目錄下
  • 打開終端,把bin目錄拖到cd后面

啟動:

  • Windows啟動:startup.bat Windows
  • Linux/Mac啟動:./startup.sh

停止:

  • Windows停止:shutdown.bat Windows
  • Linux/Mac停止:./shutdown.sh
# cd后面是你的tomcat路徑 cd /Users/itzhuzhu/Desktop/Java/plug/apache-tomcat-10.0.2/bin# 啟動tomcat ./startup.sh# 關閉Tomcat ./shutdown.sh

訪問http://localhost:8080/可以看到這樣的就說明啟動了
自己部署項目的話就放在在webapps目錄下瀏覽器訪問對應的路徑就可以了
為什么需要寫8080才可以訪問

  • 正常情況下訪問一個網站都是只要輸入域名就可以了,但是Tomcat提供的是http服務,而http的端口默認是80,所以為了和http的端口貼近,就默認是8080了,而且在Linux里不是root用戶的話是不能使用1024以內的端口號的

Linux版本下載與安裝:

  • 下載Tomcat,和Mac版一樣,用tar.gz的上傳到Linux
  • 在crt上 使用 alt+p,將windows上的軟件拖進去即可(root目錄)
  • 找個地方新建一個tomcat文件夾
  • mkdir tomcat
  • 移動 tomcat…tar.gz 到 /usr/local/tomcat
  • mv apache-tomcat-8.5.32.tar.gz /usr/local/tomcat/
  • 進入/usr/local/tomcat目錄,解壓Tomcat
  • cd /usr/local/tomcat tar -xvf apache-tomcat-8.5.32.tar.gz
  • 進入 /usr/local/tomcat/apache-tomcat-8.5.32/bin
  • cd /usr/local/tomcat/apache-tomcat-8.5.32/bin
  • 啟動tomcat
  • ./startup.sh
  • 修改防火墻的規規則
  • # 放行8080 端口,修改配置文件 cd /etc/sysconfig vi iptables # 復制(yy , p) -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT # 改成 -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT # 重啟加載防火墻或者重啟防火墻 service iptables reload # 或者 service iptables restart

    Tomcat目錄結構:

    Tomcat異常:

    啟動問題:

  • 啟動一閃而過
    • 原因:沒有配置環境變量。
    • 解決辦法:配置上JAVA_HOME環境變量
  • Address already in use : JVM_Bind
    • 原因:端口被占用
    • 解決辦法:修改conf文件下的server.xml配置文件修改端口號,(修改69行的port=”8080″)修改完再啟動
  • 啟動產生很多異常,但能正常啟動
    • 原因:Tomcat中部署著很多項目,每次啟動這些項目都會啟動。而這些項目中有啟動報異常的。
      解決辦法:
    • 找到報異常的項目,就把它從發布目錄中移除。
    • 不能確定報異常的項目,就重新解壓一個新的Tomcat。
  • 啟動亂碼
    • 原因:可能和你的控制臺的字符集不匹配
      解決辦法:
    • 打開conf下的logging.properties的配置文件,47行的UTF-8改成GBK,或者GBK改成UTF-8

    IDEA集成Tomcat:


    新建項目就可以使用Tomcat了
    創建完是這樣的

    URL:自己隨便寫,把下面兩個改為更新和資源便于后續更新時不需要重啟服務器

    都配置完畢,就可以啟動Tomcat了

    Tomcat報錯:java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet
    報錯內容如下,

    類型 異常報告消息 實例化Servlet類[org.springframework.web.servlet.DispatcherServlet]異常描述 服務器遇到一個意外的情況,阻止它完成請求。例外情況jakarta.servlet.ServletException: 實例化Servlet類[org.springframework.web.servlet.DispatcherServlet]異常org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:354)org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:383)org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:863)org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1682)org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)java.base/java.lang.Thread.run(Thread.java:834) 根本原因。java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletjava.base/java.lang.ClassLoader.defineClass1(Native Method)java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2499)org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:873)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1409)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1253)java.base/java.lang.ClassLoader.defineClass1(Native Method)java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2499)org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:873)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1409)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1253)java.base/java.lang.ClassLoader.defineClass1(Native Method)java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2499)org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:873)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1409)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1253)org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:354)org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:383)org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:863)org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1682)org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)java.base/java.lang.Thread.run(Thread.java:834) 根本原因。java.lang.ClassNotFoundException: javax.servlet.http.HttpServletorg.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1445)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1253)java.base/java.lang.ClassLoader.defineClass1(Native Method)java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2499)org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:873)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1409)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1253)java.base/java.lang.ClassLoader.defineClass1(Native Method)java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2499)org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:873)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1409)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1253)java.base/java.lang.ClassLoader.defineClass1(Native Method)java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2499)org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:873)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1409)org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1253)org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:354)org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:383)org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:863)org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1682)org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)java.base/java.lang.Thread.run(Thread.java:834) ):注意 主要問題的全部 stack 信息可以在 server logs 里查看

    解決:
    1、更換Tomcat版本,我是10版本換成了9就沒問題了,不知道為什么。
    2、網上說要加依賴,這個沒試,

    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope></dependency>

    Tomcat部署項目找不到war包:

    在我們啟動項目時發現tomcat配置里找不到war包,這個時候啟動就會有問題。把下面的操作跟著做一遍即可。

    1、首先找到項目結構

    2、找到工件,點擊添加

    3、在工件中添加web應用程序,選擇基于模塊
    然后會彈出彈框,點擊確定

    4、這個時候的配置如圖所示,點擊確定即可

    5、回到Tomat配置文件中,點擊添加工件就會出現war包了

    點擊確定,到這里就配置好了

    JavaWeb應用目錄結構詳解

    Tomcat創建好以后會自動創建幾個目錄

    • src:存放源代碼的
    • web:存在項目相關資源的(html、css、js、jsp、圖片等)
    • WEB-INF:存放相關配置的(web.xml等),如果有web.xml或者.class文件時,該目錄必須存在,且嚴格區分大小寫。該目錄下的資源,客戶端是無法直接訪問的。目錄中內容如下:
    • classes:web應用的class文件(加載順序:我們的class,lib目錄中的jar包,tomcat的lib目錄中的jar包。優先級依次降低)
    • lib:web應用所需的jar包(tomcat的lib目錄下jar為所有應用共享)
    • web.xml:web應用的主配置文件

    Tomcat啟動報錯:java.net.BindException

    報錯內容:沒復制完,當時還有別的內容,反正一般起不來基本都是端口沖突的問題,改端口或者kill就行了。有時候是因為剛安裝Tomcat然后啟動訪問8080測試,當時忘記關閉,然后又去IDEA集成Tomcat,就會遇到沖突的問題。

    org.apache.catalina.LifecycleException: 協議處理程序初始化失敗 at org.apache.catalina.connector.Connector.initInternal(Connector.java:1059) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) at org.apache.catalina.core.StandardService.initInternal(StandardService.java:556) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:1012) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) at org.apache.catalina.startup.Catalina.load(Catalina.java:747) at org.apache.catalina.startup.Catalina.load(Catalina.java:769) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:305) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:475)

    Tomcat更改端口號:

    Tomcat服務器主配置文件中配置著訪問端口,它在配置文件中寫的值是:8080。但是它不是Tomcat的默認端口。我們此處說的默認端口是,當使用默認值的時候,端口號可以省略。Tomcat的默認端口是80。

    通過在主配置文件中添加標簽實現,在conf的目錄下有一個server.xml的配置文件,如果想改端口號就找到這個

    <!-- 改成80端口號的話就不需要輸入localhost:8080了,只需要輸入localhost就可以發布正式項目的時候都是需要改為80端口號的 --><Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />

    Tomcat配置虛擬目錄:

    作用:可以發布任意目錄下的項目

  • 通過在主配置文件中添加標簽實現。
    在server.xml的元素中加一個元素。
    ? path:訪問資源虛擬目錄名稱 。URL名稱可以隨便起,但是必須在前面加上一個/
    ? docBase:項目真實存在的路徑。
  • <Host name="localhost" appBase="webapps"unpackWARs="true" autoDeploy="true"><Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="localhost_access_log" suffix=".txt"pattern="%h %l %u %t &quot;%r&quot; %s %b" /><!-- 配置了這個就可以發布指定路徑下的項目,但是一般還是都放在webapps下 --><Context path=”” docBase=”/Users/itzhuzhu/Desktop/Java”/></Host>
  • 通過寫一個獨立配置文件實現。
    寫一個獨立的xml文件,該文件名可以隨便起。在文件內寫一個元素。該文件要放在Tomcat目錄中的conf\Catalina\localhost\目錄下。需要注意的是,在使用了獨立的配置文件之后,訪問資源URI就變成了/+文件的名稱。而Context的path屬性就失效了
  • Tomcat編輯虛擬主機:

    編輯server.xml配置文件,找到在<Engine>元素在元素中添加一個

    <!-- 會在localhost訪問的時候,會到webapps下找到webdemo這個項目 --><Host name="localhost" appBase="webapps"unpackWARs="true" autoDeploy="true"Context path ="" docBase="webdemo"></Host>

    其中:

    • name:指定主機的名稱
    • appBase:當前主機的應用發布目錄
    • unparkWARs:true啟動時是否自動解壓war包
    • autoDeploy:是否自動發布
    • docBase:項目的名稱

    改完server.xml后還要修改電腦的hosts文件,加上host中name的值,如果是配置域名的話就把name的值改為域名地址,然后下面綁定域名就可以了

    127.0.0.1 localhost

    Tomcat Server處理一個http請求的過程:

    假設來自客戶的請求為:http://localhost:8080/wsota/wsota_index.jsp

  • 請求被發送到本機端口8080,被在那里偵聽的Coyote HTTP/1.1 Connector獲得

  • Connector把該請求交給它所在的Service的Engine來處理,并等待來自Engine的回應

  • Engine獲得請求localhost/wsota/wsota_index.jsp,匹配它所擁有的所有虛擬主機Host

  • Engine匹配到名為localhost的Host(即使匹配不到也把請求交給該Host處理,因為該Host被定義為該Engine的默認主機)

  • localhost Host獲得請求/wsota/wsota_index.jsp,匹配它所擁有的所有Context

  • Host匹配到路徑為/wsota的Context(如果匹配不到就把該請求交給路徑名為""的Context去處理)

  • path="/wsota"的Context獲得請求/wsota_index.jsp,在它的mapping table中尋找對應的servlet

  • Context匹配到URL PATTERN為*.jsp的servlet,對應于JspServlet類

  • 構造HttpServletRequest對象和HttpServletResponse對象,作為參數調用JspServlet的doGet或doPost方法

  • Context把執行完了之后的HttpServletResponse對象返回給Host

  • Host把HttpServletResponse對象返回給Engine

  • Engine把HttpServletResponse對象返回給Connector

  • Connector把HttpServletResponse對象返回給客戶browser

  • startup.bat詳解:

    if "%OS%" == "Windows_NT" setlocal //判斷當前系統是否是window系統rem --------------------------------------------------------------------------- //rem 是注釋(下同)rem Start script for the CATALINA Serverremrem $Id: startup.bat 302918 2004-05-27 18:25:11Z yoavs $rem ---------------------------------------------------------------------------rem Guess CATALINA_HOME if not definedset CURRENT_DIR=%cd% //設置當前目錄if not "%CATALINA_HOME%" == "" gotogotHome //如果設置了CATALINA_HOME環境變量 ,就直接到下面的gotHome處set CATALINA_HOME=%CURRENT_DIR% //如果沒有設置CATALINA_HOME,就設置CATALINA_HOME為當前目錄(其實這里她假設你進入tomcat的安裝目錄)if exist "%CATALINA_HOME%\bin\catalina.bat" gotookHome//判斷一下catalina.bat是否找到了,找到了就直接到下面的gotHome處cd .. //這里他是假設你開始已經進入到了tomcat的bin目錄,所以就退到上一級目錄set CATALINA_HOME=%cd%//現在再設置CATALINA_HOME為tomcat的安裝目錄cd %CURRENT_DIR% //這里是進入dos的當前目錄:gotHomeif exist "%CATALINA_HOME%\bin\catalina.bat" gotookHome //再次判斷catalina.bat是否找到了,找到了就直接到下面的okHome處,沒有的話,就只能提示你啦!echo The CATALINA_HOME environment variable is not defined correctlyecho This environment variable is needed to run this programgoto end:okHomeset EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat //設置要執行的文件rem Check that target executable existsif exist "%EXECUTABLE%" gotookExec //再次判斷catalina.bat是否找到了,找到了就直接到下面的okExec處,沒有的話,就提示。echo Cannot find %EXECUTABLE%echo This file is needed to run this programgoto end:okExecrem Get remaining unshifted command line arguments and save them in theset CMD_LINE_ARGS= //這里是設置參數:setArgsif ""%1""=="""" gotodoneSetArgs //判斷參數是否加入完成set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1 //將參數組成一行,接在后面shiftgotosetArgs:doneSetArgscall "%EXECUTABLE%" start %CMD_LINE_ARGS% //執行catalina.bat,最好將這行改為:echo "%EXECUTABLE%" start %CMD_LINE_ARGS% 以便閱讀、理解本文件的作用:end//這個批處理文件,主要是正確的找到catalina.bat,并且執行。當把tomcat解壓到一個地方時,通常是設置一個CATALINA_HOME的環境變量,執行這個文件時,就很容易找到 catalina.bat 如果沒有設置CATALINA_HOME的環境變量,那么你需要在dos中進入tomcat的安裝目錄,或者bin...子目錄,再執行這個文件,如果在其他目錄,將會出現提示找不到文件。修改startup.bat,使其不依賴JAVA_HOM和CATALINA_HOME變量的方法:SET JAVA_HOME=JDK目錄 SET CATALINA_HOME=解壓后Tomcat的目錄例如:set JAVA_HOME=D:\Program Files\java\jdk1.6.0_21set CATALINA_HOME=D:\Program Files\apache-tomcat-6.0.29

    web.xml詳解:

    <web-app> <display-name></display-name>定義了WEB應用的名字 <description></description> 聲明WEB應用的描述信息 <context-param></context-param> context-param元素聲明應用范圍內的初始化參數。 <filter></filter> 過濾器元素將一個名字與一個實現javax.servlet.Filter接口的類相關聯。 <filter-mapping></filter-mapping> 一旦命名了一個過濾器,就要利用filter-mapping元素把它與一個或多個servlet或JSP頁面相關聯。 <listener></listener>servlet API的版本2.3增加了對事件監聽程序的支持,事件監聽程序在建立、修改和刪除會話或servlet環境時得到通知.Listener元素指出事件監聽程序類。 <servlet></servlet> 在向servlet或JSP頁面制定初始化參數或定制URL時,必須首先命名servlet或JSP頁面。Servlet元素就是用來完成此項任務的。 <servlet-mapping></servlet-mapping> 服務器一般為servlet提供一個缺省的URL:http://host/webAppPrefix/servlet/ServletName。 但是,常常會更改這個URL,以便servlet可以訪問初始化參數或更容易地處理相對URL。在更改缺省URL時,使用servlet-mapping元素。 <session-config></session-config> 如果某個會話在一定時間內未被訪問,服務器可以拋棄它以節省內存。 可通過使用HttpSession的setMaxInactiveInterval方法明確設置單個會話對象的超時值,或者可利用session-config元素制定缺省超時值。 <mime-mapping></mime-mapping>如果Web應用具有想到特殊的文件,希望能保證給他們分配特定的MIME類型,則mime-mapping元素提供這種保證。<welcome-file-list></welcome-file-list> 指示服務器在收到引用一個目錄名而不是文件名的URL時,使用哪個文件。 <error-page></error-page> 在返回特定HTTP狀態代碼時,或者特定類型的異常被拋出時,能夠制定將要顯示的頁面。 <taglib></taglib> 對標記庫描述符文件(Tag Libraryu Descriptor file)指定別名。此功能使你能夠更改TLD文件的位置,而不用編輯使用這些文件的JSP頁面。 <resource-env-ref></resource-env-ref>聲明與資源相關的一個管理對象。 <resource-ref></resource-ref> 聲明一個資源工廠使用的外部資源。<security-constraint></security-constraint> 制定應該保護的URL。它與login-config元素聯合使用 <login-config></login-config> 指定服務器應該怎樣給試圖訪問受保護頁面的用戶授權。它與sercurity-constraint元素聯合使用。 <security-role></security-role>給出安全角色的一個列表,這些角色將出現在servlet元素內的security-role-ref元素的role-name子元素中。分別地聲明角色可使高級IDE處理安全信息更為容易。 <env-entry></env-entry>聲明Web應用的環境項。 <ejb-ref></ejb-ref>聲明一個EJB的主目錄的引用。 < ejb-local-ref></ ejb-local-ref>聲明一個EJB的本地主目錄的應用。 </web-app>

    總結

    以上是生活随笔為你收集整理的tomcat安装启动配置的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。