ในบทความนี้ ผมจะแนะนำให้คุณรู้จักกับเทคโนโลยีที่ยืดหยุ่นและน่าสนใจซึ่งใช้ JSP ซึ่งก็คือ JSTL ย่อมาจาก Java Server Pages Standard Tag Library แม้ว่า JSP จะได้รับความนิยมอย่างมาก แต่ JSTL ยังคงได้รับความนิยมอย่างมากในแอปพลิเคชันที่ใช้ฐานข้อมูล SQL การพัฒนา front-end และ back-end ที่ง่ายและรวดเร็วยังคงไม่แพร่หลาย เมื่อคุณเข้าใจ JSTL แล้ว คุณจะเข้าใจถึงข้อดีของมัน และพบว่ามันถูกนำไปใช้ในหลาย ๆ ด้านในการทำงานประจำวันของคุณในฐานะโปรแกรมเมอร์ ฉันถือว่าคุณคุ้นเคยกับ HTML อยู่แล้ว สามารถเข้าใจคำสั่ง SQL พื้นฐาน และพื้นฐานของ JSP ได้ เพราะเนื้อหาต่อไปนี้เกี่ยวข้องกับความรู้นี้
JSTL คือชุดของไลบรารีแท็กมาตรฐานที่รองรับการวนซ้ำ เงื่อนไข การแยกวิเคราะห์เอกสาร XML การทำให้เป็นสากล และความสามารถในการโต้ตอบกับฐานข้อมูลโดยใช้ SQL ในขั้นต้น ข้อกำหนด JSTL ได้รับการพัฒนาและปรับปรุงโดย JSR #52 ซึ่งจัดโดย JCP (โปรแกรมกระบวนการชุมชน Java) "JCP แบกรับภาระงานสำคัญของการพัฒนาเทคโนโลยี Java" - ความคิดเห็นของเว็บไซต์อย่างเป็นทางการ ในฐานะองค์กรเปิด JCP ดูดซับทั้งสมาชิกที่เป็นทางการและสมาชิกที่ไม่เป็นทางการ JCP มีบทบาทสำคัญในการจัดทำและพัฒนาข้อกำหนดทางเทคนิคของ Java JSTL ส่วนใหญ่ประกอบด้วยสี่ส่วนพื้นฐานของไลบรารีแท็ก: Core, XML, ความเป็นสากล และการสนับสนุน SQL เนื่องจากวัตถุประสงค์หลักของบทความนี้คือการทำความเข้าใจ JSTL อย่างรวดเร็วผ่านการประยุกต์ใช้ส่วน SQL บทความนี้จะแนะนำเฉพาะฟังก์ชันพื้นฐานบางอย่างของไลบรารีแท็ก Core และ SQL เท่านั้น
เทคโนโลยีนี้เรียบง่ายและทรงพลังพอที่จะแข่งขันกับ PHP และ ColdFusion มีความสามารถเพียงพอที่จะขยายขอบเขตการใช้งานของ Java ปัญหา. สิ่งนี้ช่วยให้คุณหลีกเลี่ยงการพิจารณาทั่วไปเกี่ยวกับการรวม XML และการเชื่อมต่อฐานข้อมูลเมื่อสร้างไซต์ของคุณ อย่างที่ฉันได้กล่าวไป ประเด็นสำคัญของ JSTL คือความเรียบง่ายและใช้งานง่าย นอกจากนี้ JSTL ยังสร้างขึ้นบน JSP ซึ่งช่วยให้เราสามารถใช้เทคโนโลยี Java ทั้งหมดซึ่งเราต้องจำไว้
ก่อนที่เราจะเริ่มต้น เราต้องหาวิธีรัน JSTL ก่อน เนื่องจากมันใช้เทคโนโลยี JSP เราจึงจำเป็นต้องมีคอนเทนเนอร์ที่สามารถคอมไพล์ JSP เพื่อรันได้ ที่นี่เราใช้คอนเทนเนอร์ JSP ฟรี: TOMCAT ( http://jakarta. apache.org/tomcat/index.html ) วิธีการติดตั้งผลิตภัณฑ์นี้อยู่นอกเหนือขอบเขตของบทความนี้ ไม่ต้องสงสัยเลยว่าผลิตภัณฑ์ซอฟต์แวร์นี้ได้รับความนิยมอย่างมากในปัจจุบัน และมีเอกสารประกอบมากมายเกี่ยวกับวิธีการติดตั้ง ถือว่าคุณได้ติดตั้งและกำหนดค่าคอนเทนเนอร์นี้สำเร็จแล้ว คุณจะต้องติดตั้งไฟล์ที่จำเป็นในการเรียกใช้ JSTL เท่านั้น ซึ่งสามารถดาวน์โหลดได้จาก http://jakarta.apache.org/taglibs/doc/standard-doc/intro คุณไม่จำเป็นต้องติดตั้งมันจริงๆ คุณเพียงแค่ต้องรวมไฟล์ . JAR ไว้ในไดเร็กทอรี WEB-INF/lib ของแอปพลิเคชันของคุณ ฉันจะอธิบายวิธีดำเนินการใน
ภายหลัง ก ในการรันโปรแกรมบนฐานข้อมูลที่รองรับ SQL มาตรฐาน คุณจะต้องติดตั้งฐานข้อมูลบนคอมพิวเตอร์ของคุณ ฐานข้อมูลมีหลายประเภท ฉันเลือก MySql ในที่นี้ เหตุผลที่ฉันเลือกเขาก็คือ ก่อนอื่นเลย เราต้องแสดงบทบาทของ JSTL ในการสร้างฟิลด์แอปพลิเคชันที่ง่ายและรวดเร็ว และในขณะเดียวกัน ก็สามารถเปรียบเทียบกับ PHP+MySql ซึ่งมีความโดดเด่นมาโดยตลอดในด้านนี้ จุดที่ 2 คือ MySql ให้ดาวน์โหลดฟรีและมีไดรเวอร์ JDBC สำหรับ JAVA กล่าวโดยย่อ เพื่อใช้ตัวอย่างต่อไปนี้ คุณต้องดาวน์โหลดเซิร์ฟเวอร์ MYSQL ( http://www.mysql.com/products/ mysql/index.html ; ไดรเวอร์ MySql Connector /J JDBC http://www.mysql.com/products/connector-j/index.html ; และศูนย์ควบคุม MySql http://www.mysql.com/products/connector- j/index.html ) ผลิตภัณฑ์นี้ช่วยให้คุณสามารถใช้งานและจัดการไฟล์ฐานข้อมูล Mysql ได้อย่างง่ายดาย หลังจากการดาวน์โหลดทั้งหมดเสร็จสิ้น คุณจะต้องติดตั้ง mysql และ mysql Control Center นอกจากนี้ จำเป็นต้องวางไดรเวอร์ JDBC สำหรับ mysql ไว้ในไดเร็กทอรี /Web-INF/lib ในเว็บแอปพลิเคชันของคุณ
ก่อนที่จะสร้างโค้ดโปรแกรม คุณต้องสร้างและกรอกข้อมูลในตารางฐานข้อมูลก่อน มีบทความมากมายเกี่ยวกับหัวข้อนี้ และวิธีการดำเนินการอยู่นอกเหนือขอบเขตของบทความนี้ ฉันขอแนะนำให้คุณใช้ MySQL Control Center ซึ่งเป็นเครื่องมือการจัดการภาพที่เรากล่าวถึงข้างต้น คุณสามารถใช้มันเพื่อสร้างผู้ใช้ทดสอบสำหรับการรันโปรแกรม ฐานข้อมูล และสร้างตารางทดสอบและกรอกบันทึกจำนวนหนึ่ง เกี่ยวกับพารามิเตอร์สภาพแวดล้อมการกำหนดค่า เช่น ชื่อล็อกอินและชื่อฐานข้อมูลรหัสผ่าน คุณควรจดจำไว้และจำเป็นต้องนำไปใช้กับโค้ดของเราในภายหลัง
ตอนนี้คุณพร้อมที่จะสร้างแอปพลิเคชัน JSTL แรกของคุณแล้ว โดยกำหนดให้เราดำเนินการดังต่อไปนี้:
โค้ดโปรแกรมตัวอย่างทั้งหมดประกอบด้วยไฟล์สองไฟล์ ได้แก่ Hello.jsp และ Continue.jsp
ไฟล์ Hello.jsp ให้คุณป้อนชื่อฐานข้อมูลได้ , ชื่อล็อกอิน, รหัสผ่านล็อกอิน, ชื่อตารางฐานข้อมูล Continue.jsp: ยอมรับข้อมูลข้อมูลใน Hello.jsp และเชื่อมต่อกับฐานข้อมูล และดำเนินการ Select request ไปยังตารางในฐานข้อมูล
ด้านล่างนี้คือไฟล์โค้ดทั้งหมดของระบบนี้ ฉันจะอธิบายทีละไฟล์ โค้ดเหล่านี้ค่อนข้างง่าย สำหรับโครงสร้างของโค้ด ผมเชื่อว่าคุณสามารถเข้าใจได้แม้ไม่มีคำอธิบายของผมก็ตาม
1: <!-- Hello.jsp -->
2: <html>
3: <หัว>
4: <หัวข้อ><สวัสดี</หัวข้อ>
5: </หัว><
6: <เนื้อหา bgcolor="#ffffff">
7: <h1><กรุณากรอกข้อมูลที่จำเป็นทั้งหมดแล้วคลิกตกลง</h1>
8: <form method="post" action="Continue.jsp">
9: <br>การเข้าสู่ระบบฐานข้อมูลของคุณ:
<input type="text" name="login" size="15">
10: <br>รหัสผ่านของคุณไปยังฐานข้อมูล:
<input type="password" name="password" size="15">
11: <br>ชื่อฐานข้อมูลของคุณ:
<input type="text" name="database" size="15">
12: <br>ตารางฐานข้อมูลของคุณ:
<ประเภทอินพุต = "ข้อความ" ชื่อ = "ตาราง" ขนาด = "15">
13: <br><br><br><input type="submit" name="submit" value=" OK ">
14: </แบบฟอร์ม>
15: </ตัว>
16: </html>
(โปรดทราบว่าตัวเลขทางด้านซ้ายของข้อความมีไว้เพื่อให้คุณทราบข้อมูลมาร์กอัปบางส่วน คุณไม่จำเป็นต้องป้อนตัวเลขเหล่านี้ลงในไฟล์โค้ดของคุณ)
ด้านบนนี้เป็นซอร์สโค้ดของทั้งหมด Hello.jsp น่าแปลกที่มันเป็นเพียงโค้ด HTML ธรรมดาๆ เท่านั้น ฉันคิดว่าไม่จำเป็นต้องแสดงความคิดเห็น เหตุผลที่ฉันรวมโค้ดเหล่านี้ไว้ในบทความก็เพื่อสาธิตการรวม JSTL เข้ากับไซต์ HTML ที่ต้องการ เพื่อขยายฟังก์ชั่นเพิ่มเติมอย่างรวดเร็ว ง่ายแค่ไหน ฉันจะแสดงโค้ดทั้งหมดของ Continue.jsp ให้คุณดู คุณจะเข้าใจเกี่ยวกับ JSTL บ้าง
1: <!-- Continue.jsp -->
2: <%@ คำนำหน้า taglib="c" uri=" http://java.sun.com/jstl/core " %>
3: <@ คำนำหน้า taglib="sql" uri=" http://java.sun.com/jstl/sql " %>
4: <c:set var="h" value="localhost"/>
5: <c:set var="l" value="${param.login}"/>
6: <c:set var="p" value="${param.password}"/>
7: <c:set var="d" value="${param.database}"/>
8: <c:set var="t" value="${param.table}"/>
9: <html>
10: <หัว><
11: <หัวข้อ>ดำเนินการต่อ</หัวข้อ>
12: </หัว><
13: <body bgcolor="#ffffff">
14: <sql:setDataSource driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://${l}/${d}?user=${u}&password=${p}"/>
15: <sql:query var="result">
16: SELECT * FROM <c:out value="${t}"/>
17: </sql:แบบสอบถาม>
18: <c:forEach var="row" items="${result.rowsByIndex}">
19: <c:out value="${row[0]}"/></br>
20: </c:forEach><
21: </ตัว>
22: </html>
(โปรดทราบว่าตัวเลขทางด้านซ้ายของข้อความมีไว้เพื่อให้คุณทราบข้อมูลมาร์กอัปบางส่วน คุณไม่จำเป็นต้องป้อนตัวเลขเหล่านั้นลงในไฟล์โค้ดของคุณ)
นี่คือโค้ดทั้งหมดของเรา ไม่ใช่ มันเยี่ยมมากเหรอ? ตอนนี้ให้เราอธิบายการทำงานของโค้ดข้างต้น
บรรทัดที่ 1 คือคำอธิบายความคิดเห็น HTML
บรรทัดที่ 2--3 แท็ก JSP เหล่านี้ใช้เพื่ออ้างอิงไลบรารีแท็กภายนอก เพื่อให้แม่นยำยิ่งขึ้น แท็กเหล่านี้อ้างถึงส่วนไลบรารีแท็ก Core และ SQL ของไลบรารี JSTL เราตั้งชื่อคำนำหน้าเพื่อให้เราสามารถเข้าถึงวิธีการของฟังก์ชันในไลบรารีแท็กที่แนะนำผ่านชื่อคำนำหน้าเหล่านี้
บรรทัดที่ 4---8 เช่นเดียวกับที่ Hello.jsp กำลังทำงานอยู่ มันจะขอ Continue.jsp หลังจากที่ Continue.jsp ได้รับคำขอ มันจะต้องได้รับและแยกวิเคราะห์ตัวแปรหลายตัวจาก Hello.jsp เราใช้วิธีนี้ ${param .ของคุณ_VAR} ในบรรทัดที่ 4 <c:set tag ให้ตั้งค่าตัวแปร ${h} เป็น "localhost" ตัวแปรบรรทัดที่ 5 ${l} จะได้รับข้อมูลที่เราป้อนในช่องข้อความเข้าสู่ระบบใน Hello.jsp, 6th และ 7th ตัวแปรใน 8 บรรทัดจะได้รับรหัสผ่าน ชื่อฐานข้อมูล และชื่อตารางข้อมูลที่ผู้ใช้ป้อนใน Hello.jsp ตามลำดับ
บรรทัดที่ 9-13 คือแท็ก HTML ง่ายๆ ที่ฉันมักใช้เพื่อสร้างส่วนหัวของหน้า HTML ตอนนี้ฟังก์ชันที่สำคัญกำลังจะมา
บรรทัดที่ 14 เราพยายามสร้างการเชื่อมต่อฐานข้อมูลโดยใช้ไดรเวอร์ mysql (com.mysql.jdbc.Driver) ที่เราได้รับก่อนหน้านี้ ใน URL เราระบุพารามิเตอร์ที่จำเป็นสำหรับการเชื่อมต่อฐานข้อมูล เช่น ชื่อฐานข้อมูล ชื่อโฮสต์ การเข้าสู่ระบบ ชื่อและรหัสผ่านเข้าสู่ระบบ ดังนั้นเราจึงสามารถใช้ไดรเวอร์ JDBC อื่นเพื่อเชื่อมต่อกับฐานข้อมูลที่เกี่ยวข้องได้ หากเราจำเป็นต้องเชื่อมต่อกับฐานข้อมูล SQL อื่น ๆ เพียงแค่เปลี่ยน URL นี้
บรรทัดที่ 15--17 ที่นี่เราดำเนินการแบบสอบถามแบบเลือก โปรดให้ความสนใจเป็นพิเศษกับบรรทัดที่ 16 เราใช้ฟังก์ชัน JSTL อื่น <c:out เพื่อส่งออกชื่อตารางข้อมูลที่เราได้รับ ที่นี่เรายังสามารถใช้คำสั่ง SQL อื่น ๆ เช่น INSERT , ลบ ฯลฯ หากต้องการดำเนินการตามคำขอค้นหาเหล่านี้โดยไม่มีค่าส่งคืน คุณต้องใช้ฟังก์ชัน <sql:update JSTL เขาสามารถดำเนินการได้โดยตรงเช่นเดียวกับ <SQL:query ยกเว้นว่าเมื่อดำเนินการ ไม่จำเป็นต้องระบุตัวแปรผลลัพธ์เพื่อจัดเก็บผลลัพธ์ที่ส่งคืนโดยการเรียกใช้คำสั่ง
บรรทัดที่ 18--20 ตอนนี้เราได้ดำเนินการคำสั่งแบบสอบถาม SELECT ข้างต้นแล้ว เราควรแสดงผลลัพธ์ที่ส่งคืน <c:forEach เป็นฟังก์ชันที่มีฟังก์ชันวนซ้ำใน JSTL เมื่อดำเนินการ เราจะส่งคืนข้อมูลแถวข้อมูลแต่ละรายการที่ส่งคืนไปยังตัวแปร ${row} ผ่าน ${result.rowsByIndex} จากนั้นในบรรทัดที่ 19 เราจะใช้ <c: out value="${row[0]}"/> เพื่อแสดงค่าในคอลัมน์ข้อมูลแรกของแต่ละแถวข้อมูลที่ส่งคืน ตราบใดที่ตารางข้อมูลของคุณมีช่องต่างๆ คุณสามารถเข้าถึงค่าในช่องใดๆ ในตารางคำขอได้โดยการเปลี่ยนตัวเลขในตัวแปร ${row}
บรรทัดที่ 21-22 เป็นส่วนท้ายของ HTML
ในกระบวนการสร้างแอปพลิเคชัน JSTL ด้วยตัวเอง คุณอาจไม่ได้ค้นพบว่ามันทรงพลังแค่ไหน แต่คุณควรจะสามารถตระหนักถึงความเรียบง่ายและประสิทธิภาพของฟังก์ชัน JSTL ลองจินตนาการดูว่ามันเร็วแค่ไหน คือการบูรณาการคอลัมน์ข่าวที่ใช้ SQL และความง่ายในการบูรณาการเว็บไซต์ที่มีอยู่ของคุณ
ดีมาก รหัสของเราเข้าใจง่ายมาก แม้แต่โปรแกรมเมอร์ที่ไม่เป็นมืออาชีพ นักออกแบบก็สามารถอ่าน ทำความเข้าใจ และอาจทำการแก้ไขบางอย่าง อย่างน้อยก็กับเค้าโครงหน้า
ดังที่เราได้กล่าวไว้ในตอนต้น เพื่อให้โค้ด JSTL ของเราทำงานได้อย่างถูกต้อง เราจำเป็นต้องติดตั้งไฟล์ JAR ใน Mysql Connector/J และแน่นอนว่า JSTL เนื่องจากเราใช้ Tomcat ซึ่งเป็นคอนเทนเนอร์ JSP คุณจึงต้องสร้างโฟลเดอร์ของคุณเองภายใต้ Webapps ไดเร็กทอรีไฟล์ของ Tomcat และวางไฟล์ Hello.jsp และ Continue.jsp ไว้ในไดเร็กทอรีไฟล์ที่คุณสร้างขึ้น นอกจากนี้ คุณยังต้องสร้างโฟลเดอร์ชื่อ WEB- INF และใส่ไฟล์การกำหนดค่าของคุณ Web.xml ไฟล์ web.xml จะเป็นดังนี้:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE เว็บแอป
สาธารณะ "-//Sun Microsystems, Inc.//เว็บแอปพลิเคชัน DTD 2.3//EN"
" http://java.sun.com/dtd/web-app_2_3.dtd ">
<web-app />
ต่อไปเราต้องสร้างไดเร็กทอรีย่อยชื่อ lib ใต้ WEB-INF และใส่ไฟล์ต่อไปนี้ลงไป:
jstl.jar
saxpath.jar
มาตรฐาน.โถ
mysql-connector-java-3.0.9-stable-bin.jar (หมายเหตุ ชื่อนี้อาจเปลี่ยนแปลงได้ขึ้นอยู่กับเวอร์ชัน Mysql Connector/J ของคุณ)
ข้อมูลทั้งหมดนี้คุณสามารถตรวจสอบได้ในคู่มือ JSTL หรือ Tomcat หากคุณต้องการทำความเข้าใจให้แน่ชัด มันทำงานอย่างไรและทำไมคุณควรอ่านคู่มือเหล่านี้ อย่างไรก็ตาม เพื่อช่วยให้คุณเชี่ยวชาญการดำเนินงานพื้นฐานของ JSTL ได้อย่างรวดเร็ว ฉันได้แนะนำความรู้ที่เกี่ยวข้อง
หากคุณกำลังใช้คอนเทนเนอร์ Jsp อื่น คุณต้องอ่านคู่มือที่เกี่ยวข้อง
ฉันอยากจะอธิบายอีกสิ่งหนึ่ง บทความนี้เป็นเพียงการแนะนำเบื้องต้นเกี่ยวกับเทคโนโลยี JSTL ไม่ใช่คู่มือฉบับสมบูรณ์ JSTL มีการใช้งานฟังก์ชันที่หลากหลายเพื่อช่วยให้คุณพัฒนา Jsp ด้วยวิธีที่ง่ายและรวดเร็ว ฉันขอแนะนำให้คุณอ่านเอกสารรายละเอียดเพิ่มเติมเกี่ยวกับฟังก์ชัน JSTL และวิธีการทำงานกับ JavaBeans คุณจะพบ ว่าเป็นแพลตฟอร์มการพัฒนาที่คุณรอคอย เมื่ออ่านบทความนี้ คุณควรจะสามารถสร้างแอปพลิเคชันส่วนหน้าและส่วนหลังที่เรียบง่ายโดยใช้ฐานข้อมูล SQL ได้