Sintaks JSP


Bahagian ini akan memperkenalkan secara ringkas sintaks asas dalam pembangunan JSP.


Atur cara skrip

Atur cara skrip boleh mengandungi sebarang bilangan pernyataan, pembolehubah, kaedah atau ungkapan Java, selagi ia sah dalam bahasa skrip.

Format sintaks skrip:

<% 代码片段 %>

Sebagai alternatif, anda boleh menulis pernyataan XML yang setara dengannya, seperti ini:

<jsp:scriptlet>
   代码片段
</jsp:scriptlet>

Sebarang teks, tag HTML, elemen JSP mesti ditulis di luar program skrip.

Contoh diberikan di bawah, yang juga merupakan contoh JSP pertama tutorial ini:

<html>
<head><title>Hello World</title></head>
<body>
Hello World!<br/>
<%
out.println("Your IP address is " + request.getRemoteAddr());
%>
</body>
</html>

Nota: Sila pastikan Apache Tomcat telah dipasang dalam C: apache -tomcat -7.0.2 direktori dan persekitaran berjalan telah ditetapkan dengan betul.

Simpan kod di atas dalam hello.jsp, kemudian letakkannya dalam direktori C:apache-tomcat-7.0.2webappsROOT, buka penyemak imbas dan masukkan http://localhost:8080/ dalam bar alamat hello. jsp. Selepas berjalan, kami mendapat hasil berikut:

jsp_hello_world.jpg

Masalah pengekodan Cina

Jika kami ingin memaparkan bahasa Cina secara normal pada halaman, kami perlu menambah perkara berikut kod ke kepala fail JSP: <>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

Selepas analisis, kami mengubah suai atur cara di atas kepada:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
Hello World!<br/>
<%
out.println("你的 IP 地址 " + request.getRemoteAddr());
%>
</body>
</html>

Dengan cara ini, bahasa Cina boleh dipaparkan seperti biasa.


Pengisytiharan JSP

Pernyataan pengisytiharan boleh mengisytiharkan satu atau lebih pembolehubah dan kaedah untuk digunakan oleh kod Java berikutnya. Dalam fail JSP, anda mesti mengisytiharkan pembolehubah dan kaedah ini sebelum anda boleh menggunakannya.

Format sintaks pengisytiharan JSP:

<%! declaration; [ declaration; ]+ ... %>

Sebagai alternatif, anda boleh menulis pernyataan XML yang setara dengannya, seperti berikut:

<jsp:declaration>
   代码片段
</jsp:declaration>

Contoh program:

<%! int i = 0; %> 
<%! int a, b, c; %> 
<%! Circle a = new Circle(2.0); %>

Ungkapan JSP

Ungkapan bahasa skrip yang terkandung dalam ungkapan JSP mula-mula ditukar menjadi Rentetan dan kemudian dimasukkan ke tempat ungkapan itu muncul.

Memandangkan nilai ungkapan ditukar kepada String, anda boleh menggunakan ungkapan dalam baris teks tanpa mengira sama ada ia adalah teg HTML.

Elemen ungkapan boleh mengandungi sebarang ungkapan yang mematuhi spesifikasi bahasa Java, tetapi koma bertitik tidak boleh digunakan untuk menamatkan ungkapan.

Format sintaks ungkapan JSP:

<%= 表达式 %>

Begitu juga, anda juga boleh menulis pernyataan XML yang setara:

<jsp:expression>
   表达式
</jsp:expression>

Contoh program:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<p>
   今天的日期是: <%= (new java.util.Date()).toLocaleString()%>
</p>
</body> 
</html>

Yang berikut keputusan diperolehi selepas berjalan:

今天的日期是: 2016-6-25 13:40:07

Komen JSP

Komen JSP mempunyai dua fungsi utama: mengulas pada kod dan mengulas bahagian kod tertentu.

