[TIL] JSP & Servlet 01
開始前の基本概念
jspとservletの正式な学習を開始する前に
クライアントとサーバ間のWeb動作の理解
既存のユーザであるエンドユーザとサーバとの間の通信は、上記のようになっている.
ここでDBをマークしてフォーマットします.以下のようにします.
WEB通信
クライアントは画面のフロントエンドであり、主にhtml、css、jsを使用し、jsの使用と構造化を容易にするために応答する.js, vue.jsなどを使用します.
また,ここでは,ユーザとの可用性を考慮してコードを構造化し,サーバが応答するデータをAjaxを介してJSONファイルを受信して効率的に処理し,画面に表示される速度と効率を考慮した場所がフロントである.
サーバは、クライアントから要求されたデータをデータベースとともに処理して応答する画面のバックエンドである.トラフィックが大きくてサーバーが爆発したとき、そのサーバーはここです.
また,クライアント要求を迅速に処理するために論理を記述しコードを記述する場所がBeckAndである.
DBはデータを保存する場所であり,ここで大量のユーザデータを蓄積するとビッグデータとなる.
このように多くのデータを管理するには、ビッグデータアナリストと呼ばれる専門的な人材が必要です.
WAS通信
WASを理解するには,静的ページと動的ページの違いを理解する必要がある.
静的ページは、クライアントの要求に応じて、データベース内のデータを読み出してページに戻る方法です.だからあなたはいつも同じページを展示します.つまり、コンピュータに格納されているファイルを必要に応じてロードして表示することができます.
つまり、WEB SERVERのみを使ってhtmlで書かれたページを書き出します.
ユーザのニーズに応じて適切な機能を動的に提供することはできない.
ダイナミックページは、クライアントが要求するパラメータに応じて変更されるダイナミックコンテンツを返す方法です.Webサーバ内で実行されているプログラムが生成した結果を返すだけです.
つまりWASにはWEB SERVERとWEB CONTAINERが存在する.
WEB SERVERはまずクライアントからリクエストを受けます.
予め作成したhtmlページに戻るだけで、
WEB SERVERは、データベースからファイルをロードし、クライアントに提供します.
WEB SERVERのみでは扱いにくい動的変化はhtml処理ではなくプログラミング言語を使用する必要があるため、WEB CONTAINERではJSP、ASP、PHPなどの言語でデータベースに必要なデータを処理し、演算後htmlファイルに変換してWEB SERVERに提供し、計算したhtmlページをクライアントに返す.
JSPとサーブレットの違い
上のWASでは,プログラミング言語で処理されるWEB CONTAINERによって駆動される言語は,どちらもJavaに基づいて記述されている.
ただ.
JSPはhtmlベースの構造でJavaコードを内部的に記述し,コード分離が良好である.
JSPサンプルコード
<html>
<head>
</head>
<body>
<p>....</p>
<% 자바코드 작성 %>
</body>
</html>
サーブレットはjavaコード内にhtmlコードを記述する必要があるため,コードを分離することは困難である.
サーブレットサンプルコード
PrintWriter out = response.getWriter();
out.print("<html><body>");
out.print("<p>...</p>");
out.print("</body></html>");
上図に示すように、jspはhtmlコードでjavaコードを領域に分割して記述することができる.
サーブレットはprint関数に「」と文字列で書き込まれます.
JSPとサーブレットの使用遷移
上のWASでは,プログラミング言語で処理されるWEB CONTAINERによって駆動される言語は,どちらもJavaに基づいて記述されている.
ただ.
JSPはhtmlベースの構造でJavaコードを内部的に記述し,コード分離が良好である.
JSPサンプルコード
<html>
<head>
</head>
<body>
<p>....</p>
<% 자바코드 작성 %>
</body>
</html>
サーブレットはjavaコード内にhtmlコードを記述する必要があるため,コードを分離することは困難である.サーブレットサンプルコード
PrintWriter out = response.getWriter();
out.print("<html><body>");
out.print("<p>...</p>");
out.print("</body></html>");
上図に示すように、jspはhtmlコードでjavaコードを領域に分割して記述することができる.サーブレットはprint関数に「」と文字列で書き込まれます.
JSPとサーブレットの使用遷移
初期servletとしてのみ符号化
Jsp登場
=>jsp(コラボレーションの問題)
Jsp+servletの併用
=>jspはUIを担当し、servletは論理を担当する
Jsp+servlet+classと併用
=>jspはui、servletは論理、classはデータ:MVC
JSPとサーブレットMVCモード
モデル→データ
=>クラス:javaコード
View - UI
=>jsp:javaコードを除く
コントローラ-論理
=>サーブレット:javaコード
番外)get,post要求方式
クライアントがWebサーバにページを要求する方法にはgetとpostがある.
getはurlにパラメータを直接入力し、サーバに渡します.
postはurlでは表示されずhtmlヘッダで伝達され、get方式よりもデータセキュリティの面で強い.
最近ではpost方式に加えてhttpという通信規則のほかhttpsというセキュリティ強化された通信規則を用いてhtmlファイルを暗号化して伝送している.
htmlで
formラベルのmethodをget/postのいずれかとして選択し、転送するパラメータを選択し、各入力ラベルのname属性にパラメータを入力し、その値をパラメータとして渡します.
フォームタグコード<form method="get/post" action="인자를 받을 WAS 내 웹컨테이너 프로그래밍 코드 파일이름">
<input type="text" name="인자값">
</form>
WASにおけるWebコンテナのパラメータによる伝送方式
doGetまたはdoPost関数を使用してプログラミング演算を行い、処理データの結果をパラメータを介してクライアントのWebページに送信し、動的に値を変更します.
サーブレット受信パラメータのコード// 단일파라미터일 경우
dataType 변수명 = request.getParameter("인자값");
//같은 이름의 파라미터가 여러개일 경우 배열로 받음
dataType [] 변수명 = request.getParameterValues("인자값");
Reference
この問題について([TIL] JSP & Servlet 01), 我々は、より多くの情報をここで見つけました
https://velog.io/@padd60/TIL-JSP-Servlet-01
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
<form method="get/post" action="인자를 받을 WAS 내 웹컨테이너 프로그래밍 코드 파일이름">
<input type="text" name="인자값">
</form>
// 단일파라미터일 경우
dataType 변수명 = request.getParameter("인자값");
//같은 이름의 파라미터가 여러개일 경우 배열로 받음
dataType [] 변수명 = request.getParameterValues("인자값");
Reference
この問題について([TIL] JSP & Servlet 01), 我々は、より多くの情報をここで見つけました https://velog.io/@padd60/TIL-JSP-Servlet-01テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol