背景紹介
Apache Tomcatは、Java Servlet、JavaServer Pages(JSP)、Java Expression Language、およびJavaのWebSocketテクノロジーのオープンソース実装です。通常、TomcatをWebコンテナーまたはServletコンテナーと呼びます。
tomcatバージョンと対応する仕様の間のマッピング関係:
ダウンロードリンク
https://tomcat.apache.org/download-90.cgi
ローカルにダウンロードして解凍します。
メインディレクトリを入力します。
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
ログ
ログファイルはデフォルトでここにあります。
localhost
tomcatの起動に失敗した場合は、このファイルをもっと読んでください。といった:
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 /
ページ表示:
これは、tomcatが正常に起動したことを意味します。
このとき、ROOTディレクトリが要求されます。http://localhost:8080/
例:できますhttp://localhost:8080/manager
tomcatにデプロイされたサーブレットプロジェクト
Webプロジェクトを作成する
mavenを使用してWebプロジェクトを作成します。tomcatはServletコンテナであるため、プロジェクトにServletクラスを作成し、それをwarパッケージとしてマークし、tomcatにコピーして展開します。
プロジェクトの構成は次のとおりです。
依存関係を追加する
<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パッケージを作成します。
マークされたwarパッケージをコピーします(実際、my-web-mavenフォルダーをコピーします)。tomcatのwebappsディレクトリにコピーします。
次に、binディレクトリに移動してダブルクリックします
プロジェクトの実行後、http:// localhost:8080 /にアクセスします
プロジェクトが正常に開始されたことを証明します。
次に、作成したサーブレットにアクセスします。
http:// localhost:8080 / demo?message = hello
エラー、HTTPステータス404-見つかりません。
注:ここにアクセスするときは、プロジェクト名をcontextPathとして使用する必要があります。つまり、アクセス方法は次のようになります。
http:// localhost:8080 / my-web-maven / demo?message = hello
ページに出力
こんにちは
簡単に実行できるので、プロジェクトをtomcatに正常に展開できます。
プロジェクトをIDEAでtomcatにデプロイします
プロジェクト名my-servletでサーブレットプロジェクトを作成します。
新しいクラスMyServletを作成します
インストールしたtomcatディレクトリを入力し、libディレクトリを入力して、servlet-api.jarを選択します。
[OK]をクリックします。
[適用]をクリックし、[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を追加します。
tomcat構成インターフェースに来てください:
tomcatを構成します。
インストールディレクトリを入力します。
[OK]をクリックします。
次に、展開列を入力します。
作成したサーブレットプロジェクトを追加します。
私たちのプロジェクトは自動的に追加されます:
次に、[適用]をクリックし、[OK]をクリックします。
IDEAはtomcatを統合し、プロジェクトを関連付けます。以下で実行してみましょう:
tomcatを開始します
緑の三角形をクリックします。
私たちのプロジェクトがtomcatで正常に開始されたことを証明します。
サーブレットにアクセス
この時点で、サーブレットにアクセスできます。
http:// localhost:8080 /にアクセスしてください。ページ表示は、前に変更したindex.jspのコンテンツです。
次に、独自のサーブレットにアクセスします。
http:// localhost:8080 / demo
コンテンツを正常に出力しました。さて、それはこの記事のすべて、単純なtomcatエントリです。
総括する
tomcatとは、tomcatのインストール方法、tomcatの起動方法、独自のServletプロジェクトのデプロイ方法、tomcatをIDEAに統合する方法、およびtomcatを起動する方法。
「」人只要不失去方向,就不会失去自己