Tomcat -ServletでHelloWorldしてみる(Mac)
インストールされてない方は前回記事からお願いします。
今回は以下のサイトの流れで進めているので、
こちらのサイトの方も参考にしてください!
管理用のユーザの追加
$ vim /usr/local/Cellar/tomcat/8.5.11/libexec/conf/tomcat-users.xml
/usr/local/Cellar/tomcat/8.5.11/libexec/conf/
にある
tomcat-users.xml
というファイルを開きましょう。
自分はvimで開いたため上のコマンドを使用しましたが
テキストエディタで開いて構いません。
<role rolename="manager-gui"/> <user username="tomcat" password="tomcat" roles="manager-gui"/>
tomcat-users
というタグ内に追記してください!
追記できたら保存してサーバの起動を行いましょう。
起動
$ /usr/local/Cellar/tomcat/8.5.11/bin/catalina start
起動できたらTomcatの画面で画面右のManager Appというボタンを押します。
先ほど追記したusernameとpasswordを入力し、管理画面が表示できれば設定完了です。
アプリケーションの構成
Webアプリのルートとなるディレクトリを作ります。
/usr/local/Cellar/tomcat/8.5.11/libexec/webapps/
の中にtest
というディレクトリを作りましょう。
webapps/ ├ test/
さらにtestの中に以下のようにディレクトリを作成しましょう。
webapps/ ├ test/ ┗ WEB-INF/ ┗ classes/
test/
の中にWEB-INF/
、
そのWEB-INF/
の中にclasses/
という感じです。
これがアプリケーションの構成になります。
サーブレットの作成
サーブレットってなんだろう?と自分も思いました。
以下のサイトがすごくわかりやすかったので紹介しておきます。
簡単に言うとサーブレットとは
「WEBアプリを開発するために作られたJavaプログラムの部品」
とありますね!
HelloWorld.java
を作成していきます。
HelloWorld.java
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{ response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>Hello World!</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Hello World!</h1>"); out.println("</body>"); out.println("</html>"); } }
ファイルが完成したら適当な場所に保存しコンパイルします。
$ javac -classpath "/usr/local/Cellar/tomcat/8.5.11/libexec/lib/servlet-api.jar" HelloWorld.java
-classpath " "
の部分はインストールした環境によって異なるので
自分がインストールした場所を指定しましょう。
出来上がった HelloWorld.class
ファイルを
先ほどのclasses/
ディレクトリに置きましょう。
webapps/ ├ test/ ┗ WEB-INF/ ┗ classes/ ┗ HelloWorld.class
classファイルはclassesディレクトリに保存します!
次に,WEB-INF/
ディレクトリ内に,下記のような web.xml
を作成します。
web.xml
<?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <servlet> <servlet-name>HelloWorldName</servlet-name> <servlet-class>HelloWorld</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorldName</servlet-name> <url-pattern>/HelloWorldPage</url-pattern> </servlet-mapping> </web-app>
記述の仕方に関しては、以下の記事がすごくわかりやすいです!
現在のフォルダ構成は、以下のようになります。
webapps/ ├ test/ ┗ WEB-INF/ ├ web.xml ┗ classes/ ┗ HelloWorld.class
ここまできたら、あとは実行できるか確認してみます!
以下のURLにアクセスしてみましょう。
http://localhost:8080/test/HelloWorldPage
HelloWorldできたら、完成です。
お疲れ様でした。
すごく長かったですね;;