ナニートムキャットクイックスタート

img


背景紹介

Apache Tomcatは、Java Servlet、JavaServer Pages(JSP)、Java Expression Language、およびJavaのWebSocketテクノロジーのオープンソース実装です。通常、TomcatをWebコンテナーまたはServletコンテナーと呼びます。

tomcatバージョンと対応する仕様の間のマッピング関係:


img


ダウンロードリンク

https://tomcat.apache.org/download-90.cgi

ローカルにダウンロードして解凍します。


img


メインディレクトリを入力します。


img


Tomcatカタログの紹介

置き場

起動、シャットダウン、その他のスクリプト。これらの.shファイル(Unixシステムの場合)は、これらの.batファイル(Windowsシステムの場合)の機能コピーです。Win32コマンドラインにはいくつかの機能がないため、他のいくつかのファイルがここに含まれています。

例:startup.batはWindowsでtomcatを起動するために使用され、startup.shはLinux環境で使用されます。これに対応して、対応するシャットダウンスクリプトがあります。

conf

Tomcat構成ファイルおよび関連するDTD。ここで最も重要なファイルはserver.xmlです。コンテナのメイン設定ファイルです。

catalina.policy:Tomcat:JVM関連の権限を制御するセキュリティポリシーファイル。詳細については、java.security.Permissionを参照してください。

catalina.properties:CommonClassLoaderなどのTomcatCatalina動作制御構成ファイル。

logging.properties:Tomcatログ構成ファイル。内部のログはJDKロギングを使用します。

server.xml:Tomcatサーバー構成ファイル(私の開発者にとって非常に重要です)。

context.xml:グローバルコンテキスト構成ファイル。リソースファイルを監視およびロードし、監視対象ファイルが変更されると自動的にロードします。

tomcat-user.xml:Tomcatロール構成ファイル。

web.xml:サーブレット標準web.xmlデプロイメントファイル。Tomcatはデフォルトで部分構成を実装します。

  • org.apache.catalina.servlets.DefaultServlet。

  • org.apache.jasper.servlet.JspServlet

ログ

ログファイルはデフォルトでここにあります。

localhosttomcatの起動に失敗した場合は、このファイルをもっと読んでください。といった:

  • NoClassDefFoundError

  • ClassNotFoundException

access最も役に立たない。

catalina.{date} 主にコンソール出力で、すべてのログが含まれています。

webapps

これは、Webアプリが配置されている場所です。実際、これらはすべて1つのプロジェクトです。

Web展開の方法を簡素化します。私たちのアプリケーションは、ここではオンライン環境に配置されません。最良の方法は外部です。

lib

Tomcatは共有ライブラリを保存します。といった:

  • ecj-4.17.jar:eclipseJavaコンパイラ

  • jasper.jar:JSPコンパイラ。

作業

JSPでコンパイルされたファイルなど、tomcatの実行時にコンパイルされたファイルを保存します。

臨時雇用者

実行時に生成された一時ファイルを保存します。

tomcatを開始します

tomcatを開始します

Linux環境のstartup.shに対応するwindowsの下のbinディレクトリでstartup.batを直接起動します。

ダブルクリックして開始します。コンソールはポート8080を入力し、次にアクセスします。

http:// localhost:8080 /

ページ表示:


img


これは、tomcatが正常に起動したことを意味します。

このとき、ROOTディレクトリが要求されます。http://localhost:8080/

例:できますhttp://localhost:8080/manager

tomcatにデプロイされたサーブレットプロジェクト

Webプロジェクトを作成する

mavenを使用してWebプロジェクトを作成します。tomcatはServletコンテナであるため、プロジェクトにServletクラスを作成し、それをwarパッケージとしてマークし、tomcatにコピーして展開します。

プロジェクトの構成は次のとおりです。


img


依存関係を追加する

    <project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation = "http:/ /maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd ">
     <modelVersion> 4.0.0 </ modelVersion>
     <groupId> com.tian.maven </ groupId >
     <artifactId> my-web-maven </ artifactId>
     <packaging> war </ packages>
     <version> 1.0-SNAPSHOT </ version>
     <name> my-web-maven Maven Webapp </ name>
     <url> http: //maven.apache.org </ url>
     <dependencies>
       <dependency>
         <groupId> junit </ groupId>
         <ArtifactId> Junit </ ArtifactId>
         <version> 3.8.1 </ version>
         <scope> test </ scope>
       </ dependency>
       <dependency>
         <groupId> javax.servlet </ groupId>
         <artifactId> javax.servlet-api </ artifactId>
         <version> 3.1.0 </ version>
       </ dependency>
     </ dependencies>
     <build>
       <finalName> my-web-maven </ finalName>
     </ build>
   </ project>

DemoServletを作成する

    パッケージcom.tian.maven;

   インポートjavax.servlet.ServletException;
   インポートjavax.servlet.annotation.WebServlet;
   インポートjavax.servlet.http.HttpServlet;
   インポートjavax.servlet.http.HttpServletRequest;
   インポートjavax.servlet.http.HttpServletResponse;
   インポートjava.io.IOException;

   @WebServlet(urlPatterns = "/ demo")
   public class DemoServlet extends HttpServlet {
       @Override
       protected void doGet(HttpServletRequest req、HttpServletResponse resp)throws ServletException、IOException {
           String msg = req.getParameter( "message");
           String contextPath = req.getServletContext()。getContextPath();
           System.out.println( "contextPath =" + contextPath);
           resp.getWriter()。println(msg);
       }
   }

