Tomcatのサーブレットとサンプルを実行します
この記事では、サーブレットを作成し、その後のTomcatプロセス全体に展開します。本明細書では「徹底的な解体Tomcat_Jetty」コンテンツを参照。
まず、開発ステップベースのweb.xml
- ダウンロードは、Tomcatをインストールします。
- MyServletはHttpServletのJavaクラスの継承を書きます。
- Javaクラスファイルは、クラスファイルにコンパイル。
- Webアプリケーションのディレクトリ構造を確立し、web.xmlファイルを設定します。
- Webアプリケーションの展開。
- Tomcatを起動します。
- ブラウザのアクセスは、結果を確認します。
- Tomcatのログを表示します。
1件のダウンロード、Tomcatをインストール
Tomcatの公式ウェブサイト(https://tomcat.apache.org/download-90.cgi)に最新のTomcatを(、対応するシステムのバージョンをダウンロードし、実際の状況を選択し、一例として、本論文のMacOSシステムする必要があります)をダウンロードしてください。ダウンロードが完了したら、あなたは抽出することができます。
2書き込みに、MyServletクラス
クラスを継承するのHttpServletクラスを作成し、その複製のdoGet()メソッドとdoPost()メソッドがmyservlet。
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
* @Version V1.0
* @Description: MyServlet 类
*/
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("MyServlet 在处理 get()请求...");
PrintWriter out = resp.getWriter();
resp.setContentType("text/html;charset=utf-8");
out.println("<strong>doGet My Servlet!</strong><br>");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("MyServlet 在处理 post()请求...");
PrintWriter out = resp.getWriter();
resp.setContentType("text/html;charset=utf-8");
out.println("<strong>doPost My Servlet!</strong><br>");
}
}
3.コンパイルに、MyServlet
ここで私たちはIDEの方法を使用していないのでMyServlet.javaクラスをコンパイルするとき、そう、私たちは、javacコマンドを使用します。私たちは、クラスでのHttpServletに、MyServletを継承したので、しかし、我々は、注意を払う必要はなくHttpServletのJDK独自のクラス、それは一緒にパッケージのjarパッケージのHttpServletを持参する必要があるので!それ以外の場合は、次のエラーメッセージ:
私たちの最初のTomcatは、同じディレクトリにコピーMyServlet.java下のディレクトリのlib /サーブレット-api.jarのを抽出しに、MyServletをコンパイルするには、次のコマンドを実行します。
javac -cp ./servlet-api.jar MyServlet.java
4ビルドWebアプリケーションのディレクトリ
フォルダを作成し、次のようにプロジェクトMyWebApp、その主なカタログであります:
MyWebApp/WEB-INF/web.xml
MyWebApp/WEB-INF/classes/MyServlet.class
前記コンテンツの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_4_0.xsd"
version="4.0"
metadata-complete="true">
<description> Servlet Example. </description>
<display-name> MyServlet Example </display-name>
<request-character-encoding>UTF-8</request-character-encoding>
<servlet>
<servlet-name>myServlet</servlet-name>
<servlet-class>MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>myServlet</servlet-name>
<url-pattern>/myservlet</url-pattern>
</servlet-mapping>
</web-app>
5アプリケーションの展開MyWebApp
MyWebAppこのディレクトリは、WebアプリケーションTomcatのインストールディレクトリの下のディレクトリにコピーされます。
Tomcatの6開始
それはWindowsシステムの場合はstartup.batを実行し、binディレクトリの下にTomcatのインストールディレクトリを検索し、Linuxシステムならば、startup.shを実行
7ブラウザアクセス
お使いのブラウザでこのURLにアクセスしてください: http://localhost:8080/MyWebApp/myservlet
同様に、ポストインボークは、同様の結果が得られます!
8ビューTomcatのログ
私たちは、ログを表示するには、次のコマンドを使用して、ログの下のTomcat / catalina.outファイルを見ることができます:
tail -100f catalina.out
第二に、注釈ベースの開発@WebServlet
実質的に一貫性のある上述のステップのweb.xmlに基づき、以下の点が異なっています!
MyServletクラスコード:それは1と異なっています
以下のように、に、MyServletに@WebServletコードを追加します。
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
* @Version V1.0
* @Description: MyServlet 类
*/
@WebServlet("/myAnnotationServlet")
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("MyServlet 在处理 get()请求...");
PrintWriter out = resp.getWriter();
resp.setContentType("text/html;charset=utf-8");
out.println("<strong>doGet My Servlet!</strong><br>");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("MyServlet 在处理 post()请求...");
PrintWriter out = resp.getWriter();
resp.setContentType("text/html;charset=utf-8");
out.println("<strong>doPost My Servlet!</strong><br>");
}
}
設定の削除のweb.xml:2から2つの異なり
ノートは、関連する設定が施されているので、MyWebAppプロジェクトの下には、web.xmlのを設定する必要はありません。
33差異:アクセスアドレスの変更
@WebServletの設定パス/ myAnnotationServletので、ここではそのためのアクセス・パスは、次のようになります。
http://localhost:8080/MyWebApp/myAnnotationServlet
残りのステップは、もはや住む基本的にはweb.xmlファイルで同じ設定ではありません!後期この場合は、分析は、Tomcatのサーブレットがロードおよび実行する方法を説明します!
マイクロチャンネル公共数:ソース・ベイ
出典ベイ:我々は、マイクロチャネル公共数に焦点を歓迎します。この数は、随時、公開は〜ソースコードに関連して、関連する技術開発、共同発展と共通の進捗状況を共有します
ブログ:
- ジェーン帳:https://www.jianshu.com/u/91378a397ffe
- CSDN:https://blog.csdn.net/ZhiyouWu
- オープンソース中国:https://my.oschina.net/u/3204088
- ナゲッツ:https://juejin.im/user/5b5979efe51d451949094265
- パークブログ:https://www.cnblogs.com/zhiyouwu/
- マイクロチャンネル公共数:ソース・ベイ
- マイクロ手紙:WZY1782357529(歓迎通信)