JavaWeb Express JSP

目次

1. JSP を使用したクイック スタート

        1.基本的な紹介: 

        2.動作原理: 

2. JSP 構文

        1.ページコマンド: 

        2.声明脚本 : 

        3. 式スクリプト: 

        4.Javaコードスクリプト: 

        5.JSP コメント: 

3. JSPオブジェクト

        1.9 つの組み込みオブジェクト: 

        2. 4 つの主要なドメイン オブジェクト: 

            1° 基本的な紹介

            2° 応用例

        3. リクエスト転送ラベルについて: 


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.ページコマンド: 

        言語は、 JSP 解析後の言語ファイルを示します。現在、Java 言語のみがサポートされています。
        contentType は、 JSP によって返されるデータ型を表し、ソース コードの response.setContentType() のパラメーター値に対応します。
        3°  pageEncoding属性。現在の JSP ページ ファイル自体の文字セットを示します。
        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コードスクリプト: 

        コードスクリプトの構文形式: <%java code%>
        コード スクリプトの役割: JSP ページでJava コードを使用して、ビジネス要件を満たします。
       複数のコード スクリプト ブロックを完全な Java ステートメントに結合できます。つまり、複数の Java コード スクリプトが許可されます
        コード スクリプトを式スクリプトと組み合わせて使用​​して、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> リクエスト転送タグは、他の機能リソースに転送するためにエントリ ページでよく使用されます。

おすすめ

転載: blog.csdn.net/TYRA9/article/details/132207077