web.xmlには、パッケージ化のためだけに何もありません。

    <!DOCTYPE web-app PUBLIC 
    "-// Sun Microsystems、Inc .// DTD Web Application 2.3 // EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

   <web-app>
     <display-name>アーキタイプで作成されたWebアプリケーション</ display-name>
   </ web-app>

index.jspには、次のことを見つけるものは何もありません。

    <html> 
   <body>
   <h2> Hello World!</ h2>
   </ body>
   </ html>

mvnコマンドを使用してwarパッケージを作成します。


img


マークされたwarパッケージをコピーします(実際、my-web-mavenフォルダーをコピーします)。tomcatのwebappsディレクトリにコピーします。


img


次に、binディレクトリに移動してダブルクリックします


img


プロジェクトの実行後、http:// localhost:8080 /にアクセスします


img


プロジェクトが正常に開始されたことを証明します。

次に、作成したサーブレットにアクセスします。

http:// localhost:8080 / demo?message = hello


img


エラー、HTTPステータス404-見つかりません。

:ここにアクセスするときは、プロジェクト名をcontextPathとして使用する必要があります。つまり、アクセス方法は次のようになります。

http:// localhost:8080 / my-web-maven / demo?message = hello

ページに出力

こんにちは

簡単に実行できるので、プロジェクトをtomcatに正常に展開できます。

プロジェクトをIDEAでtomcatにデプロイします

プロジェクト名my-servletでサーブレットプロジェクトを作成します。


img



img


新しいクラスMyServletを作成します


img


インストールしたtomcatディレクトリを入力し、libディレクトリを入力して、servlet-api.jarを選択します。


img



img



img


[OK]をクリックします。


img


[適用]をクリックし、[OK]をクリックします。

MyServletのコンテンツを変更します。

    パッケージcom.tian.servlet;

   インポートjavax.servlet。*;
   インポートjava.io.IOException;
   インポートjava.io.PrintWriter;

   //インターフェイスServletを実装するには、次のメソッドを書き直す必要があります
   public class MyServletimplements Servlet {

       プライベート一時ServletConfigservletConfig;
       @Override
       public void init(ServletConfig servletConfig)throws ServletException {
           this.servletConfig = servletConfig;
       }

       @Override
       public ServletConfig getServletConfig(){
           return servletConfig;
       }

       @Override
       public void service(ServletRequest request、ServletResponse response)throws ServletException、IOException {
           String servletName = servletConfig.getServletName();
           // 0042页响的クラス型、浏览器将О渲染是HTML格式
           response.setContentType( "text / html");
           PrintWriter writer = response.getWriter();
           writer.println( "<html> <head> </ head>" + "<body>こんにちはこれは" + servletName + "</ body> </ html>");
       }

       @Override
       public String getServletInfo(){
           return "my first Servlet";
       }

       @Override
       public void destroy(){
       }
   }

web.xmlファイルの内容を変更します。

    <?xml version = "1.0" encoding = "UTF-8"?> <web-app xmlns = "http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi = "http:// www .w3.org / 2001 / XMLSchema-instance "xsi:schemaLocation =" http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1 .xsd "version =" 3.1 "> <servlet> <servlet-name> myServlet </ servlet-name> <servlet-class> com.tian.servlet.MyServlet </ servlet-class> </ servlet> <servlet-mapping > <servlet-name> myServlet </ servlet-name> <url-pattern> / demo </ url-pattern> </ servlet-mapping> </ web-app>

さらに、主にデモンストレーションを改善するために、index.jspのコンテンツを変更します。

    <%@ page contentType = "text / html; charset = UTF-8" language = "java"%> <html> <body> <h1> hello world </ h1> </ body> </ html>

IDEA統合トムキャット

IDEAにインストールしたtomcatを追加します。


img



img


tomcat構成インターフェースに来てください:


img


tomcatを構成します。


img


インストールディレクトリを入力します。


img


[OK]をクリックします。


img


次に、展開列を入力します。


img


作成したサーブレットプロジェクトを追加します。


img


私たちのプロジェクトは自動的に追加されます:


img


次に、[適用]をクリックし、[OK]をクリックします。

IDEAはtomcatを統合し、プロジェクトを関連付けます。以下で実行してみましょう:


img


tomcatを開始します

緑の三角形をクリックします。


img


私たちのプロジェクトがtomcatで正常に開始されたことを証明します。


img


サーブレットにアクセス

この時点で、サーブレットにアクセスできます。

http:// localhost:8080 /にアクセスしてください。ページ表示は、前に変更したindex.jspのコンテンツです。

次に、独自のサーブレットにアクセスします。

http:// localhost:8080 / demo


img


コンテンツを正常に出力しました。さて、それはこの記事のすべて、単純なtomcatエントリです。

総括する

tomcatとは、tomcatのインストール方法、tomcatの起動方法、独自のServletプロジェクトのデプロイ方法、tomcatをIDEAに統合する方法、およびtomcatを起動する方法。

人只要不失去方向,就不会失去自己



おすすめ

転載: blog.51cto.com/10983206/2592717