JSP (viết tắt của tiếng Anh JavaServer Pages) còn được biết đến với một cái tên khác là Java Scripting Preprocessor - tạm dịch là "Bộ tiền xử lý văn lệnh Java" - là một công nghệ lập trình mã kịch bản phía máy chủ cho phép các nhà phát triển tạo ra các ứng dụng dựa trên Web đồng thời cho phép tận dụng các thành phần được phát triển bằng ngôn ngữ Java, tuân thủ theo đặc tả ngôn ngữ JavaBeans. Xét trên một vài khía cạnh thì JSP có thể so sánh với các ngôn ngữ scripting phía máy chủ khác như ASP và PHP. JSP giống như PHP ở khía cạnh cú pháp kiểu C của ngôn ngữ Java nhưng JSP lại có thể được thiết kế để có khả năng mở rộng thêm bằng cách dùng các thành phần như kiểu của ASP.
Ta có thể liệt kê các công nghệ phía server phổ biến là :
1. Common Gateway Interface (CGI)
2. Proprietary Web server APIs (ISAPI, NSAPI)
3. Server-side Java Scrípt(SSJS)
4. Personal Home Page (PHP)
5. Servlet
6. Active Server Pages(ASP)
7. JavaServer Page(JSP)
Trong thời gian đầu tiên của www, nguời ta thuờng xử dụng CGI (Common Gateway Interface) để xử lí trang động. CGI thông thuờng là những shell script hay perl (các bạn đã xử dụng UNIX sẽ quen thuộc với những loại script này). Khi có yêu cầu cho 1 trang động, web server sẽ chuyển yêu cầu này đến 1 script file nào đó và khởi động script file này. Nội dung của toàn bộ hay 1 phần của trang động đuợc tạo ra bởi script file. Kĩ thuật ban đầu này gặp nhiều khó khăn. Việc khởi động 1 script file cũng tuơng đuơng với chạy 1 process hay 1 ứng dụng, nó đòi hỏi khá nhiều tài nguyên (resource) của web server. Nếu có hàng ngàn yêu cầu 1 lúc thì web server sẽ đầu hàng chứ không thể nào khởi động hàng ngàn process cùng 1 lúc. Hơn nữa shell script hay perl không phải là những đối thủ lợi hại cho việc lập trình chưa nói đến việc bảo quản hay nâng cấp chúng rất khó khăn.
Cũng có nhiều kĩ thuật khác để xử lí trang động, Microsoft và Netscape đã hợp tác và đưa ra một cải tiến đáng kể là sử dụng các file thư viện liên kết động (DLL ), cho phép chia sẻ mã lệnh giữa các tiến trình. Đây chính là các kỹ thuật ISAPI và NSAPI.
Đen đủi thay, các kỹ thuật dựa trên DLL không phải là đã hoàn thiện. Chúng vẫn còn một số vấn đề:
- Khi các thư viện nền tảng được gọi, nếu muốn thoát các ứng dụng này, ta phải tắt chương trình triệu gọi (Web server) và khởi động lại máy tính.
- Các thư viện cần được đặt trong các tuyến trình bảo vệ, tức là chúng cần phải được cảnh giác về cách sử dụng các biến chung hoặc các biến tĩnh.
- Nếu chương trình triệu gọi gây ra lỗi truy cập, nó có thể dẫn đến tình trạng server bị treo.
- Và cuối cùng: khi đã được dịch ra các file DLL, công việc gỡ lỗi cũng như bảo trì mã lệnh trở nên vất vả hơn bao giờ hết.
Kỹ thuật Web mới nhất của Microsoft, kết hợp HTML, các đoạn Script, các thành phần xử lý phía server trong cùng một file, được gọi là ASP (Active Server Pages), với phiên bản mới nhất hiện nay là ASP.Net. ASP được triệu gọi bởi một thư viện liên kết động gắn với các Web server của Microsoft. Về bản chất, ta có thể coi ASP như là một ngôn ngữ thông dịch vậy. Một trang ASP có thể sử dụng HTML, JScript và VBScript. Qua các đoạn mã nhúng này, ASP có thể truy cập đến các thành phần phía server. Các thành phần này có thể được viết trên bất kỳ ngôn ngữ nào hỗ trợ các thành phần COM của Microsoft. Và đây chính là sức mạnh của ASP: nó có thể làm được bất kỳ cái gì mà máy chủ có thể làm được với các thành phần COM. Sau khi được thi hành, ASP sẽ sản sinh ra một trang Web có khuôn dạng HTML và trả nó về cho Web server.
Một bất lợi lớn đối với ASP là nó chỉ có thể hoạt động trên các họ Web server của Microsoft (bao gồm PWS trên Win9x hay IIS trên WinNT/2000/XP). Các nhà phát triển đang hướng đến những môi trường khác như Unix/Linux, nhưng kết quả thì còn phải đợi thêm một thời gian nữa
Servlet & JSP được phát triển dự trên kiến trúc MVC
o Các trang JSP đóng vai trò hiển thị các kết quả của người dùng (thành phần View)
o Servlet sẽ đóng vai trò là các Controller, điều khiển các yêu cầu được gửi lên từ các trang JSP
o Các class khác: bean, process thực hiện các chức năng nghiệp vụ: đọc, lưu dữ liệu sẽ thuộc vào thành phần Model
Servlet API được phát triển dựa trên những điểm mạnh của Java platform nhằm giải quyết những vấn đề của CGI và trình chủ server API. Nó là một API đơn giản hỗ trợ tất cả các Web server và thậm chí các ứng dụng máy chủ dùng để kiểm tra và quản lý các công việc trên server (load-balancing). Nó giải quyết vấn đề thực thi bằng việc thực hiện tất cả các yêu cầu như những thread trong một process, hoặc trên một hệ thống load-balancing sẽ là mỗi process trên một server trong kết chùm cluster. Các servlet dễ dàng chia sẽ tài nguyên.
Nó xen lẫn giữa HTML và Java nguồn, cũng có nghĩa là nó đòi hỏi nguời tạo trang web phải khá thành thạo trong lập trình bằng Java. Những nguời tạo trang web, thuờng đuợc xem là những nguời có đầu óc mỹ thuật hơn là kĩ thuật. Tìm kiếm 1 nguời vừa giỏi cả mỹ thuật lẫn kĩ thuật là 1 chuyện khó. Những nguời tạo web thường làm quen dễ dàng với những HTML tag hơn là với Java nguồn. JSP ra đời sau đó để giải quyết dứt điểm vấn đề này. Ngày nay Servlet chỉ thuờng xử dụng trong những truờng hợp đặc biết như tạo ra hình vẽ, đồ thị động...
Công nghệ JSP cho phép người ta nhúng mã Java và một số hành động xử lý đã được định trước (pre-defined actions) vào trong nội dung tĩnh của trang.
Cú pháp của JSP cho thêm các thẻ XML mới, gọi là JSP actions - hành động JSP. Những "hành động JSP" này được dùng để khởi động chức năng sẵn có, là những chức năng đã được xây dựng trước. Cộng thêm vào đó, công nghệ còn cho phép chúng ta tạo ra các thư viện thẻ JSP (JSP tag libraries), là những cái đóng vai trò vào việc mở rộng các thẻ HTML hay XML tiêu chuẩn. Thư viện thẻ (Tag libraries) là phương pháp mở rộng khả năng của một máy chủ web trong khi những mở rộng đó không phụ thuộc vào hệ nền (về cả cấu trúc máy cũng như hệ điều hành được dùng).
Trước khi hiển thị ra trình duyệt, tập tin JSP phải được biên dịch thành Servlet, dùng bộ biên dịch JSP (JSP compiler). Bộ biên dịch JSP có thể tạo servlet thành mã nguồn Java trước, rồi biên dịch mã nguồn ra tập tin .class dùng bộ biên dịch Java, hoặc có thể trực tiếp tạo mã byte code cho servlet từ trang JSP .Về mặt kiến trúc mà nói, ta có thể xem JSP là một trừu tượng ở mức độ cao của servlet, một phần mở rộng thực thi của Servlet 2.1 API.
JSP chạy thông qua drive ODBC:JDBC. Cổng mặc định của nó là 8000 (còn cổng mặc định của IIS là 80). Tuy nhiên bạn cũng có thể cho nó chạy độc lập với IIS hoặc là tích hợp với IIS. Một ứng dụng có thể có cả ASP và JSP.
Trong Servlet/JSP, bảo mật được cải tiến theo nhiều cách. Trước hết, bạn hiếm khi thực thi lệnh trên shell với dữ liệu cung cấp bởi người dùng khi Java API đã cung cấp truy cập đến tất cả những hàm sử dụng thông dụng. Bạn có thể sử dụng JavaMail để đọc và gởi mail, Java DataBase Connect (JDBC) để truy cập các database, lớp File và những lớp quan hệ để truy cập hệ thống file, RMI, CORBA, Enterprise Java Beans (EJB) để truy cập các hệ thống kế thừa. Việc xử lý các ngoại lệ của Java cũng làm cho một servlet chắc chắn hơn các trình chủ API C/C++ ...
Khi bạn tiếp cận với JSP, bạn sẽ thấy nó không giống các ngôn ngữ khác cùng loại. Cực nhanh, độc lập nền tảng, tính tương thích quy mô rất cao với sự trợ giúp từ các hàm xây dựng sẵn cho các công việc xử lý phân tán, tương thích với tất cả các web server quan trọng nhất và MIỄN PHÍ cho tất cả mọi người, cho tất cả các công việc kể cả thương mại.
Không có nhận xét nào:
Đăng nhận xét