Format sintaks ulasan JSP:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<%-- 该部分注释在网页中不会被显示--%> 
<p>
   今天的日期是: <%= (new java.util.Date()).toLocaleString()%>
</p>
</body> 
</html>

Selepas dijalankan, keputusan berikut diperoleh:

今天的日期是: 2016-6-25 13:41:26

Peraturan sintaks untuk menggunakan ulasan dalam situasi berbeza:

语法                    描述
                    <%-- 注释 --%>                    JSP注释,注释内容不会被发送至浏览器甚至不会被编译
                    <!-- 注释 -->                    HTML注释,通过浏览器查看网页源代码时可以看见注释内容
                    <%                    代表静态 <%常量
                    %>                    代表静态 %> 常量
                    '                    在属性中使用的单引号
                    "                    在属性中使用的双引号

Arahan JSP

Arahan JSP digunakan untuk menetapkan sifat yang berkaitan dengan keseluruhan halaman JSP.

Format sintaks arahan JSP:

<%@ directive attribute="value" %>

Terdapat tiga teg arahan:

指令描述
                    <%@ page ... %>                    定义页面的依赖属性,比如脚本语言、error页面、缓存需求等等
                    <%@ include ... %>                    包含其他文件
                    <%@ taglib ... %>                    引入标签库的定义,可以是自定义标签

Kelakuan JSP

Teg tingkah laku JSP menggunakan struktur sintaks XML untuk mengawal enjin servlet. Ia boleh memasukkan fail secara dinamik, menggunakan semula komponen JavaBean, membimbing pengguna ke halaman lain, menjana HTML yang berkaitan untuk pemalam Java dan banyak lagi.

Teg gelagat hanya mempunyai satu format sintaks, yang mematuhi piawaian XML dengan ketat:

<jsp:action_name attribute="value" />

Teg gelagat pada asasnya ialah beberapa fungsi yang telah ditetapkan Jadual berikut menyenaraikan beberapa teg Gelagat JSP yang tersedia:

语法描述
                    jsp:include                    用于在当前页面中包含静态或动态资源
                    jsp:useBean                    寻找和初始化一个JavaBean组件
                    jsp:setProperty                    设置 JavaBean组件的值
                    jsp:getProperty                    将 JavaBean组件的值插入到 output中
                    jsp:forward                    从一个JSP文件向另一个文件传递一个包含用户请求的request对象
                    jsp:plugin                    用于在生成的HTML页面中包含Applet和JavaBean对象
                    jsp:element                    动态创建一个XML元素
                    jsp:attribute                    定义动态创建的XML元素的属性
                    jsp:body                    定义动态创建的XML元素的主体
                    jsp:text                    用于封装模板数据

Objek Tersembunyi JSP

JSP menyokong sembilan pembolehubah yang ditakrifkan secara automatik, yang dipanggil objek tersembunyi oleh orang Jianghu. Pengenalan sembilan objek tersembunyi ini ditunjukkan dalam jadual di bawah:

对象描述
                    requestHttpServletRequest类的实例
                    responseHttpServletResponse类的实例
                    outPrintWriter类的实例,用于把结果输出至网页上
                    sessionHttpSession类的实例
                    applicationServletContext类的实例,与应用上下文有关
                    configServletConfig类的实例
                    pageContextPageContext类的实例,提供对JSP页面所有对象以及命名空间的访问
                    page                    类似于Java类中的this关键字
                    ExceptionException类的对象,代表发生错误的JSP页面中对应的异常对象

Kenyataan aliran kawalan

JSP menyediakan sokongan penuh untuk bahasa Java. Anda boleh menggunakan API Java dalam program JSP dan juga membuat blok kod Java, termasuk pernyataan penghakiman dan pernyataan gelung, dsb.

Pernyataan penghakiman

