スプリング
@Controller//1.遠隔呼び出し可能なプログラムへの呼び出し
public class Hello {
@RequestMapping("/hello")//2.URLとメソッドを接続
public void main() {
System.out.println("Hello");
}
}
ローカルサーバーから呼び出すと>
トムキャット内部で何かがオブジェクトを生成してくれるのでインスタンスメソッドも呼び出される。(staticがなくてもよい)
ちょっと java
int iv=10;//インスタント変数
static int cv=20;//スタティック変数
public void main() {
System.out.println("Hello");//インスタンス·マーサードiv,cv使用可能
}
public static void main(){//スタティックメソッドcvのみ使用可能
System.out.println(cv); ok
System.out.println(iv);エラー
ReflectionAPI=privateなので外部呼び出しが不可能なメソッドを呼び出せるようにし、クラス情報を得て強力な機能を提供
スプリングにあるからある程度だけ知ってから進めよう。
HTTPリクエストと応答
リモートプログラムをURLから要請すると、トム·ギャットがHttpServletRequestオブジェクトを作成し、要請した情報を作成する。
要請した情報が必要なときはメインメソッドから媒介変数として入力すればよい
?year=2021&month=6&day=21
=getQueryString()
String year = request.getParameter(“year”);
String year = request.getParameter(“month”);
String year = request.getParameter(“day”);
@Controller
public class Hello {
@RequestMapping(“/requestInfo”)
public void main(HttpServletRequest request,HttpServletResponse respons) {
}
その後、HttpServletResponseを利用したブラウザーに出力する。
出力部分にこのように書かなければならない。
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");//ハングル文字化け
PrintWriterout=response.getWriter();//responseオブジェクトからブラウザーへの出力ストリームを得る。
out.println(year+"年"+month+"月"+day+"日は");
out.println(yoli+"曜日です");
実行するたびに結果が変わること=動的リソース
画像ファイルみたいなもの変わらないもの=静的リソース
サーバが提供するリソースは2つあり、1.動的リソース、2.静的リソースがある。
クライアント:サービスを要請するアプリケーション
サーバ:サービスを提供するアプリケーショントムキャット(サーバアプリケーション)
クライアント>リクエスト>サーバ(データ処理)>応答>出力
サーバには様々な種類があるが、どのようなサービスを行うかによって異なる。
Emailserver=Eメールサービスを提供
Fileserver=ファイルサービスを提供
Webserver=ブラウザを通じて受けられるすべてのサービスウェブサービスが提供するサービス
クライアントがipアドレスに要請したとき、どのサーバに対する要請なのかわからないので、
この時必要なのがポート番号だ。 ウェブサーバーは基本80のため省略可能だがトムキャットを使うと:8080なので省略不可
WASとは何か。Webアプリケーション(プログラム)をサービスするサーバWebApplicationServer
サーバにプログラムをインストールしてクライアントがこれを使用できるようにするクライアントは実行結果のみ受け取る
トムキャットをWASと呼ぶ。
アップデートの容易性と容量の確保
トムキャットの内部構造
クライアントが要請すると8080ポートに行くとそこでスレッドプールが待っている リクエストにつきスレッド1つが処理する
サーバの中(トルクキャット)にサービス(コネクトhttp:灯に合わせて)があり、そのサービスを処理するのがエンジンですが、エンジンの中にはホストが複数いる可能性があり、
ホストの中にはコンテキストがいくつかありうる。それがスプリングプロジェクト設置されることができ、その中にプログラムがタブレットがコントローラメソッドを呼び出す。
トムキャットの設定ファイル
トムキャット設置経路/conf/server.xml:Tomcatサーバー設定ファイル
トムキャット設置経路/conf/web.xml:Tomcatのすべてのwebappの共通設定1
ウェブアプリ名/WEB-INF/web.xml:webappの個別設定2
server.xmlタブレットまでの流れあり
web.xmlを見ると、複数のサブレットが作られていますが、1.遠隔プログラム登録2.URLマッピングなどがありますが、これをいちいち作るのは難しいので、
1.@Contoller2.@RequestMappingのアノテーションに変わる