Chương 1: Co sở lý thuyết Chương 2: Mô tả bài toán, thiết kế xây dựng sản phẩm Chương 3: Hiện thực trang Web.PHAN NOI DUNG CHUONG 1: CO SO LY THUYET 1. NGON NGU JAVA VA CAC FRAMEWORK SU DUNG TRONG UNG DUNG WEB 1. Ngôn ngữ Java Ngôn ngữ lập trình Java ban đầu được phát triển bởi Sun Microsystems do James Gosling khởi xướng 1991, ban đầu ngôn ngữ này được gọi là Oak, chính thức phát hành vào năm 1995 (Java 1. Tính đến thời điểm này phiên bản mới nhất của Java Standard Edition (SE) là 9.
Với ưu thế về đa nền tảng (multi platform) Java càng lúc càng được ứng dụng rộng rãi trên nhiều thiết bị từ máy tính đến mobile và nhiều thiết bị phần cứng khác. Java là ngôn ngữ lập trình hướng đối tượng nên nó cũng có 4 đặc điểm chưng của các ngôn ngữ hướng đối tượng: e_ Tính trừu tượng (Abstraction): là tiến trình xác định và nhóm các thuộc tính, các hành động liên quan đến một thực thể đặc thù, xét trong mối tương quan với ứng dụng đang phát triển. e Tinh đa hình (Polymorphism): cho phép một phương thức có các tác động khác nhau trên nhiều loại đối tượng khác nhau. Với tính đa hình, nếu cùng một phương thức ứng dụng cho các đối tượng thuộc các lớp khác nhau thì nó đưa đến những kết quả khác nhau.
Bản chất của sự việc chính là phương thức này bao gồm cùng một số lượng các tham số. © Tính kế thừa (nheritance): Điều này cho phép các đối tượng chia sẻ hay mở rộng các đặc tính sẵn có mà không phải tiến hành định nghĩa lại. e Tính đóng gói Œncapsulation): là tiến trình che giấu việc thực thi những chỉ tiết của một đối tượng đối với người sử dụng đối tượng ấy. Bên cạnh đó Java còn có một số đặc tính khác: © Déc lap nén (Write Once, Run Anywhere): Khéng giống như nhiều ngôn ngữ lập trình khác như C và C ++, khi Java được biên dịch, nó không được biên dịch sang.
mã máy cụ thể, mà thay vào đó la ma byte code chạy trên máy ảo Java (VM). Điều này đồng nghĩa với việc bất cứ thiết bị nào có cài đặt TVM sẽ có thể thực thi được các chương trình Java. © Đơn giản: Học Java thật sự dễ hơn so với C/C++, nếu đã quen với các ngôn ngữ lập trình hướng đối tượng thì việc học Java sé dé dang hơn. Java đã loại bỏ tính đa kế thừa và phép toán con trỏ từ C/C++.
¢ Bao mat: Java hỗ trợ bảo mật rất tốt bởi các thuật toán mã hóa như mã hóa một chiều (one way hashing) hoặc mã hóa công cộng (public key). © Đa luỗng: Với tính năng đa luỗng Java có thể viết chương trình có thể thực thi nhiều task cùng một lúc. Tính năng này thường được xử dụng rất nhiều trong lập trình game. e_ Hiệu suất cao nhờ vào trình thu gom réc (garbage collection), giải phóng bộ nhớ đối với các đối tượng không được dùng đến.
© Linh hoạt: Java được xem là lĩnh hoạt hơn C/C ++ vì nó được thiết kế dé thích ứng với nhiều môi trường phát triển. Ngôn ngữ Java được dùng đề: © Viết ứng dụng web (T2EE): Java thường được sử dụng để xây dựng các hệ thống web lớn đòi hỏi bảo mật cao, số lượng người dùng lớn như ngân hàng, phần mềm quản lý bệnh viện, CRM, HRM. Đối với các website nhỏ thông thường rất ít viết bằng Java. © Viết ứng dụng mebile (2ME): Trước đây nền tảng J2ME thường được sử dụng để viết game và app cho di động feature phone (file jar) và giờ đây khi smartphone Android lên ngôi Java lại tiếp tục được sử dụng để viết app và game cho nén tảng Android (file.
© Viét img dụng desktop (I2SE): Lợi thế lớn nhất của ứng dụng Java la chi viét một lần và sau đó có thể đem chương trình lên Windows, Linux hay Mac để chạy mà không cần phải viết lại. Để lập trình Tava cần có: ® JDK (Java Development KIT): JDK là một bộ công cụ cho phép người lập trình phát triển và triển khai các ứng dụng bằng ngôn ngữ java. IDK bao gồm TRE (Java Runtime Enviroment) va thư viện để phát triển. © IDE (Integrated Development Environment): IA tmg dung giúp lập trình viên phát triển dé dàng và nhanh chóng hơn.
Để chạy chương trình có thể sử dụng Netbeans, Eclipse. Một số Framework sir dung 1. Tim hiéu vé Servlet va JSP trong Java a. Java Servlets Java Servlets 14 cac chương trình chạy trên một Web server hoặc một Application server va thy hiện như là một tầng trung gian giữa một Yêu cầu từ một trình duyệt web hoặc HTTP client với các Database hoặc các ứng dụng trên HTTP.
Sir dung Servlets, cé thé thu thập Input từ người sử dụng thông qua các form trên trang web, hiển thị các bản ghi (record) từ một Database hoặc từ nguồn khác, và tạo các trang web động. Java Servlets thường có chung mục đích: là các chương trình độc lập bởi việc sử dung Common Gateway Interface (CGI). Nhung so véi CGI, thi Servlets có các lợi thế sau: e Hiệu năng tốt hơn đáng kể. © Servlets thực thi bên trong không gian địa chỉ của một Web server, không cần thiết phải tạo một tiến trình riêng biệt để xử lý mễi yêu cầu từ Client.
© Servlets la déc lập trên nền tảng bởi vì chúng được viết bằng Java. © Bởi vì viết bằng Java (mà Java cung cấp tình bảo mật cao trên Server) nên Servlets 1a đáng tin cậy. © Tinh nang đầy đủ của thư viện của các lớp trong Java là luôn luôn có sẵn cho Servlets. Nó có thể giao tiếp với Applet, Database hoặc phần mềm khác thông qua các Socket và kỹ thuật RMI mà java đã sử dụng.
+* Cấutrúc củaSevids ấi [ Hrrp HTTP (a Protocol Web Browser l¢— Hinh 1.1: Sơ đồ minh họa cầu trúc của Serviets trong mội ting dung web Ñervlets thực hiện các công việc chủ yêu sau: © Doc dir ligu hién thi (explicit) được gửi bởi Client (hoặc trình duyệt) bao gồm một HTML Fom trên một trang web hoặc nó cũng có thể từ một Applet hoặc một chương trình Custom từ HTTP Client. © Đọc dữ liệu yêu cầu HTTP ẩn (mplici) được gửi bởi Client (hoặc trình duyệt) bao gồm cookie, các loại media. © Xử lý dữ liệu và cho ra kết quả. Tiến trình này có thể yêu cầu Database, đang thực thi một triệu hồi tới RMI hoặc CORBA, triệu hồi một Web Service, hoặc tính toán phản hồi một cách trực tiếp.
e- Gửi dữ liệu hiển thị (ví dụ: tài liệu) tới các Client (hoặc trình duyệt). Tài liệu này có thể được gửi theo nhiều định dạng khác nhau, gồm text —TTML hoặc XML), nhị phân (hình ảnh GIF), Excel,. © Giri phan héi HTTP ẩn tới các Client (hoặc trình duyệt), thông báo cho trình duyệt hoặc Client về kiểu của tài liệu được trả về (ví dụ: HTML), thiết lập các Cookie và Caching các tham số, cùng các tác vụ khác. Java Servlets là các lớp trong Java chạy bởi một Web Server mà có một trình thông địch hễ trợ Java Servlets.
Servlets có thể được tạo bởi sử dụng các gói javax.servlet và javax.http là một phiên bản mở rộng của thư viện lớp Java để hễ trợ các dự án phát triển có phạm vi lớn. Các lớp này triển khai Java Servlet va JSP. Java Servlet đã được tạo và được biên địch giống như các lớp khác trong Java. Sau khi cài đặt các gói servlet và thêm chúng vào Classpath trong máy, chúng ta có thể biên dịch Servlet với bộ biên dịch IDK hoặc bắt kỳ bộ biên dịch nào khác.
'Vòng đời của Servlet có thể được định nghĩa như là một tiến trình đầy đủ từ khi được tạo ra đến khi bị hủy. Mệt Servlet theo các giai đoạn sau: © Servlet được khởi tạo bởi gọi phương thức initQ. © Servlet gọi phương thức servieeQ để xử lý mệt yêu cầu từ Client. © Servlet bị hủy bởi triệu hồi phương thức đestroyQ.
© Cuối cùng, servlet trở thành rác và được thu thập bởi Garbage Collector của JVM. Chỉ tiết từng phương thức trong vòng đời của Serviet: Phương thức init0: Phương thức được thiết kế đẻ chỉ được gọi một lần. Nó được gọi khi Servlet lần đầu được tạo, và không được gọi lại cho mỗi yêu cầu của người dùng. Vì thế, nó được sử dụng cho các khởi tạo one-time, giếng như phương thức init của Applet.
Thường thì, Servlet được tạo khi một người dùng lần đầu triệu hồi một URL tương ứng với Servlet đó, nhưng bạn cũng có thể xác định rằng Servlet này được tải khi Server được khởi động lần đầu. Khi mệt người sử dụng triệu hồi một Servlet, mot đối tượng đơn cia Servlet được tạo, với mỗi yêu cầu từ người dùng, là kết quả trong một thread mới, mà được thao tác tới doGet hoặc doPost một cách thích hợp. Phương thức mitQ tạo hoặc tải một vài dữ liệu mà sẽ được sử dụng qua vòng đời của Servlet đó. Định nghĩa phương thức mitQ như sau: public void init() throws ServletException { f/f Initialization code.
Phuong thite service(): Phương thức serviceQ là phương thức chính đề thực hiện tác vụ thực sự. Nơi chứa servlet (vi dy như Web Server) gọi phương thức serviceQ để xử lý các yêu cầu từ Client (hoặc trình duyệt) và viết phản hồi đã được định đạng trở lại Client đó. Mãi khi Server nhận một yêu cầu cho mét Servlet, thi Server tao mét Thread mới và triệu hồi serviceQ. Phương thức serviceQ kiểm tra kiểu yêu cdu HTTP (Kiéu GET, POST, PUT, DELET.) và gọi các phương thức doGet, doPost, doPut, doDelete.
tương ứng một cách thích hợp. Đây là minh họa cho phương thức serviceÔ: public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException{ + Phương thức serviceQ được gọi bởi Container và nó triệu hồi các phương thức doGet, doPost, doPut, doDelet,. Vì thế, không phải làm gì với serviceQ nhưng việc bạn ghi đè phương thức hoặc doGetQ hoặc doPostQ tùy thuộc vào kiểu yêu cầu mà bạn nhan tir Client. Hai phương thức doGetQ và doPostQ được sử dụng nhiều nhất với mỗi service.
Thương thức doGetQ Một yêu cầu GET, là kết quả từ một yêu cầu chuẩn cho URL hoặc từ một HTML form, mà không có PHƯƠNG THÚC nào được xác định và nó nên được xử lý bởi phương thức doGet().