Jika…sekat lain, sila lihat contoh berikut:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%! int day = 3; %> 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<h3>IF...ELSE 实例</h3>
<% if (day == 1 | day == 7) { %>
      <p>今天是周末</p>
<% } else { %>
      <p>今天不是周末</p>
<% } %>
</body> 
</html>

Selepas dijalankan, keputusan berikut diperoleh:

IF...ELSE 实例
今天不是周末

Sekarang mari kita lihat suis …blok huruf, yang serupa dengan jika Blok ...else sangat berbeza Ia menggunakan out.println(), dan keseluruhan skrip dipasang dalam teg skrip, seperti ini:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%! int day = 3; %> 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<h3>SWITCH...CASE 实例</h3>
<% 
switch(day) {
case 0:
   out.println("星期天");
   break;
case 1:
   out.println("星期一");
   break;
case 2:
   out.println("星期二");
   break;
case 3:
   out.println("星期三");
   break;
case 4:
   out.println("星期四");
   break;
case 5:
   out.println("星期五");
   break;
default:
   out.println("星期六");
}
%>
</body> 
</html>

. Akses penyemak imbas, selepas dijalankan, keputusan berikut diperolehi :

SWITCH...CASE 实例

星期三

Penyataan gelung

Anda boleh menggunakan tiga jenis gelung asas Java dalam program JSP: untuk, sementara, dan lakukan.. .sementara.

Mari kita lihat contoh gelung for, output berikut "laman web Cina php" dengan saiz fon yang berbeza:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%! int fontSize; %> 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<h3>For 循环实例</h3>
<%for ( fontSize = 1; fontSize <= 3; fontSize++){ %>
   <font color="green" size="<%= fontSize %>">
    php中文网
   </font><br />
<%}%>
</body> 
</html>

Selepas dijalankan, keputusan berikut diperoleh:

7B4B85CF-FE4B-43CB-AAFF-F8594AD4342C.jpg

Tukar contoh di atas untuk menggunakan gelung sementara untuk menulis:

akses penyemak imbas
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%! int fontSize; %> 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<h3>While 循环实例</h3>
<%while ( fontSize <= 3){ %>
   <font color="green" size="<%= fontSize %>">
    php中文网
   </font><br />
<%fontSize++;%>
<%}%>
</body> 
</html>
, hasil output adalah (fontSize dimulakan kepada 0, jadi satu baris lagi adalah output) :

7B4B85CF-FE4B-43CB-AAFF-F8594AD4342C.jpg

Operator JSP

JSP menyokong semua operator logik dan aritmetik Java.

Jadual berikut menyenaraikan pengendali JSP biasa, dengan keutamaan dari tinggi ke rendah:

                       Hubungan                     Sama/Tidak Sama                     Bit dan                     Sedikit eksklusif ATAU                     Bit atau
KategoriOperatorAssociativity
Akhiran               () [] . (pengendali titik)                   Kiri ke kanan
                    Satu dolar ++ - - ! ~                 Kanan ke kiri
                    Kebolehgandaan                 * / %                 Kiri ke kanan
                    Penambahan               + -               Kiri ke kanan
                    Shift                 >>>><< Kiri ke kanan
                >= <=               Kiri ke kanan
                == !=                 Kiri ke kanan
              &               Kiri ke kanan
              ^                 Kiri ke kanan
              |.               Kiri ke kanan
                Logik DAN               &&               Kiri ke kanan
                    Logik ATAU               ||.               Kiri ke kanan
                    Penghakiman bersyarat ?:                 Kanan ke kiri
                    Tugasan                 = += -= *= /= %= >>= <<= &= ^= |=                     Kanan ke kiri
                    Koma                 ,               Kiri ke kanan

Literal JSP

Bahasa JSP mentakrifkan literal berikut:

  • Boolean: benar dan salah;

  • Jenis integer (int): sama seperti dalam Java;

  • Terapung: Sama seperti di Jawa;

  • Rentetan: Mulakan dan akhiri dengan petikan tunggal atau berganda; Null: null.