6.1 JavaBean là gì

Vào cuối những năm 90, ngôn ngữ Java bắt đầu được sử dụng tích cực cho các ứng dụng máy chủ lớn, trong đó số lượng lớp được đo bằng hàng chục và hàng trăm nghìn. Đó là khi ý tưởng chuẩn hóa giao diện của các đối tượng Java xuất hiện.

Toàn bộ ngôn ngữ Java không được chạm vào để không làm mất đi tính linh hoạt của nó. Chà, khả năng tương thích ngược và tất cả những thứ đó. Sau đó, họ đã phát triển một số tiêu chí cho các đối tượng Java thế hệ mới và gọi các đối tượng đó là Java Beans. Java được đặt theo tên của một thương hiệu cà phê phổ biến, vì vậy Java Beans được dịch theo nghĩa đen là "hạt cà phê".

Các tiêu chí quan trọng nhất là:

  • Truy cập vào các trường nội bộ của lớp đi qua tệp getProperty().
  • Việc ghi dữ liệu vào các trường lớp đi qua setProperty(value).
  • Lớp phải có một hàm tạo không tham số công khai .
  • Lớp phải được tuần tự hóa.
  • Lớp phải có phương thức equals()hashCode()phương thức được ghi đè toString().

Cách tiếp cận này làm cho các ứng dụng ít mạch lạc hơn. Luôn rõ ràng:

  • cách tạo một đối tượng - có một hàm tạo mặc định công khai;
  • cách lấy/đặt giá trị thuộc tính;
  • làm thế nào để chuyển/lưu một đối tượng (chúng tôi sử dụng tuần tự hóa);
  • cách so sánh các đối tượng (dùng equals() và hashCode());
  • cách hiển thị thông tin về đối tượng trong nhật ký (sử dụng toString).

Bây giờ nó thực sự là tiêu chuẩn công nghiệp, nhưng nó đã từng là một xu hướng mới. Có vẻ như mọi người đã viết như thế này rồi, mặc dù nếu bạn còn nhớ HttpClient và các Trình tạo của nó, bạn có thể thấy rằng tiêu chuẩn mới khó đối với ai đó.

Các đối tượng như vậy được sử dụng rộng rãi khi tải ngữ nghĩa chính của chúng là lưu trữ dữ liệu. Ví dụ: trong GUI, cơ sở dữ liệu và trang JSP.

6.2 JSP và JavaBeans

Một trong những lý do của JSP là nó có thể được các nhà phát triển front-end thuê ngoài. Vậy thì sao? Bạn có một người hiểu HTML, hãy để anh ta viết JSP. Các lập trình viên Java viết phần của họ, các nhà phát triển front-end viết phần của họ - mọi thứ đều ổn.

Và mọi thứ đều ổn cho đến khi các nhà phát triển giao diện người dùng phải hiểu mã Java đã viết được nhúng trong JSP. Hoặc, thậm chí tệ hơn, hãy tự viết mã như vậy.

Các lập trình viên Java cũng không hài lòng với điều này. Chà, cầu nguyện cho biết, nhà thiết kế bố cục nào là nhà phát triển phụ trợ? Vâng, họ không thể viết bất cứ thứ gì ngoại trừ kịch bản. Vâng, và toàn bộ mô hình lập trình nói rằng trộn các ngôn ngữ khác nhau trong một tệp là một hình thức tồi.

Sau đó, ý tưởng nảy ra rằng họ nói rằng hãy tạo cơ hội cho các nhà phát triển front-end làm việc với các đối tượng Java, cũng như với mã HTML. Mỗi thẻ HTML cũng là một đối tượng với các trường riêng của nó, tại sao không làm việc với các đối tượng Java theo cách tương tự?

Không sớm nói hơn làm. Đã thêm các thẻ đặc biệt và chúng tôi bắt đầu.

Tạo đối tượng:

<jsp:useBean id="Name" class="Object type" scope="session"/>

Lệnh này đã tạo một đối tượng có loại objectvà đặt nó sessiondưới tên Name.

Các đối tượng có thể được lưu trữ ở một trong bốn cửa hàng: ứng dụng (toàn cầu), phiên, yêu cầu và trang. Cũng có thể đặt thuộc tính của các đối tượng như vậy:

<jsp:setProperty name="Name" property="propName" value="string constant"/>

Bạn có thể lấy thuộc tính của các đối tượng như thế này:

<jsp:getProperty name="Name" property="propName"/>

Một ví dụ về việc sử dụng thẻ:

<body>
    <center>
        <h2>Using JavaBeans in JSP</h2>
        <jsp:useBean id = "test" class = "com.example.TestBean" />
        <jsp:setProperty name = "test" property = "message" value = "Hello JSP..." />
        <p> What-to do important</p>
        <jsp:getProperty name = "test" property = "message" />
    </center>
   </body>