CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1. Phân tích hiện trạng thi trắc nghiệm tiếng Anh trực tuyến Hiện nay phổ cập tiếng Anh cho toàn bộ sinh viên và học sinh đang là vấn đề cấp thiết tại các trường đại học, cao đẳng và trung học phổ thông. Nhằm mục đích hỗ trợ hiệu quả cho các trường học tổ chức quản lý và đánh giá chính xác trình độ tiếng Anh của học sinh sinh viên nên em đã xây dựng hệ thống thi trắc nghiệm tiếng Anh trực tuyến tại trường đại học Bách Khoa Đà Nẵng. Nghiên cứu lý thuyết 1.
Tổng quan về Java Servlet / Jsp Công nghệ Servlet được sử dụng để tạo ra ứng dụng web (nằm ở phía máy chủ và tạo ra trang web động). Sử dụng Servlet, bạn có thể thu thập thông tin đầu vào từ người dùng thông qua các trang web, hiển thị các bản ghi từ một cơ sở dữ liệu hoặc một nguồn khác.Công nghệ servlet là mạnh mẽ và có khả năng mở rộng. Trước Servlet, ngôn ngữ kịch bản CGI (Common Gateway Interface) được sử dụng phổ biến như một ngôn ngữ lập trình phía máy chủ. Servlet có thể được mô tả bằng nhiều cách, tùy thuộc vào ngữ cảnh: ● Servlet là một công nghệ được sử dụng để tạo ra ứng dụng web.
● Servlet là một API cung cấp các interface và lớp bao gồm các tài liệu. ● Servlet là một thành phần web được triển khai trên máy chủ để tạo ra trang web động. Có nhiều interface và các lớp trong API servlet như Servlet, GenericServlet, HttpServlet, ServletRequest, ServletResponse,. SVTH: Phạm Ngọc Được GVHD: ThS.
Nguyễn Văn Nguyên 15 Xây dựng hệ thống website thi trắc nghiệm tiếng Anh trực tuyến Sơ đồ dưới đây cho thấy vị trí của Servlets trong một Ứng dụng Web. Hình 1: Sơ đồ kiến trúc của Servlet Servlet thực hiện các nhiệm vụ chính sau đây: ● Đọc dữ liệu rõ ràng do khách hàng (trình duyệt) gửi. Điều này bao gồm một mẫu HTML trên một trang Web hoặc nó cũng có thể đến từ một applet hoặc một chương trình khách hàng HTTP tùy chỉnh. ● Đọc dữ liệu yêu cầu HTTP ẩn được gửi bởi khách hàng (trình duyệt).
Điều này bao gồm các cookie, loại phương tiện truyền thông và các chương trình nén mà trình duyệt hiểu được, v. ● Xử lý dữ liệu và tạo ra các kết quả. Quá trình này có thể yêu cầu nói chuyện với một cơ sở dữ liệu, thực hiện một cuộc gọi RMI hoặc CORBA, gọi một dịch vụ Web, hoặc tính trực tiếp phản hồi. ● Gửi dữ liệu rõ ràng (tức là tài liệu) tới khách hàng (trình duyệt).
Tài liệu này có thể được gửi bằng nhiều định dạng, bao gồm văn bản (HTML hoặc XML), nhị phân (hình ảnh GIF), Excel, v. ● Gửi phản hồi HTTP ẩn cho khách hàng (trình duyệt). Điều này bao gồm nói với trình duyệt hoặc các trình khách khác loại tài liệu đang được trả về (ví dụ, HTML), thiết lập cookie và các tham số bộ nhớ đệm, và các tác vụ khác. Các lớp của gói servlet thực hiện các đặc tả Java Servlet và JSP.
Các servlet Java đã được tạo ra và biên dịch giống như các lớp Java khác. Sau khi cài đặt gói servlet và thêm chúng vào Classpath của máy tính, bạn có thể biên dịch các servlet bằng trình dịch Java của JDK hoặc bất kỳ trình biên dịch hiện tại nào khác. SVTH: Phạm Ngọc Được GVHD: ThS. Nguyễn Văn Nguyên 16 Xây dựng hệ thống website thi trắc nghiệm tiếng Anh trực tuyến JSP là viết tắt của JavaServer Pages là một công nghệ để phát triển các trang web động.
JSP giúp các nhà phát triển chèn java code vào các trang HTML bằng cách sử dụng các thẻ JSP đặc biệt. JSP là một kiểu Java servlet được thiết kế để tạo ra giao diện người dùng cho một ứng dụng Java web. Các nhà phát triển web viết các JSP như các tệp văn bản kết hợp mã HTML hoặc XHTML, các phần tử XML, các action và lệnh JSP. Sử dụng JSP, bạn có thể thu thập dữ liệu đầu vào từ người dùng thông qua các Form của trang web, trình bày các bản ghi từ một cơ sở dữ liệu hoặc một nguồn khác, và tạo các trang web động.
Các thẻ JSP có thể được sử dụng cho nhiều mục đích khác nhau, chẳng hạn như truy xuất thông tin từ cơ sở dữ liệu hoặc đăng ký mới, truy cập các thành phần JavaBeans, kiểm soát giữa các trang và chia sẻ thông tin giữa các request, các trang vv. Hình 2: Sơ đồ kiến trúc của jsp 1. Mô hình MVC (Model – View - Controller) Mô hình MVC là một chuẩn mô hình và đóng vai trò quan trọng trong quá trình xây dựng – phát triển – vận hành và bảo trì một hệ thống hay một ứng dụng – phần mềm. Nó tạo ra một mô hình 3 lớp Model – View – Controller (hình 1.2) tách biệt và tương tác nhau, giúp các chuyên gia có thể dễ dàng dựa vào mô hình để trao đổi và xử lý những nghiệp vụ một cách nhanh chóng.
Mô hình MVC có thể áp dụng cho các SVTH: Phạm Ngọc Được GVHD: ThS. Nguyễn Văn Nguyên 17 Xây dựng hệ thống website thi trắc nghiệm tiếng Anh trực tuyến dự án trong môi trường Windows, Linux… và sử dụng bất kỳ ngôn ngữ nào như PHP, ASP, JSP… Hình 3: Mô hình MVC Mô hình MVC được chia làm 3 lớp xử lý gồm Model – View – Controller: - Model: là nơi chứa những nghiệp vụ tương tác với dữ liệu hoặc hệ quản trị cơ sở dữ liệu (mysql, mssql… ); nó sẽ bao gồm các class/function xử lý nhiều nghiệp vụ như kết nối database, truy vấn dữ liệu, thêm – xóa – sửa dữ liệu…; - View: là nơi chứa những giao diện như một nút bấm, khung nhập, menu, hình ảnh… nó đảm nhiệm nhiệm vụ hiển thị dữ liệu và giúp người dùng tương tác với hệ thống ; - Controller: là nơi tiếp nhận những yêu cầu xử lý được gửi từ người dùng, nó sẽ gồm những class/function xử lý nhiều nghiệp vụ logic giúp lấy đúng dữ liệu thông tin cần thiết nhờ các nghiệp vụ lớp Model cung cấp và hiển thị dữ liệu đó ra cho người dùng nhờ lớp View. Tổng quan về Struts Framework Struts framework ban đầu được tạo ra bởi Craig McClanahan và tặng cho Apache Foundation vào tháng 5 năm 2000 và Struts 1.0 đã được phát hành vào tháng 6 năm 2001. Phiên bản ổn định hiện tại của Struts là 2.33 được phát hành vào tháng 7 năm 2017.
SVTH: Phạm Ngọc Được GVHD: ThS. Nguyễn Văn Nguyên 18 Xây dựng hệ thống website thi trắc nghiệm tiếng Anh trực tuyến Struts Framework được xây dựng trên mô hình MVC phân tầng, phân lớp, giúp dễ quản lý và bảo trì. Bên cạnh đó, hỗ trợ nhiều các thể Struts Tag trong file Jsp giúp các lập trình viên làm việc nhanh chóng và hiệu quả hơn khi tạo và phát triển project trên nền tảng này. Struts là một tập hợp các thư viện Java và có thể chia ra làm các nhóm sau: + Framework cơ sở + Thư viện thẻ JSP + Tiles plugin + Validator plugin a.
Framework cơ sở Framework cơ sở cung cấp các tính năng MVC cốt lõi. Nền tảng của framework cơ sở là Controller servlet: ActionServlet. Phần còn lại của framework cơ sở bao gồm các lớp cơ sở mà ứng dụng của bạn sẽ extend và các class tiện ích. Nổi bật nhát trong các lớp cơ sở là lớp Action và lớp ActionForm.
Lớp Action được sử dụng bởi ActionServlet để sử lý các request xác định. Lớp ActionForm được sử dụng để capture dữ liệu từ các HTML form và được sử dụng để chuyển dữ liệu trở lại View để generate response. Thư viện thẻ JSP Struts đưa ra các thư viện thẻ để hỗ trợ việc lập trình View logic trong JSP. Các thư viện thẻ JSP cho phép các JSP author sử dụng các thẻ giống HTML.
+ HTML: Sử dụng để generate các THML form tương tac với Struts API + Bean: Sử dụng để làm việc với các Java bean object trong JSP + Logic: Sử dụng để implement các logic điều kiện đơn giản trong JSP + Nested: Sử dụng để cho phép các mức nested tùy ý c. Tiles plugin Tiles là một JSP template framework giúp thuận tiện cho việc tái sử dụng mã HTML. Validator plugin Validator là một framework với khả năng thực hiện xác nhận tính hợp lệ của dữ liệu ở cả phía server và client. Chu kì sống của một Struts Trước khi đi vào chi tiết các lớp, nghía qua một chút về tiến trình thực hiện của một ứng dụng Web sử dụng Struts cũng có lẽ không thừa.
Trình duyệt tạo một request tới ứng dụng Struts sẽ được xử lý bới ActionServlet (Controller). SVTH: Phạm Ngọc Được GVHD: ThS. Nguyễn Văn Nguyên 19 Xây dựng hệ thống website thi trắc nghiệm tiếng Anh trực tuyến 2. Subclass của Action (Controller) đó sẽ tương tác với model component và chuẩn bị dữ liệu cho để hiển thị.
Sau đó subclass của Action (Controller) đó sẽ chuyển điều khiển tới JSP (View). JSP (View) sử dụng dữ liệu nhận được để generate response về cho trình duyệt. Hình 4: Kiến trúc struts 1 Framework 1. Tổng quan về công nghệ Ajax Ajax là viết tắt của cụm từ "Asynchronous JavaScript And XML".
Ajax không phải là một ngôn ngữ lập trình hay công cụ. Ajax là phương thức trao đổi dữ liệu với máy chủ và cập nhật các phần của trang web - mà không cần tải lại toàn bộ trang. Ajax chính nó là một thuật ngữ chung cho các kỹ thuật JavaScript khác nhau được sử dụng để kết nối với máy chủ web tự động mà không nhất thiết phải tải lại SVTH: Phạm Ngọc Được GVHD: ThS. Nguyễn Văn Nguyên 20 Xây dựng hệ thống website thi trắc nghiệm tiếng Anh trực tuyến trang.
Về mặt kỹ thuật, nó đề cập đến việc sử dụng các đối tượng XmlHttpRequest để tương tác với một máy chủ web động thông qua JavaScript. Hình 5: Sơ đồ hoạt động của Ajax + Gọi một sự kiện (event) trên trang web (trang web được tải xong, click button,. + Một đối tượng XMLHttpRequest được tạo ra bởi JavaScript. + Đối tượng XMLHttpRequest gửi một request tới web server.
+ Server xử lý request. + Server gửi một response trả lại trang web. + Response này được đọc bởi JavaScript. + Cập nhật thay đổi lên trang web (không cần tải lại trang web).
Có 4 lợi ích chính của việc sử dụng Ajax trong các ứng dụng web: ✔ Callbacks: Ajax được sử dụng để thực hiện một cuộc gọi lại, thực hiện việc truy xuất và / hoặc lưu dữ liệu mà không gửi toàn bộ trang trở lại máy chủ. Bằng cách gửi lại một phần trang web đến máy chủ, việc sử dụng mạng được giảm thiểu và các hoạt động diễn ra nhanh hơn. Trong các trang web băng thông hạn chế, điều này có thể cải thiện đáng kể hiệu suất mạng.