Thứ Tư, 2 tháng 7, 2014

Expression Language

Expression Language là một tính năng mới trong JSP 2. Nó là cách đơn giản để viết lại các biểu thức trên trang JSP ngắn gọn hơn và có thể dùng các thẻ custom tag.
- Cấu trúc của Expression Language: 
${Expression}

- Đặc điểm :
+ Truy xuất các biến dễ dàng.
+ Hỗ trợ cả mạng và collection object.
+ Hỗ trợ các Implicit Object.
+ Expression Language được tính toán trong thời gian chạy.

- Cách truy xuất vào một thuộc tính nào đó hoặc một biến :
- ${pageScope.color}
- ${pageScope["color"]}


- Các implicit objects cơ bản của Expression Language :
+ PageScope :tồn tại trong phạm vi của trang JSP.
+ SessionScope : mô tả các phiên làm việc của người dùng
+ RequestScope : Vòng đời Request -> Respone
+ ApplicationScope : phạm vi ứng dụng ,khi ứng dụng được bật lên.

- Toán tử cơ bản trong Expression Language:


Các Operators.

+ Arithmetic Operators(Toán tử số học): +,-,*,/ or div,% or mod.
+ Relational Operators(Toán tử quan hệ): < or lt, > or gt, <= or le, >= or ge, == or eq, != or ne.
+ Logical Operators: && or and, || or or, ! or not.
+ Empty Operators: Nếu đối tượng có giá trị là null thì trả về true và ngược lại. Cú pháp: ${empty x}


Standard Action and JavaBean

1.Khái niệm.

JavaBean là một đối tượng java,components java được tái sử dụng nhiều nơi khác nhau và được mã hóa theo JavaBean API.JavaBean là một complaint java.Chúng ta có bao gói các thuộc tính ở đó lại tất cả behavior nghĩa là các method cũng như các state nghĩa là các dữ liệu để xử lí dữ liệu.

2.Thuộc tính của JavaBean.

-Tính bao gói(toàn bộ dữ liệu,function).
-Thiết kế được tái sử dụng ở nhiều nơi khác nhau.
-Cung cấp hiển thị cụ thể dựa trên các qui định.
-Class javabean là public.

3.Cấu trúc của file JavaBean.

- Nằm trong 1 packages
- Constructor không có tham số đầu vào.Constructor này được gọi khi element của JSP tạo bean.
- Có các phương thức setter và getter để thao tác với các attribute.
*JSP cung cấp 3 java bean tag (standard action) :
-jsp:usebean.
-jsp:setProperty.
-jsp:getProperty.

4.Cách sử dụng JavaBean trong JSP

 Khai báo :  

          <jsp:useBean id="định danh" class="tên class" [scope="loại scope"]/>
giải thích:
-id : đại diện cho đối tượng truy xuất đến bean.
-class : tên class sử dụng.
-scope : tầm hoạt động của bean.mặc định là request.

Cơ chế thực hiện :

- Tìm kiếm class tương ứng được khai báo trong class.
- Khởi tạo instance thông qua constuctor.
- Gán định danh id cho instance để có thể truy xuất trên trang JSP.
- Xác định phạm vi hoạt động của istance này.

Cách khai báo biến dùng scriptlet tương đương javabean

 <%<tên class> <định danh> = new <tên class>();%>

Bài viết có tham khảo: http://thanhha112.blogspot.com/2014/07/javabean-and-standard-action.html 

Implicit Object

JSP Implicit Object là các đối tượng có sẵn trong JSP Container.Ta có thể gọi chúng ra bằng tên  đã được Java định nghĩa sẵn trong bằng các API.Chúng  được sử dụng trong các biểu thức expressions hoặc các đoạn Scriptlet:- Ví dụ về Scriptlet:
 <% out.print("Today is:"+java.util.Calendar.getInstance().getTime()); %>  Scriptlet là đoạn code được viết trong dấu <% ... %> .- Ví dụ về expressions: ${sessionScope.attributeName}  cú pháp expressions bắt đầu bằng ${ và kết thúc bằng  }.
Có 9 Scpope trong  Implicit Object :

Nhưng ta sẽ tìm hiểu 4 Scope cơ bản của Implicit Object :
  • Page : Gọi các phương thức bởi Servlet class.
  • Request : Là đối tượng HttpServletRequest liên quan đến việc yêu cầu và Implicit Object tồn tại từ lúc client request đến khi respone trả về.
  • Session : Là đối tượng thuộc HttpSession liên quan đến việc yêu cầu. 
  • Application: Là đối tượng thuộc ServletContext liên quan đến bối cảnh ứng dụng và tồn tại trong vòng đời của ứng dụng.
     
Implicit Object được chia làm 4 nhóm:
  • Những đối tượng liên hệ tới trang JSP.
  • Các đối tượng context.
  • Nhóm đối tượng xử lí lỗi.
  • Nhóm đối tượng liên quan tới input và output trong JSP.
Demo