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:
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:
对象 | 描述 |
---|---|
request | HttpServletRequest类的实例 |
response | HttpServletResponse类的实例 |
out | PrintWriter类的实例,用于把结果输出至网页上 |
session | HttpSession类的实例 |
application | ServletContext类的实例,与应用上下文有关 |
config | ServletConfig类的实例 |
pageContext | PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问 |
page | 类似于Java类中的this关键字 |
Exception | Exception类的对象,代表发生错误的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:
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) :
JSP menyokong semua operator logik dan aritmetik Java.
Jadual berikut menyenaraikan pengendali JSP biasa, dengan keutamaan dari tinggi ke rendah:
Kategori | Operator | Associativity |
---|---|---|
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.