JavaからSpring-Serviceへ

12831 ワード

前の文章を読むと、タブレットとは何かがわかります.サーブレットは特殊な*にすぎず、サーバを適用して実装する必要があります.そしていじめやすいのはtomcatです.
*インプリメンテーション...すなわちservletを含むクラスファイルはサーブレットとも呼ばれる.
次の内容はTutorialspointチュートリアルのちゅうかんで、その後の内容は目で見るだけで十分です.特にFilter部分を見ます.スプリング用のフィルターと同じように見えます!
タブレット実習
これはMacOS規格です.
トム猫装置
brew install tomcat@8
brew services start tomcat@8
brew info tomcat@8 # 톰캣 주소 확인하기
ちょうどバージョン8を使っていたので8に固定しました
Tomcatディレクトリに入るはずですが、MacOSなら/usr/local/Cellar/tomcat@8/$VERSION/libexec/までです.
ここまでついていけば、http://localhost:8080/で誰が見ても猫のページしか思いつかない.また、このファイルはwebapps/ROOT/index.jspに存在する.ただし、webapps/ROOT/WEB-INF/web.xmlは、index.jspに関連するコンテンツがないROOTというアプリケーションのプロファイルです.
しかしconf/web.xmlファイルを見ると、一番下にこんな内容があります.これは私に影響を与えたかもしれません.
// ...
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

</web-app>
サーブレットコードの作成
後で移動するのが難しいので、いっそjavaコードをROOT/WEB-INF/classesの下に作成すればいいです.ここは指定位置です.
// HelloWorld.java

// Import required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

// Extend HttpServlet class
public class HelloWorld extends HttpServlet {
 
   private String message;

   public void init() throws ServletException {
      // Do required initialization
      message = "Hello World";
   }

   public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      
      // Set response content type
      response.setContentType("text/html");

      // Actual logic goes here.
      PrintWriter out = response.getWriter();
      out.println("<h1>" + message + "</h1>");
   }

   public void destroy() {
      // do nothing.
   }
}
バイトコード(.class)にコンパイルできますが、デフォルトのjdkにはservletパケットはありません.次のようにしましょう
CLASSPATH=/usr/local/Cellar/tomcat@8/$VERSION/libexec/lib/servlet-api.jar:$CLASSPATH javac HelloWorld.java
/usr/local/Cellar/tomcat@8/$VERSION/libexec/webapps/ROOT/WEB-INF/classes/HelloWorld.class<<という形に位置決めしましょう.
これがよく言われるタブレットです./usr/local/Cellar/tomcat@8/$VERSION/libexec/webapps/ROOT/WEB-INF/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"
  metadata-complete="true">

  <display-name>Welcome to Tomcat</display-name>
  <description>
     Welcome to Tomcat
  </description>

  <servlet>
    <servlet-name>HelloWorld</servlet-name>
    <servlet-class>HelloWorld</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>HelloWorld</servlet-name>
    <url-pattern>/HelloWorld</url-pattern>
    <servlet-name>HelloWorld</servlet-name>
    <url-pattern>/HelloWorld2</url-pattern>
  </servlet-mapping>

</web-app>
その後Tomcatを再実行
brew services restart tomcat@8
では、http://localhost:8080/HelloWorld2http://localhost:8080/HelloWorld2に接続すると、みんな同じ画面が表示されます.
もう一度確認しておけばよかった
Tomcatを再実行した後、ブラウザでリフレッシュを繰り返します.通常のHelloWorldも含めて、3つの情報が表示されます.