Chủ Nhật, 31 tháng 8, 2014

Describe Servlet Life Cycle

Servlet Life Cycle có thể được định nghĩa như một quá trình từ khi nó được tạo cho đến khi nó bị phá hủy.
- Servlet được khởi tạo bằng cách gọi phương thức init()
- Servlet gọi phương thức service() để xử lý một request của client
- Servlet kết thúc qua việc gọi phương thức destroy()
- Cuối cùng, servlet được thu gom bởi các bộ thu gom của JVM

  • The init() method

Phương thức init được thiết kế để gọi chỉ một lần. Nó được gọi khi servlet được tạo lần đầu tiên, mỗi request của người dùng sau sẽ không được gọi lại. Vì vậy nó được sử dụng cho việc khởi tạo một lần. Servlet thường được tạo khi một user gọi url đàu tiên tương ứng tới servlet, nhưng cũng có thể chỉ rõ khi nào servlet được load khi server khởi động lần đầu.
Khi một user gọi một servlet, một thể hiện của mỗi servlet được tạo, với mỗi kết quả request của user trọng một thread được chuyển tới doGet hoặc doPost thích hợp. Phương thức init() tạo hoặc tải một vài dữ liệu đơn giản sẽ được sử dụng trong suốt chu kỳ sống của servlet.

  • The service() method
Phương thức service() là phương thức chính để thực hiện nhiệm vụ cụ thể. Servlet gọi phương thức service() để xử lý request gửi từ client và định dạng respone trả lại client.
Mỗi khi server nhận một request cho servlet, server tạo ra một thread mới và gọi service. Phương thức service kiểm tra loại HTTP request (GET, POST, PUT, DELETE) và gọi phương thức doGet, doPOST, doPUT, doDelete tương ứng
Phương thức service() được gọi và tham gia vào phương thức doGet, doPost, doPut, doDelete tương ứng. Vì vậy ta không cần phải làm gì với phương thức service() nhưng phải override phương thức doGet, doPost() phụ thuộc vào loại request nhận từ client

  • The doGet() method
Một kết quả request loại Get từ một một request cho một url hoặc từ một trang HTML không có phương thức cụ thể và nó được xử lý by phương thức doGet()

  • The doPost() method
Một kết quả request loại Post từ một trang HTML chỉ rõ danh sách POST được xử lý bỏi phương thức doPost()

  • The destroy() method
Phương thức destroy() được gọi chỉ một lần vào thời điểm kết thúc một vòng làm việc của servlet. Phương thức này cho phép thay đổi đóng kết nối databases, dừng thread chạy ngầm, ghi cookie...
Sau khi phương thức destroy() được gọi, servlet được đánh dấu cho bộ thu gom rác.

Describe HTTP properties

- HTTP viết tắt của Hypertext Transfer Protocol. Là một giao thức stateless nằm ở tầng ứng dụng, giúp giao tiếp giữa các hệ thống phân tán với nhau.
- HTTP sử dụng giao thức TCP/IP để giao tiếp giữa các client và server, tuy nhiên có thể sử dụng giao thức UDP. Cổng giao tiếp mặc định của HTTP là 80. Giữa client và server giao tiếp với nhau thông qua request và respone. Trong đó client sẽ gửi HTTP request đến server và nhận HTTP respone trả về từ phía server
- HTTP request gồm hai thành phần quan trọng đó là url và verb được gửi từ phía client. Còn HTTP respone trả về có chứa status code và message body
- Verb: Client sử dụng các phương thức GET, POST, PUT và DELETE để gửi đến server

  • GET: Sử dụng để truy vấn dữ liệu , tài nguyên trên server với các tham số và giá trị nằm ngay trên URL. Phương thức này sẽ gửi một yêu cầu và lấy tài nguyên trên server, sau đó sẽ gửi trở lại client. Tài nguyên đó có thể là một trang HTML, hình ảnh video hoặc file văn bản.
  • POST: Sử dụng trong trường hợp tạo ra sự thay đổi về dữ liệu tài nguyên trên server như upload một file hoặc submit một web form
  • PUT: Dùng để cập nhật nguồn tài nguyên hiện có.
  • DELETE: Dùng để xóa nguồn tài nguyên hiệnc có
  • Ngoài ra còn có một số phương thức ít được sử dụng như: HEAD, TRACE và OPTIONS.
- URL: Là một đường dẫn trong đó bao gồm protocol, host, port, resource path và query.
- Status code là thông tin server gửi trả về cho client, chính là kết quả xử lý request của server

Describe Java Web Tech


1. Wep application
Web application là một ứng dụng phân tán, nó có thể làm việc trên nhiều máy tính và được liên kết thông qua network hoặc server. Web application được truy cập với một web browser và mỗi browser tương ứng với một client.Trong doanh nghiệp, khả năng cập nhật và nâng cấp web applications không cần deploy và cài đặt trên nhiều máy tính client, vì lý do đó mà nó trở nên phổ biến.



