目次
1. JSP を使用したクイック スタート
1.基本的な紹介:
(1) JSP は Java Server Pages の略で、Java サーバー ページのことであり、 JSP は Servlet をベースにしたサーバー レンダリング技術であり、JSP は Servlet をパッケージ化したものであることがわかります。
(2) HTML はユーザーに静的データしか提供できませんが、 JSP では Java コードをページに埋め込んでユーザーに動的データを提供できます。注: JSP ページは、HTML ページのようにブラウザから直接実行することはできません。最初に Tomcat を起動し、次にブラウザのアドレス バーの URL を介してアクセスする必要があります。
(3)サーブレットではデータのフォーマットが困難ですが、JSPでは Java コードを使用して動的データを生成する際にデータを簡単にフォーマットできます。
2.動作原理:
(1) JSP ページの本質はサーブレット プログラム (つまり、本質的には Java プログラム) であり、そのパフォーマンスは Java に関連します。
(2)初めて JSP にアクセスするとき、Tomcat サーバーはまず JSP ページを .java ソース ファイルに解析し、さらにそれを .class バイトコード ファイルにコンパイルします。実際に実行されるのは .class バイトコード プログラムです。例:index.jsp --->index_jsp.javaおよびindex_jsp.class。
以下に示すように:
2. JSP 構文
1.ページコマンド:
1° 言語は、 JSP 解析後の言語ファイルを示します。現在、Java 言語のみがサポートされています。
2° contentType は、 JSP によって返されるデータ型を表し、ソース コードの response.setContentType() のパラメーター値に対応します。
3° pageEncoding属性。現在の JSP ページ ファイル自体の文字セットを示します。
4° import属性の使用は Java ソース コードでの使用と似ており、パッケージやクラスのインポートに使用できます。
2.声明脚本 :
宣言スクリプトの形式は次のとおりです: <%! java 宣言%> ; Java コードを使用して、宣言スクリプト内の JSP に必要なプロパティ、メソッド、静的コード ブロック、および内部クラスを定義できます。つまり、Java のメンバーを定義できます。 JSP ファイルに対応するクラス。
demo.jsp コードは次のとおりです。
<%--
User : Cyan_RA9
Version : 21.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>JSP demo</title>
</head>
<body>
<h1>demo.jsp</h1>
<%!
private String name;
private int age;
private String gender;
private static String color;
public String getName() {
return this.name;
}
public int getAge() {
return this.age;
}
public String getGender() {
return this.gender;
}
static {
color = "Cyan";
}
%>
</body>
</html>
対応する生成された.java ファイルを以下に示します。
3. 式スクリプト:
(1)式スクリプトの形式: <%=expression%>
(2)式スクリプトの機能: JSP ページにデータを出力
(3)式スクリプトの注意事項:式をセミコロンで終了することはできません。
Expression.jsp コードは次のとおりです。
<%--
User : Cyan_RA9
Version : 21.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Expression</title>
</head>
<body>
<%
String name = "Cyan_RA9";
%>
public : <%=141 + 130%> <br/>
name : <%=name%> <br/>
job : <%="Java Full Stack Developer"%>
</body>
</html>
実行結果:
4.Javaコードスクリプト:
1°コードスクリプトの構文形式: <%java code%>。
2°コード スクリプトの役割: JSP ページでJava コードを使用して、ビジネス要件を満たします。
3°複数のコード スクリプト ブロックを完全な Java ステートメントに結合できます。つまり、複数の Java コード スクリプトが許可されます。
4°コード スクリプトを式スクリプトと組み合わせて使用して、JSP ページにデータを出力することもできます。
まず JavaBean クラスを定義します。Studentクラスのコードは次のとおりです。
package script;
/**
* @author : Cyan_RA9
* @version : 21.0
*/
public class Student {
private String name;
private int age;
private String gender;
public Student() {
}
public Student(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", gender='" + gender + '\'' +
'}';
}
}
javacode.jsp ページで、List コレクションを使用して、いくつかの Student オブジェクトに関する情報を保存します。
javacode.jsp コードは次のとおりです。
\<%--
User : Cyan_RA9
Version : 21.0
--%>
<%@ page import="java.util.ArrayList" %>
<%@ page import="script.Student" %> <%--自动导包--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Java Code script</title>
</head>
<body>
<%
ArrayList<Student> students = new ArrayList<>();
students.add(new Student("Cyan", 21, "male"));
students.add(new Student("Five", 22, "female"));
students.add(new Student("Ice", 20, "male"));
%>
<table bgcolor="#e0ffff" border="2px" bordercolor="pink" cellspacing="0" width="300px">
<tr>
<th>Name</th>
<th>Age</th>
<th>Gender</th>
</tr>
<%
for (int i = 0; i < students.size(); i++) {
Student student = students.get(i);
%>
<tr>
<td><%=student.getName()%></td>
<td><%=student.getAge()%></td>
<td><%=student.getGender()%></td>
</tr>
<%
}
%>
</table>
</body>
</html>
操作結果:
5.JSP コメント:
JSP は HTML 形式のコメントをサポートするだけでなく、独自の独自のコメント形式 <%-- --%>もサポートします。
さらに、Java の行コメントと段落コメントも JSP Java コード スクリプトで使用できます。
note.jsp コードは次のとおりです。
<%--
User : Cyan_RA9
Version : 21.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Note demo</title>
</head>
<body>
<!-- 这是HTML格式的注释√ -->
<%
//这是Java代码的行注释;
/*
这是Java代码的段注释。
*/
%>
<%-- 这是JSP特有的注释格式√ --%>
</body>
</html>
3. JSPオブジェクト
1.9 つの組み込みオブジェクト:
1> JSP 組み込みオブジェクト (すでに作成されているオブジェクトを指します。[inbuild] を直接使用できます)、つまり、 JSP ページをサーブレットに解析した後に Tomcat によって内部的に提供される 9 つのオブジェクトは、組み込みオブジェクトと呼ばれます。
2>組み込みオブジェクトは、手動で定義せずに直接使用できます。3> 9 つの組み込みオブジェクトは次のとおりです—
① out は クライアントにデータを出力します。 out.println("");② request は クライアントからの HTTP リクエストを処理します。③ 応答は 返された HTTP 応答に関連します④ セッション セッションオブジェクト⑤ アプリケーションは ServletContextに対応⑥ pageContext JSP ページのコンテキストはドメイン オブジェクトであり、setAttribue() メソッドを使用できますが、 有効範囲はこのページのみです。⑦ 例外 例外オブジェクトgetMessage()⑧ ページは JSP インスタンスそのもの を表します⑨ configは ServletConfigに相当します4> 9 つの組み込みオブジェクトとサーブレットの関係図——
2. 4 つの主要なドメイン オブジェクト:
1° 基本的な紹介
1> pageContextドメイン オブジェクトの場合、保存されたデータは現在のページでのみ使用できます。
2> リクエストドメイン オブジェクト。保存されているデータはリクエスト リクエスト (例: リクエスト転送) で有効です。
3> セッションドメイン オブジェクト。保存されたデータは 1 つのセッション ( sessionId ) で有効です。
4> アプリケーションドメイン オブジェクト。保存されたデータは Web アプリケーションの実行全体にわたって有効であり、範囲はさらに大きくなります。
作用域 : pageContext < request < session < application.
2° 応用例
scope.jsp コードは次のとおりです。
<%--
User : Cyan_RA9
Version : 21.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Scope</title>
</head>
<body>
<%-- 由于四个域对象是不同的对象,因此允许出现相同的name。 --%>
<%
pageContext.setAttribute("color", "cyan");
request.setAttribute("color", "pink");
session.setAttribute("color", "cornflower");
application.setAttribute("color", "lightblue");
//请求转发
// RequestDispatcher requestDispatcher = request.getRequestDispatcher("scope2.jsp");
// requestDispatcher.forward(request, response);
//请求重定向
ServletContext servletContext = config.getServletContext();
String contextPath = servletContext.getContextPath();
response.sendRedirect(contextPath + "/scope2.jsp");
%>
<h1>四个域对象,在本页面获取数据的情况</h1>
pageContext-color : <%=pageContext.getAttribute("color")%> <br/>
request-color : <%=request.getAttribute("color")%> <br/>
session-color : <%=session.getAttribute("color")%> <br/>
application-color : <%=application.getAttribute("color")%> <hr/>
</body>
</html>
実行効果: (このページはドメイン オブジェクトにアクセスします)
scope2.jsp コードは次のとおりです: (外部ページはドメイン オブジェクトにアクセスします)
<%--
User : Cyan_RA9
Version : 21.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>scope2</title>
</head>
<body>
<h1>在scope2页面获取数据的情况:</h1>
pageContext-color : <%=pageContext.getAttribute("color")%> <br/>
request-color : <%=request.getAttribute("color")%> <br/>
session-color : <%=session.getAttribute("color")%> <br/>
application-color : <%=application.getAttribute("color")%> <hr/>
</body>
</html>
操作の効果: (スコープリクエストの転送)
実行時の効果: (スコープリクエストのリダイレクト)
3. リクエスト転送ラベルについて:
<jsp:forward page="URL" ></jsp:forward>
注: 1> ここの URL はサーバー側で解析されます。
2> リクエスト転送タグは、他の機能リソースに転送するためにエントリ ページでよく使用されます。