1. HTTPS được sử dụng để làm gì trong ứng dụng web?
A. Tăng tốc độ truyền dữ liệu.
B. Mã hóa dữ liệu truyền giữa client và server để bảo mật.
C. Tối ưu hóa code JavaScript.
D. Quản lý session người dùng.
2. JPA (Java Persistence API) là gì?
A. Một ORM framework cụ thể như Hibernate.
B. Một specification định nghĩa chuẩn cho ORM trong Java.
C. Một thư viện để xây dựng RESTful APIs.
D. Một công cụ để quản lý dependencies trong Java projects.
3. SQL Injection attack là gì và cách phòng tránh nó trong ứng dụng web Java?
A. Tấn công vào hệ thống mạng.
B. Tấn công bằng cách chèn SQL code độc hại vào input để thao tác cơ sở dữ liệu.
C. Tấn công vào server web.
D. Tấn công vào session người dùng.
4. Dependency Injection (DI) là gì và lợi ích chính của nó trong Spring Framework là gì?
A. Một kỹ thuật để tối ưu hóa hiệu suất cơ sở dữ liệu.
B. Một design pattern giúp giảm sự phụ thuộc giữa các components và tăng tính modularity.
C. Một phương pháp để quản lý session trong ứng dụng web.
D. Một công cụ để tự động generate code Java.
5. Embedded server (ví dụ: Tomcat embedded) trong Spring Boot có nghĩa là gì?
A. Server được chạy trên cloud.
B. Server được đóng gói trực tiếp vào JAR file của ứng dụng.
C. Server chỉ dùng cho môi trường development.
D. Server được cài đặt riêng biệt và ứng dụng kết nối đến.
6. ORM (Object-Relational Mapping) framework như Hibernate giúp ích gì trong phát triển ứng dụng web Java?
A. Tăng tốc độ xử lý HTTP requests.
B. Giảm thiểu code boilerplate khi làm việc với cơ sở dữ liệu quan hệ.
C. Cung cấp cơ chế bảo mật dữ liệu.
D. Tự động scale ứng dụng web.
7. Annotation `@WebServlet` trong Servlet Java được sử dụng để làm gì?
A. Khai báo một biến instance trong Servlet.
B. Ánh xạ URL pattern đến một Servlet cụ thể.
C. Định nghĩa cấu hình kết nối cơ sở dữ liệu.
D. Xác định lifecycle methods của Servlet.
8. IoC Container (Inversion of Control Container) trong Spring Framework có vai trò gì?
A. Quản lý kết nối cơ sở dữ liệu.
B. Khởi tạo, cấu hình và quản lý lifecycle của các Spring beans.
C. Xử lý HTTP requests và responses.
D. Định nghĩa routing cho ứng dụng web.
9. JSP (JavaServer Pages) được biên dịch thành dạng nào trước khi thực thi trên server?
A. Bytecode Java của Servlet.
B. Mã máy (machine code) trực tiếp.
C. Mã nguồn HTML thuần túy.
D. Ngôn ngữ kịch bản phía client (JavaScript).
10. Load balancing trong kiến trúc ứng dụng web có vai trò gì?
A. Tăng tốc độ truy cập cơ sở dữ liệu.
B. Phân phối traffic đến nhiều server để tăng khả năng chịu tải và độ tin cậy.
C. Bảo vệ ứng dụng khỏi tấn công DDoS.
D. Tối ưu hóa code ứng dụng.
11. Mục đích chính của `web.xml` (Deployment Descriptor) trong ứng dụng web Java là gì?
A. Định nghĩa cấu trúc cơ sở dữ liệu cho ứng dụng.
B. Cấu hình deployment và các thành phần của ứng dụng web.
C. Chứa mã nguồn Java của ứng dụng.
D. Quản lý thư viện và dependencies của ứng dụng.
12. Annotation `@Controller`, `@Service`, `@Repository` trong Spring Framework dùng để làm gì?
A. Định nghĩa các phương thức xử lý HTTP requests.
B. Đánh dấu vai trò và trách nhiệm của các class trong kiến trúc ứng dụng.
C. Cấu hình kết nối cơ sở dữ liệu.
D. Xác định các dependency cần inject.
13. Spring Boot framework giúp đơn giản hóa quá trình phát triển ứng dụng web Java như thế nào?
A. Thay thế hoàn toàn Spring MVC và JPA.
B. Cung cấp auto-configuration, embedded servers, và giảm thiểu cấu hình boilerplate.
C. Tăng cường bảo mật cho ứng dụng web.
D. Tối ưu hóa hiệu suất cơ sở dữ liệu.
14. Trong ngữ cảnh phát triển ứng dụng web Java, Servlet container (ví dụ: Tomcat, Jetty) chịu trách nhiệm chính nào?
A. Quản lý cơ sở dữ liệu của ứng dụng.
B. Cung cấp môi trường runtime cho các Servlet và JSP.
C. Xử lý logic nghiệp vụ phức tạp của ứng dụng.
D. Định nghĩa giao diện người dùng (UI) cho ứng dụng.
15. Filter trong Servlet API được sử dụng để làm gì?
A. Thay thế Servlet để xử lý request.
B. Chặn và tiền∕hậu xử lý requests và responses.
C. Tạo ra session mới cho mỗi request.
D. Quản lý vòng đời của Servlet.
16. JSON (JavaScript Object Notation) được sử dụng phổ biến trong RESTful APIs để làm gì?
A. Định nghĩa cấu trúc cơ sở dữ liệu.
B. Trao đổi dữ liệu giữa client và server.
C. Viết logic nghiệp vụ phía server.
D. Tạo giao diện người dùng web.
17. Spring MVC (Model-View-Controller) framework giúp giải quyết vấn đề gì trong phát triển ứng dụng web Java?
A. Quản lý transactions cơ sở dữ liệu.
B. Cung cấp cấu trúc rõ ràng để xây dựng ứng dụng web theo pattern MVC.
C. Xử lý bảo mật cho ứng dụng web.
D. Tối ưu hóa hiệu suất ứng dụng web.
18. CSRF (Cross-Site Request Forgery) attack là gì và cách phòng tránh nó trong ứng dụng web Java?
A. Tấn công từ chối dịch vụ (DoS).
B. Tấn công giả mạo request từ người dùng đã xác thực.
C. Tấn công SQL injection.
D. Tấn công XSS (Cross-Site Scripting).
19. Annotation `@RestController` trong Spring MVC khác gì so với `@Controller`?
A. `@RestController` chỉ dùng cho RESTful APIs, `@Controller` cho web pages.
B. `@RestController` kết hợp `@Controller` và `@ResponseBody`, tự động serialize response body.
C. `@RestController` nhanh hơn `@Controller` về hiệu suất.
D. `@RestController` bảo mật hơn `@Controller`.
20. Docker containerization có lợi ích gì trong deployment ứng dụng web Java?
A. Tăng tốc độ code ứng dụng.
B. Đảm bảo môi trường deployment nhất quán và dễ dàng tái sản xuất.
C. Tự động tối ưu hóa cơ sở dữ liệu.
D. Thay thế hoàn toàn web server.
21. Listener trong Servlet API được sử dụng cho mục đích nào?
A. Lắng nghe và xử lý các sự kiện HTTP request∕response.
B. Lắng nghe và xử lý các sự kiện lifecycle của Servlet container và ứng dụng web.
C. Lắng nghe các sự kiện từ cơ sở dữ liệu.
D. Lắng nghe các sự kiện từ client-side JavaScript.
22. Ưu điểm chính của việc sử dụng JSP so với Servlet thuần túy trong việc tạo giao diện người dùng web là gì?
A. JSP nhanh hơn Servlet trong xử lý logic nghiệp vụ.
B. JSP cho phép tách biệt rõ ràng giữa presentation và logic.
C. JSP có khả năng bảo mật tốt hơn Servlet.
D. JSP hỗ trợ đa luồng tốt hơn Servlet.
23. JSTL (JSP Standard Tag Library) cung cấp các taglibs nào cho JSP?
A. Chỉ các taglibs để truy cập cơ sở dữ liệu.
B. Các taglibs chuẩn cho core operations, XML, i18n, SQL, functions.
C. Chỉ các taglibs để xử lý form và validation.
D. Các taglibs tùy chỉnh do nhà phát triển tự định nghĩa.
24. CDN (Content Delivery Network) giúp cải thiện hiệu suất ứng dụng web như thế nào?
A. Tăng tốc độ xử lý logic nghiệp vụ phía server.
B. Cache nội dung tĩnh (images, CSS, JavaScript) ở nhiều vị trí địa lý gần người dùng.
C. Tối ưu hóa truy vấn cơ sở dữ liệu.
D. Bảo vệ ứng dụng khỏi SQL injection attacks.
25. XSS (Cross-Site Scripting) attack là gì và cách phòng tránh nó trong ứng dụng web Java?
A. Tấn công bằng cách inject malicious scripts vào website hiển thị ở browser người dùng.
B. Tấn công vào cơ sở dữ liệu.
C. Tấn công vào server application.
D. Tấn công bằng cách giả mạo DNS.
26. EL (Expression Language) trong JSP được dùng để làm gì?
A. Viết logic nghiệp vụ phức tạp trong JSP.
B. Truy cập và hiển thị dữ liệu từ các Java beans.
C. Định nghĩa các sự kiện và xử lý chúng phía server.
D. Tạo và quản lý session trong JSP.
27. RESTful API là gì và đặc điểm chính của nó là gì?
A. Một giao thức bảo mật cho truyền dữ liệu.
B. Một kiến trúc thiết kế cho web services, tập trung vào resources và HTTP methods.
C. Một loại cơ sở dữ liệu NoSQL.
D. Một framework phát triển ứng dụng web front-end.
28. Phương thức `doGet()` và `doPost()` trong Servlet được gọi khi nào?
A. Khi Servlet được khởi tạo và hủy bỏ.
B. Khi server khởi động và tắt.
C. Khi client gửi HTTP GET và POST requests tương ứng.
D. Khi có lỗi xảy ra trong quá trình xử lý request.
29. Session trong ứng dụng web Java được sử dụng để làm gì?
A. Lưu trữ dữ liệu của ứng dụng trên server database.
B. Duy trì trạng thái và thông tin người dùng giữa các requests.
C. Xác thực người dùng và quản lý quyền truy cập.
D. Tối ưu hóa hiệu suất truy vấn cơ sở dữ liệu.
30. Ưu điểm chính của microservices architecture so với monolithic architecture trong phát triển ứng dụng web là gì?
A. Microservices luôn nhanh hơn monolithic về hiệu suất.
B. Microservices dễ dàng scale, deploy và maintain độc lập hơn.
C. Microservices ít tốn chi phí phát triển hơn.
D. Microservices bảo mật hơn monolithic.