servlet/jsp学習-java,関係,区別,コア概念,コード例
インターネットの三大基石 HTTP:HyperText Transfer Protocol,転送データ URL:Uniform Resource Locator、位置決めデータ HTML:HyperText Markup Language,表示データ servlet
servletはjavaであり、親HttpServiceletを継承するjavaクラスである.サーバ側で実行され、ユーザの要求を処理し、応答するために使用されます.
servlet実行プロセス:ブラウザは、要求をサーバ に送信する.サーバは、要求されたURLに基づいて、対応するservlet(servletは1つ以上)を呼び出し、servletはデータベースを操作し、情報 を取得する. servletでストリームオブジェクトを印刷することにより、生成したHTMLデータをサーバ に出力する.サーバはservletで生成するHTMLデータをクライアントブラウザ に再出力する.ブラウザは、サーバから返信されたHTMLデータに基づいて解析し、要求を再送信し、最終的にページ を表示する.
ブラウザとservletは直接コミュニケーションせず、webサーバはメディアであることがわかります.次の画像は、さまざまな関係をよく説明しています.
servlet学習サイト
jsp
jspはコンパイルされてjavaクラス(このようなスーパークラスのスーパークラス、最終的にはHttpServletとなるので、jspはservletとも言える)となるので、jspもjavaです.jsp ≈ java + html.時にはjspを書くのはHTMLを書いているようで、Javaを少しネストします.JSPは、JavaとHTMLを混在させて記述するサーブレット作成を簡略化する技術です.動的に生成されたコンテンツはJavaコードで記述され,固定された静的コンテンツはHTMLで記述される.
jspファイルは、最初の実行時にjspエンジン(JspServeret)により、対応するjavaファイルとclass(場所:tomcat/work/Catalina/localhost/webプロジェクト名/org/apache/jsp)が生成されます.
jsp構文は3つの異なるタイプに分けられる:コンパイラ命令:1.Page,ページ設定<%@page...%>)2.include、ソースレベル<%@include...%>)3.taglibスクリプト構文:1.HTMLコメント、サーブレットで生成され、ブラウザ 2. 注記を非表示にすると、サーブレットでは生成されず、ブラウザ<%-comments->3には送信されません.宣言、<%!...%>4.式、<%=...%>5.JAvaスクリプトセグメント、<%...%>、ここでjavaコード、変数、メソッドなどの動作構文を直接書き込む:、、など
jsp学習サイト
補足
servletもjspもJava EEに属するコンテンツです.サーブレットは、対応する要求に応じてデータを生成し、転送技術を通じてJSPにデータを渡し、データ表示はJSPで行う.
比較
メリット
劣勢
servlet
ロジック処理が便利
ページ表現が面倒
jsp
ページの表示が便利
ロジック処理が面倒
したがってservletとjspは相補的に使用され、一般的なプロジェクトはjsp+servlet+javabeanの構成である.もっと高級なら、sshのフレームを使います.
動的Webページ、データ動的に生成されたWebページ.動的生成とは,ウェブページが事前に存在しないのではなく,ブラウザが要求を出したときに一時的に生成することである.データベース・テクノロジーに基づいて、サーバ上に独立して存在しません.関連言語はjsp,php,asp,cgiである.
web.xml:ネットワークプログラムの重要なプロファイルで、xmlのフォーマットで、servletの構成はここにあります.サーバが起動したときにのみ、ロードします.WebプロジェクトにはWebがあります.xml、1つのwebプロジェクトに複数のservletがあります.ブラウザからリクエストが送信され、サーバはどのようにして複数のservletから必要なservletを見つけますか?web.xmlの構成はマッピングによってこの問題を解決した.関連するラベルは,,,図:urlを入力し、対応するservletクラスを見つけます.手順は1-2-3-4
Tomcat:オープンソースのWebアプリケーションサーバ.Apacheサーバが静的Webページのみをサポートしているのと比較して、Tomcatは動的Webページをサポートしています.Tomcatはservletエンジンを提供し、jspを解析することもでき、servlet、jspの開発とデバッグの第一選択である.
show me the code
jspコード
jspコンパイル後のjavaコード:(javaコードは比較的冗長で、文字列をコンパクトにした感じ.)
ブラウザでjspファイルを開くには:
servletはjavaであり、親HttpServiceletを継承するjavaクラスである.サーバ側で実行され、ユーザの要求を処理し、応答するために使用されます.
servlet実行プロセス:
ブラウザとservletは直接コミュニケーションせず、webサーバはメディアであることがわかります.次の画像は、さまざまな関係をよく説明しています.
servlet学習サイト
jsp
jspはコンパイルされてjavaクラス(このようなスーパークラスのスーパークラス、最終的にはHttpServletとなるので、jspはservletとも言える)となるので、jspもjavaです.jsp ≈ java + html.時にはjspを書くのはHTMLを書いているようで、Javaを少しネストします.JSPは、JavaとHTMLを混在させて記述するサーブレット作成を簡略化する技術です.動的に生成されたコンテンツはJavaコードで記述され,固定された静的コンテンツはHTMLで記述される.
jspファイルは、最初の実行時にjspエンジン(JspServeret)により、対応するjavaファイルとclass(場所:tomcat/work/Catalina/localhost/webプロジェクト名/org/apache/jsp)が生成されます.
jsp構文は3つの異なるタイプに分けられる:コンパイラ命令:1.Page,ページ設定<%@page...%>)2.include、ソースレベル<%@include...%>)3.taglibスクリプト構文:1.HTMLコメント、サーブレットで生成され、ブラウザ 2. 注記を非表示にすると、サーブレットでは生成されず、ブラウザ<%-comments->3には送信されません.宣言、<%!...%>4.式、<%=...%>5.JAvaスクリプトセグメント、<%...%>、ここでjavaコード、変数、メソッドなどの動作構文を直接書き込む:
jsp学習サイト
補足
servletもjspもJava EEに属するコンテンツです.サーブレットは、対応する要求に応じてデータを生成し、転送技術を通じてJSPにデータを渡し、データ表示はJSPで行う.
比較
メリット
劣勢
servlet
ロジック処理が便利
ページ表現が面倒
jsp
ページの表示が便利
ロジック処理が面倒
したがってservletとjspは相補的に使用され、一般的なプロジェクトはjsp+servlet+javabeanの構成である.もっと高級なら、sshのフレームを使います.
動的Webページ、データ動的に生成されたWebページ.動的生成とは,ウェブページが事前に存在しないのではなく,ブラウザが要求を出したときに一時的に生成することである.データベース・テクノロジーに基づいて、サーバ上に独立して存在しません.関連言語はjsp,php,asp,cgiである.
web.xml:ネットワークプログラムの重要なプロファイルで、xmlのフォーマットで、servletの構成はここにあります.サーバが起動したときにのみ、ロードします.WebプロジェクトにはWebがあります.xml、1つのwebプロジェクトに複数のservletがあります.ブラウザからリクエストが送信され、サーバはどのようにして複数のservletから必要なservletを見つけますか?web.xmlの構成はマッピングによってこの問題を解決した.関連するラベルは
Tomcat:オープンソースのWebアプリケーションサーバ.Apacheサーバが静的Webページのみをサポートしているのと比較して、Tomcatは動的Webページをサポートしています.Tomcatはservletエンジンを提供し、jspを解析することもでき、servlet、jspの開発とデバッグの第一選択である.
show me the code
jspコード
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!-- <link rel="stylesheet" type="text/css" href="styles.css"> -->
</head>
<body>
Hello World, this is my JSP page.<br>
</body>
</html>
jspコンパイル後のjavaコード:(javaコードは比較的冗長で、文字列をコンパクトにした感じ.)
package org.apache.jsp;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import java.util.*;
public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase
implements org.apache.jasper.runtime.JspSourceDependent {
private static java.util.List _jspx_dependants;
public Object getDependants() {
return _jspx_dependants;
}
public void _jspService(HttpServletRequest request, HttpServletResponse response)
throws java.io.IOException, ServletException {
JspFactory _jspxFactory = null;
PageContext pageContext = null;
HttpSession session = null;
ServletContext application = null;
ServletConfig config = null;
JspWriter out = null;
Object page = this;
JspWriter _jspx_out = null;
PageContext _jspx_page_context = null;
try {
_jspxFactory = JspFactory.getDefaultFactory();
response.setContentType("text/html;charset=ISO-8859-1");
pageContext = _jspxFactory.getPageContext(this, request, response,
null, true, 8192, true);
_jspx_page_context = pageContext;
application = pageContext.getServletContext();
config = pageContext.getServletConfig();
session = pageContext.getSession();
out = pageContext.getOut();
_jspx_out = out;
out.write('\r');
out.write('
');
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
out.write("\r
");
out.write("\r
");
out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\r
");
out.write("<html>\r
");
out.write(" <head>\r
");
out.write(" <base href=\"");
out.print(basePath);
out.write("\">\r
");
out.write(" \r
");
out.write(" <title>My JSP 'index.jsp' starting page</title>\r
");
out.write("\t<meta http-equiv=\"pragma\" content=\"no-cache\">\r
");
out.write("\t<meta http-equiv=\"cache-control\" content=\"no-cache\">\r
");
out.write("\t<meta http-equiv=\"expires\" content=\"0\"> \r
");
out.write("\t<meta http-equiv=\"keywords\" content=\"keyword1,keyword2,keyword3\">\r
");
out.write("\t<meta http-equiv=\"description\" content=\"This is my page\">\r
");
out.write("\t<!--\r
");
out.write("\t<link rel=\"stylesheet\" type=\"text/css\" href=\"styles.css\">\r
");
out.write("\t-->\r
");
out.write(" </head>\r
");
out.write(" \r
");
out.write(" <body>
");
out.write(" Hello World, this is my JSP page.<br>\r
");
out.write(" </body>\r
");
out.write("</html>\r
");
} catch (Throwable t) {
if (!(t instanceof SkipPageException)){
out = _jspx_out;
if (out != null && out.getBufferSize() != 0)
out.clearBuffer();
if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
}
} finally {
if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context);
}
}
}
ブラウザでjspファイルを開くには: