โค้ดยิม/หลักสูตรจาวา/โมดูล 3/JSP: วิธีการประกาศเพื่อกำหนดเซิร์ฟเล็ต

JSP: วิธีการประกาศเพื่อกำหนดเซิร์ฟเล็ต

ระดับ, บทเรียน
มีอยู่

1.1 ความรู้เบื้องต้นเกี่ยวกับ JSP

มีสองวิธีที่ได้รับความ นิยมในการเขียน servlet: imperativeและdeclarative เราได้จัดการกับอันแรกแล้ว - นี่คือ Servlet อย่างที่สองเรียกว่า JSP (Java Server Pages) และเราจะทำความคุ้นเคยกับมันทันที

ตัวอย่าง Servlet JSP:

<html>
    <body>
        <% out.print(2*5); %>
    </body>
 </html>

ไม่คล้ายกับ Servlet แบบคลาสสิกที่เราคุ้นเคยใช่ไหม นี่เป็นเรื่องจริง JSP เป็นหน้า HTML ที่มีการแทรกโค้ด Java (เน้นด้วยสีเขียว )

คุณคงเห็นแล้วว่าถ้าคุณมีโค้ด Java จำนวนมากในเซิร์ฟเล็ตและโค้ด HTML เพียงเล็กน้อย คุณก็สบายใจกว่าที่จะใช้เซิร์ฟเล็ตแบบคลาสสิก แต่ถ้าคุณต้องการหน้า HTML ขนาดใหญ่ที่เซิร์ฟเวอร์เปลี่ยนเพียงไม่กี่บรรทัดล่ะ

ในกรณีนี้ สิ่งที่ง่ายที่สุดคือการสร้างหน้า HTML นี้และรันโค้ด Java บนเซิร์ฟเวอร์ในนั้น

1.2 การคอมไพล์ JSP

ลองดูตัวอย่างอื่น:

<html>
  <body>
    <%
        double num = Math.random();
        if (num > 0.95) {
     %>
         <h2>You are lucky, user!</h2><p>(<%= num %>)</p>
    <%
        }
    %>
  </body>
</html>

เราได้รับตัวเลขสุ่ม และถ้ามากกว่า 0.95 เราจะพิมพ์ข้อความ "คุณโชคดี ผู้ใช้!"

รหัส Java ถูกเน้นที่นี่ด้วยสีน้ำเงิน ปกติ (ไม่เน้น) - โค้ด HTML และสีแดง - แท็กบริการซึ่งช่วยให้เข้าใจว่าโค้ด Java อยู่ที่ใดและ HTML อยู่ที่ใด

คุณสังเกตเห็นอะไรแปลก ๆ หรือไม่? วงเล็บปีกกาปิด"}"อยู่ในอีก"code block". วิธีที่ถูกต้องในการเขียนโค้ดดังกล่าวคืออะไร? มันทำงานอย่างไร?

คำตอบจะง่ายมาก :)

เว็บเซิร์ฟเวอร์ หลังจากพบไฟล์ JSP แล้ว จะคอมไพล์เป็นเซิร์ฟเล็ตแบบคลาสสิก ตามหน้า JSP ด้านบน Servlet นี้จะถูกสร้างขึ้น:

public class HelloServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response)  throws Exception {
    PrintWriter out = response.getWriter();
    out.print("<html> ");
    out.print("<body>");
        double num = Math.random();
        if (num > 0.95) {
            out.print("<h2>You're lucky user! </h2><p>(" + num + ")</p>");
        }
    out.print("</body>");
    out.print("</html>");
    }
}

เว็บคอนเทนเนอร์เพิ่งสร้างโค้ดเซิร์ฟเล็ต โดยที่ HTML เปลี่ยนเป็นข้อความ และการแทรกโค้ด Java กลายเป็นโค้ด Java ปกติ!

ความคิดเห็น
  • เป็นที่นิยม
  • ใหม่
  • เก่า
คุณต้องลงชื่อเข้าใช้เพื่อแสดงความคิดเห็น
หน้านี้ยังไม่มีความคิดเห็นใด ๆ