CodeGym/Khóa học Java/Mô-đun 3/JSP: cách khai báo để xác định một servlet

JSP: cách khai báo để xác định một servlet

Có sẵn

1.1 Giới thiệu về JSP

Có hai cách phổ biến để viết một servlet: mệnh lệnhkhai báo . Chúng tôi đã giải quyết vấn đề đầu tiên - trên thực tế, đây là một Servlet. Cái thứ hai được gọi là JSP (Trang máy chủ Java) và chúng ta sẽ làm quen với nó ngay bây giờ.

Ví dụ về Servlet JSP:

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

Không giống lắm với Servlet cổ điển mà chúng ta quen dùng phải không? Đây là sự thật. JSP là một trang HTML có chèn mã Java (được đánh dấu bằng màu xanh lá cây) .

Bạn thấy đấy, nếu bạn có nhiều mã Java trong một servlet và ít mã HTML, thì bạn sẽ thấy thoải mái hơn khi sử dụng một servlet cổ điển . Nhưng nếu bạn cần một trang HTML lớn mà máy chủ chỉ thay đổi một vài dòng thì sao?

Trong trường hợp này, điều đơn giản nhất là tạo trang HTML này và bằng cách nào đó thực thi mã Java trên máy chủ ngay trong đó.

1.2 Biên dịch JSP

Hãy xem xét một ví dụ khác:

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

Chúng tôi nhận được một số ngẫu nhiên và nếu nó lớn hơn 0,95, chúng tôi sẽ in dòng chữ "Bạn thật may mắn, người dùng!"

Mã Java được đánh dấu ở đây bằng màu xanh lam . Bình thường (không được đánh dấu) - mã HTML và màu đỏ - thẻ dịch vụ giúp hiểu vị trí của mã Java và vị trí của HTML.

Bạn có nhận thấy một cái gì đó kỳ lạ? Dấu ngoặc nhọn đóng "}"nằm trong một tệp "code block". Cách đúng để viết mã như vậy là gì? Làm thế nào để nó thậm chí hoạt động?

Câu trả lời sẽ rất đơn giản :)

Máy chủ web, sau khi tìm thấy tệp JSP, sẽ biên dịch tệp đó thành một servlet cổ điển. Dựa trên trang JSP ở trên, Servlet này sẽ được tạo:

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>");
    }
}

Vùng chứa web vừa tạo mã servlet, trong đó HTML biến thành văn bản và mã Java chèn vào trở thành mã Java thông thường!

Bình luận
  • Phổ biến
  • Mới
Bạn phải đăng nhập để đăng nhận xet
Trang này chưa có bất kỳ bình luận nào