Lỗi internet explorer 11 khong doc duoc file jsp năm 2024

Jakarta Server Pages [JSP; trước đây là JavaServer Pages] là một bộ công nghệ giúp các nhà phát triển phần mềm tạo ra các trang web động dựa trên HTML, XML, SOAP hay các loại tài liệu khác. Được phát hành vào năm 1999 bởi Sun Microsystems, JSP tương tự như PHP và ASP, nhưng sử dụng ngôn ngữ lập trình Java.

Để triển khai và chạy Jakarta Server Pages, cần có một máy chủ web tương thích với servlet container, ví dụ như Apache Tomcat hoặc Jetty.

Tổng quan[sửa | sửa mã nguồn]

Trình duyệt web của bạn không hỗ trợ những applet này.

Ví dụ plugin trên minh họa một phương pháp đồng bộ để nhúng applet trong một trang web. Trước khi thẻ được tạo ra, chưa có một phương pháp chung nào cho phép người ta nhúng các applet cả. Thiết kế của thẻ này tương đối nghèo nàn. Hy vọng những đặc tả của nó trong tương lai sẽ cho phép những cái như đặc tính năng động [dynamic attributes] [

0,

1 v.v.] và thông số năng động [dynamic parameters]. Hiện này, thẻ jsp:plugin không cho phép dùng những applet khởi động một cách năng động. Chẳng hạn, nếu chúng ta có một applet biểu hiện đồ thị và nó cần có các dữ liệu về tọa độ được truyền cho nó thông qua các thông số, chúng ta không thể dùng jsp:params, trừ phi số điểm tọa độ là một số cố định. Chúng ta không thể, ví dụ, luân chuyển qua danh sách loạt kết quả [ResultSet] để kiến tạo các thẻ

2. Chúng ta phải tự tính toán cho từng cái thẻ

2 một. Đương nhiên, mỗi một thẻ

2 ấy có thể có một cái tên và một giá trị tùy định.

jsp:useBean[sửa | sửa mã nguồn]

Những thuộc tính về phạm vi ảnh hưởng [scope attribute] có thể là yêu cầu [request], trang [page], phiên giao dịch [session], hoặc trình ứng dụng [application]. Ý nghĩa của các thuộc tính như sau:

  • yêu cầu [request] — thuộc tính này kéo dài trong toàn bộ thời gian tồn tại của yêu cầu [lifetime of the request]. Một khi yêu cầu đã được tất cả cácc trang JSP xử lý, thuộc tính sẽ mất điểm tham chiếu [de-referenced].
  • trang [page] — thuộc tính chỉ được dùng trong trang hiện tại mà thôi.
  • phiên giao dịch [session] — thuộc tính được dùng trong toàn bộ thời gian tồn tại phiên giao dịch của người dùng.
  • trình ứng dụng [application] — thuộc tính có thể được dùng bởi tất cả các thực thể [instance] và sẽ không bao giờ mất điểm tham chiếu. Tương tự như một biến toàn cục [global variable].

Ví dụ trên sử dụng Chương trình quản lý Bean [Bean Manager] để tạo một thực thể [instance] của lớp

5 và lưu trữ thực thể trong thuộc tính [attribute] có tên là "myBean". Thuộc tính tồn tại trong toàn bộ thời gian của yêu cầu. Nó có thể được chia sẻ giữa tất cả các trang JSP đã được bao gồm hay những trang được chuyển về phía trước từ trang JSP nhận yêu cầu đầu tiên.

Thư viện thẻ JSP[sửa | sửa mã nguồn]

Cùng với các hành động JSP định sẵn, các nhà phát triển có thể thêm vào các hành động tùy biến của họ dùng các hàm API của JSP hỗ trợ cho việc mở rộng thẻ [JSP Tag Extension API]. Các nhà phát triển sẽ viết một lớp Java [class] để thực thi một trong các thẻ giao diện [Tag interfaces] và cung cấp một tập tin chứa mô tả XML về thư viện thẻ. Tập tin này được dùng để xác định các thẻ và các lớp Java [java classes] thực hiện các thẻ đó.

Xem xét ví dụ sau:

...

//example import //example contentType //example for non error page //example for a thread safe JSP

0

...

//example import //example contentType //example for non error page //example for a thread safe JSP

1

...

Bộ biên dịch JSP sẽ đọc tập tin XML

6 và phát hiện rằng thẻ

7 được thực hiện bởi lớp Java [java class] tên

8 [xem ở dưới]. Lần đầu tiên, khi thẻ này được dùng trong tập tin JSP, nó sẽ tạo nên một thực thể [instance] của

8. Sau đó [và mỗi lần thẻ này được dùng lại], nó sẽ khởi động phương thức