2. Java web technologies
Có rất nhiều công nghệ về Java được sử dụng, dưới đây là một số công nghệ được sử dụng trong Java web.
  • Java Servlet API
Java Servlet API định nghĩa các class HTTP. Một servlet class kế thừa khả năng của server, máy chủ lưu trữ ứng dụng được truy cập bằng mô hình request-response. Mặc dù serverlet có thể đáp ứng mọi loại request, chúng thường được mở rộng khả năng ứng dụng được host bởi web server. Bạn nên sử dụng servlet để lấy dữ liệu nhập vào online và hiển thị trên giao diện như một trang với định dạng HTML, hoặc sử dụng các servlet khác nhau để ghi dữ liệu ra file hoặc database. Servlet chạy trên server không cần ứng dụng GUI hay hay giao diện người dùng. Sự mở rộng của Java servlet khiến cho nhiều ứng dụng web trở nên có thể
Trong servlet hai packages javax.servlet và javax.servlet,html cung cấp các class và interfaces để định nghĩa servlet. HTML servlet class kế thừa từ abtract class javax.servlet.http.HttpServlet cung cấp framework xử lý giao thức HTTP

  • JavaServer Page technology
JavaServer Page (JSP) cung cấp việc tạo nội dung trang web động một cách đơn giản hóa và nhanh nhất. JSP cho phép việc phát triển nhanh chóng ứng dụng nền tảng web mà server và platform độc lập nhau. JSP cho phép thêm một đoạn servlet code trực tiếp vào tài liệu text-base. Một JSP là một tài liệu text-base chứa hai loại text
 - Dữ liệu tĩnh có thể được thể hiện trong bất kỳ định dạng text-base nào như HTML, WML hay XML
- Thành phần JSP quyết định cấu trúc nội dung động như thế nào
Packages tham gia vào tạo trang JSP là javax.el, javax.serlet.jsp, javax.servlet.jsp.el và javax.servlet.jsp.tagext. Một trang JSP có thể đơn giản như HTML với một đoạn code JSP và đuôi mở rộng .jsp

  • JavaServer Faces technology
JavaServer Faces (JSF) là một framework UI để xây dựng ứng dụng web. Thành phần chính của JSF bao gồm thành phần GUI framework, một model để tạo ra các thành phần và chuẩn RenderKit để sinh ra các thẻ HTML
Chức năng này có sẵn thông qua chuẩn Java API và file cấu hình XML. Thêm vào đó Sun Java Studio Creator IDE thúc đẩy công nghệ JSF trong công cụ GUI kéo thả, cho phép bạn sử dụng cộng nghệ mà không cần viết hoặc hiểu code.

Thứ Năm, 28 tháng 8, 2014

Describe client - server model

Mô hình client-server là mô hình phổ biến trong mạng internet hiện nay. Mọi trang web hiện có đều dựa trên mô hình client-server.
Mô hình client-server làm việc dựa trên cơ chế request và respone. Trong đó client sẽ gửi request cho server và server sẽ xử lý và gửi lại respone cho phía client.
Giữa client và server giao tiếp với nhau thông qua chuẩn được gọi là giao thức mạng. Một client muốn gửi request để lấy thông tin từ server thì phải tuân theo giao thức của phía server. Hiện nay có rất nhiều chuẩn giao thức được ra đời: TCP/IP, HTTP cho web, SMTP/POP3 cho mail, FTP cho trao đổi file, SNA, OSI, Telnet...

  • Client: Có thể được hiểu là một máy trạm chỉ được sử dụng bởi một người dùng. Bao gồm web browser, ứng dụng chat, phầm mềm email. Ví dụ người dùng web browser tạo request
  • Server: Có thể được hiểu như là một máy tính lớn đáp ứng nhiều người sử dụng. Server sẽ cung cấp và điều khiển các process truy cập vào tài nguyên trên server. Nó cung cấp các services cho client như truy cập cơ sở dữ liệu, truyền file, in....Nó bao gồm web, database, application, chat, mail
Server quản lý hầu hết các process và lưu trữ data. Client được coi như là máy trạm sử dụng các dịch vụ trên mạng do một hoặc nhiều máy chủ cung cấp và server là phía cung cấp các dịch vụ để trả lời các request từ phía client
Hệ thống sẽ thiết lập kết nối có phần nào đó khác biệt giữa client và server nhưng cả hai đều liên quan đến việc xây dựng socket. Hai quá trình thiết lập socket của riêng chúng.
- Client:
+ Client tạo một socket bằng cách gọi socket() của hệ thống
+ Gọi connect() của hệ thống để kết nối đến địa chỉ của server
+ Gửi và nhận dữ liệu bằng read() và write() của hệ thống
- Server
+ Tạo một socket bằng việc gọi socket() của hệ thống
+ Kết nối socket tới một địa chỉ sử dụng bind(). Một socket server trên internet là một địa chỉ với số port trên máy chủ.
+ Lắng nghe kết nối qua listen() của hệ thống.
+ Chấp nhận một kết nối bằng accept()
+ Gửi và nhận dữ liệu bằng read() và write()