投稿日:2020年10月2日
更新日:2020年9月29日
今までとこれからの内容
Visual Studio Code環境で、デバッグ環境は整いました。
これからは、Java+Tomcatの勉強になります。
今回の目標は!
- Java+Tomcatの概念を学ぶ!
- 出来れば、一つプログラムを作る!
たぶん、このぐらいではないでしょうか!?
早速、作業開始!
Java+Tomcatとは
まず、記事を書いてて思うことがあります!
題名を書いても、自分で説明出来ないことです(笑)
今の私の知識は!
- .netアプリではなく、Webでシステム開発が出来る。
- Javaは、ビルド(コンパイル)しないと動かない。
- classファイルに変換される。
- 関連して、JSPがある。これは、HTMLのようなものと考えている。
- JSPもビルドが必要である。
- classファイルに変換される?(でも、jspはクライアントでは?)
- JSPがクライアント側で動くプログラムであり、Javaはサーバ側で動くプログラムである。
- 昔的?ないい方をすると、クラサ型のシステムが構築できる。
- 2層構造?3層構造?みたいな感じ?(笑)
大体、こんな感じの知識しかありません(笑)。(情けないですね~www^^;)
早々、この記事を書くために、ググります♪
- Java + Tomcatとはで、検索!
- サーブレットコンテナのひとつ!
- フムフム!まったく解りません(笑)
- Webサーバで動くJavaプログラムの事をサーブレットと言うみたいです。
- サーブレットコンテナとは、今回の場合Tomcatの事を言うみたいです。
- サーブレットコンテナのひとつ!
今回は、
「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
を参照させていただきました。
ありがとうございます。
なんか、私の勉強方法(知りたいことがちがうようなぁ~^^;
わかった!概念は、後回しとします(笑)
実践あるのみで、後から概念をつけていき方法とします(笑)
いきなり実践と言っても、ちょっとだけ検索!
ということで、いきなり実践サイトの検索し、そのサイトのデモを作ることで、理解する方法としました。
いろいろ検索してわかったこと!(間違いもあるかもしれませんが…)
- プログラムの置き場所は、下記である。
- Tomcatのインストール先のwebppsフォルダーの中!
- D:\Tomcat\Tomcat\webapps
- Jspとweb.xml、javaのファイルがあれば実行可能!
なるほど!
では、作ってみます♪
早速実践
手順は!
Helloのフィルダーを作成
D:\Tomcat\Tomcat\webapps\Hello
そのフォルダーをVSCodeで開く
(ファイルメニューのフォルダーを開く)
ファイルメニューから新規ファイルを作成する
Javaコードを書いて、HelloServlet.javaで保存する。
保存場所:D:\Tomcat\Tomcat\webapps\Hello\WEB-INF\classes\
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloServlet extends HttpServlet {
public void service(HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException {
PrintWriter out = res.getWriter();
out.println("<HTML>");
out.println("<BODY>");
out.println("<H3>Hello World!</H3>");
out.println("</BODY>");
out.println("</HTML>");
}
}
同じ様にして、web.xmlを作成する。
保存場所:D:\Tomcat\Tomcat\webapps\Hello\WEB-INF\
<!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>
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/HelloServlet</url-pattern>
</servlet-mapping>
</web-app>
jspを同じようにして作る。
保存場所:D:\Tomcat\Tomcat\webapps\Hello\
<HTML>
<BODY>
<H3>
<%
out.println("Hello World!");
%>
</H3>
</BODY>
</HTML>
ビルドバッチを作成し実行。(z01-02 Hello World)
保存場所:D:\Tomcat\Tomcat\webapps\Hello\
その前に、現在の環境変数
変数名 | パス |
---|---|
CATALINA_HOME | D:\Tomcat\Tomcat |
CLASSPATH | D:\Tomcat\Tomcat\lib |
JAVA_HOME | D:\Java\jdk1.8.0_261 |
JRE_HOME | D:\Java\jdk1.8.0_261\jre |
Path | %JAVA_HOME%\bin |
Path | %JAVA_HOME%\jre\bin |
Path | %JAVA_HOME% |
Path | %CLASSPATH%\servlet-api.jar |
Path | %CLASSPATH% |
(将来使うものも含む)
バッチのファイル名は、なんでもOK!
rem d:
rem cd Tomcat\Tomcat\webapps\Hello
javac -encoding UTF-8 -classpath %CLASSPATH%/servlet-api.jar .\WEB-INF\classes\HelloServlet.java
cmd /k
なにかしら、コードに問題がある場合は、ここでエラーになります。
上記を実行すると!
D:\Tomcat\Tomcat\webapps\Hello\WEB-INF\classes\に、HelloServlet.classのファイルが作成されます。
このファイルが実行形式のファイル!
テスト
Tomcatを起動して、下記でアクセスする
Tomcatの起動方法が解らない方は、こちらで、説明しています。
- JAVA
- http://localhost:8080/Hello/HelloServlet
- 注意:最後のスラッシュ(/)は、入れないこと!
- JSP
実行されました(祝♪)
もう私は、JAVAのプロです♪(冗談です^^;)
ここで、終わったらコピペしただけなので、意味がありませんね♪
ということで、コード(ソース)も使いながら、まとめます。
ソースの理解
HelloServlet.java
こんな感じで、コメントをつけて、理解しました。
web.xml
HelloJsp.jsp
こんな感じだと思います♪
んっ!これって~!?
- VSCode赤表示は、エラーの事?
懸案が増えましたね~^^;
とりあえず、動いたので、これで良しとしましょう~わら
ちなみに!VSコード(F5)から実行した場合
エラーがでて、先に進みませんでした。
まぁ~。赤字でエラーが出ているので、別の方法があるのでしょう!
予想では!
- たしか、プロジェクトを作る時に、いろんなプロジェクトがあった。
- そのあたりではないかと感じます。
ハマった所
概念は、弱いです(笑)
今回は、ハマりはしませんが、このままでは懸案がすごく増える予感www^^;
参考サイト
ありがとうございました♪
残っている懸案
分類 | 懸案 | 結論 | 完了 |
---|---|---|---|
Java | voidって? | Returnなし | 完了 |
Java | mainは、.netと同じmain? | ||
java | PHPでいうとたぶんechoかな? | echo! | 完了 |
VSCode | ターミナルにでてきたけど、 ブラウザはどうするの? | ||
java | throws ServletException, IOException | ||
java | 日本語が文字化け。UTF-8の指定でしょうたぶん! | ||
VSCode | VSCode赤表示は、エラーの事? | ||
懸案増えましたね~www^^;
今回のまとめ
とりあえず、概念は、ムリ!
動いたのよしとするが、懸案が色々と(笑)
でも、なんとなくわかってきているかも(笑)
ちょっと重要かも!
- JAVAは、ビルドしても、内容が変わらない!
- JAVAの入替は、Tomcat再起動が必要である。
- Jspは、プログラムを保存した時で入れ替わり可能である。
今回参照したサイトは、いいかも知れません♪
このサイトをどしどし進めて、問題点のみを記事にするかな?
どんどん、JAVAに浸かっていきますよ~(笑)
さて、がんばりますよ~♪
(でも、ハマりたくないよ~(笑))