`` 0 khi nó gặp thẻ "mở đầu" [start]. Nó thẩm tra kết quả của thẻ "mở đầu", và quyết định phương pháp để xử lý phần thân của thẻ. Thân của thẻ là phần văn bản nằm giữa thẻ "mở đầu" và thẻ "kết thúc" [end]. Phương thức

`` 0 có thể trả về một trong những hằng sau:

  • SKIP_BODY - Phần thân giữa thẻ không được xử lý [bỏ qua]
  • EVAL_BODY_INCLUDE - định giá trị phần thân của thẻ
  • EVAL_BODY_TAG - định giá trị phần thân của thẻ và đẩn kết quả vào luồng dữ liệu [được lưu trong thuộc tính về nội dung thân của thẻ]. Chú ý: Nếu thẻ là kế thừa [extends] của lớp BodyTagSupport, thì phương thức doAfterBody[] sẽ được khởi động khi phần thân được xử lý, trước khi khởi động doEndTag[]. Phương thức này dùng để thực hiện cấu trúc lặp vòng.

Khi gặp thẻ "kết thúc", nó gọi phương thức doEndTag[]. Phương thức này có thể trả lại một trong hai giá trị:

  • EVAL_PAGE - ám chỉ rằng phần còn lại của tập tin JSP cần phải được xử lý.
  • SKIP_PAGE - ám chỉ rằng không còn phần xử lý nào cần phải làm nữa. Quyền khống chế sẽ rời khỏi trang JSP. Phương pháp này được dùng trong hành động chuyển trang [forwarding action].

Thẻ

7 cần phải có một lớp [class] thực thi nó, tương tự như phần sau đây:

//example import //example contentType //example for non error page //example for a thread safe JSP

2

Quốc tế hóa[sửa | sửa mã nguồn]

Quốc tế hóa trong JSP có thể được thực hiện tương tự như phương pháp làm trong các trình ứng dụng Java thông thường, nghĩa là bằng cách dùng gói tài nguyên [resource bundle]. Việc thay đổi ngôn ngữ thể hiện trên các trang web được thực hiện một cách đơn giản thông qua việc thay đổi đơn vị locale. Bằng cách đó, lập trình viên có thể thực hiện thay đổi nội dung, ngôn ngữ... thông qua thay đổi các resource bundle này chứ không cần trực tiếp tác động lên code của trang JSP hay code của taglib.

JSP 2.0[sửa | sửa mã nguồn]

Phiên bản đặc tả mới của JSP bao gồm những đặc trưng mới nhằm nâng cao hiệu năng của nhà lập trình [hầu cho họ làm việc được nhanh và có kết quả hơn], gọi là:

  • Ngôn ngữ biểu thức [JSP Expression Language - viết tắt là JSP EL] nhằm cho phép các nhà phát triển tạo ra mẫu [templates] theo phong cách Tốc lực [Velocity] [và những cái khác nữa].
  • Một phương thức nhanh gọn / dễ dàng để tạo ra các thẻ mới.

//example import //example contentType //example for non error page //example for a thread safe JSP

3

Mẫu hình MVC[sửa | sửa mã nguồn]

Sun khuyến cáo việc sử dụng mẫu hình MVC [Model-View-Controller - tạm dịch là "Mô hình dữ liệu - giao diện người dùng - lôgic điều khiển", có thể gọi ngắn là "mô hình - giao diện - điều khiển"] cho các tập tin JSP để có thể tách biệt phần trình bày [presentation] khỏi phần xử lý yêu cầu [request processing] và lưu trữ dữ liệu [data storage]. Hoặc là các

`` 3 thông thường hoặc là các tập tin JSP phải được sử dụng để xử lý yêu cầu. Sau khi đã hoàn thành việc xử lý yêu cầu, quyền điều khiển được chuyển sang cho một trang JSP khác. Trang này chỉ được dùng để tạo xuất liệu, tức là hiển thị ở đầu ra. Hiện nay có một vài hệ nền [platforms] được tạo dựa trên nền của nguyên lý mẫu hình MVC cho các tầng máy web [web tiers] [chẳng hạn như Struts và cơ cấu Spring [Spring framework]]

Ví dụ[sửa | sửa mã nguồn]

Mặc dầu bộ biên dịch JSP kiến tạo mã nguồn Java cho servlet hoặc phát ra mã byte của Java [byte code] trực tiếp, chúng ta cũng nên hiểu quá trình bộ biên dịch JSP biến đổi một trang JSP trở thành một servlet của Java như thế nào. Chẳng hạn, chúng ta thử cân nhắc những dữ liệu nhập của JSP sau đây, và kết quả Java Servlet mà nó sinh tạo.

Chủ Đề