1. Transaction management trong ứng dụng Web Java đảm bảo điều gì?
A. Tăng tốc độ truy cập dữ liệu.
B. Tính toàn vẹn dữ liệu bằng cách đảm bảo các thao tác trong một transaction hoặc thành công tất cả, hoặc thất bại tất cả (ACID properties).
C. Bảo mật dữ liệu trong quá trình truyền tải.
D. Quản lý kết nối cơ sở dữ liệu hiệu quả.
2. Cookie trong ứng dụng Web Java được lưu trữ ở đâu?
A. Trên server.
B. Trong bộ nhớ cache của server.
C. Trên trình duyệt của client.
D. Trong cơ sở dữ liệu của ứng dụng.
3. ORM framework (ví dụ: Hibernate) giúp giảm thiểu công việc nào cho lập trình viên khi làm việc với cơ sở dữ liệu?
A. Thiết kế schema cơ sở dữ liệu.
B. Viết các câu lệnh SQL truy vấn và thao tác dữ liệu thủ công.
C. Cấu hình server cơ sở dữ liệu.
D. Sao lưu và phục hồi dữ liệu.
4. Deployment descriptor (web.xml) trong Java Web Application dùng để làm gì?
A. Định nghĩa giao diện người dùng.
B. Cấu hình cơ sở dữ liệu.
C. Cấu hình các thành phần của ứng dụng web như Servlets, Filters, Listeners, và security constraints.
D. Quản lý dependencies của ứng dụng.
5. Dependency Injection Container (ví dụ: Spring Container) quản lý vòng đời (lifecycle) của các bean như thế nào?
A. Container không quản lý vòng đời bean, lập trình viên phải tự quản lý.
B. Container tạo ra, cấu hình, và hủy bỏ các bean, theo cấu hình được định nghĩa.
C. Container chỉ tạo bean khi cần thiết và tự động hủy khi không còn sử dụng.
D. Container chỉ cấu hình bean, việc tạo và hủy do lập trình viên quản lý.
6. JSP (JavaServer Pages) được biên dịch thành loại file nào trước khi thực thi trên server?
A. File HTML tĩnh.
B. File JavaScript.
C. File Servlet Java.
D. File XML.
7. Ưu điểm chính của việc sử dụng framework Spring MVC trong phát triển ứng dụng Web Java so với Servlets/JSP thuần là gì?
A. Tăng hiệu suất xử lý yêu cầu nhanh hơn.
B. Cung cấp kiến trúc MVC rõ ràng, giúp tách biệt logic nghiệp vụ, giao diện người dùng và luồng điều khiển.
C. Giảm độ phức tạp trong cấu hình server.
D. Hỗ trợ tốt hơn cho việc triển khai ứng dụng trên mobile.
8. Load balancing trong kiến trúc ứng dụng web được sử dụng để làm gì?
A. Bảo mật ứng dụng.
B. Tăng hiệu suất cơ sở dữ liệu.
C. Phân phối request đến nhiều server để cải thiện khả năng chịu tải và độ tin cậy.
D. Tối ưu hóa code ứng dụng.
9. Dependency Injection (DI) là một design pattern quan trọng trong Spring Framework. Lợi ích chính của DI là gì?
A. Tăng hiệu suất ứng dụng.
B. Giảm sự phụ thuộc giữa các thành phần, giúp code dễ test và bảo trì hơn.
C. Tự động quản lý bộ nhớ.
D. Đơn giản hóa việc cấu hình cơ sở dữ liệu.
10. Spring Data JPA đơn giản hóa việc nào trong phát triển ứng dụng Web Java?
A. Xây dựng giao diện RESTful API.
B. Thực hiện các thao tác CRUD (Create, Read, Update, Delete) với cơ sở dữ liệu thông qua repository interfaces.
C. Quản lý security cho ứng dụng.
D. Triển khai ứng dụng lên server.
11. Thành phần nào trong Java Web Application chịu trách nhiệm xác thực (authentication) và phân quyền (authorization) người dùng?
A. Servlet Container.
B. JSP Engine.
C. Security Filter hoặc Security Framework (ví dụ: Spring Security).
D. Database Driver.
12. Thành phần nào trong kiến trúc Spring MVC chịu trách nhiệm nhận request từ client, gọi các service xử lý nghiệp vụ và chọn view để trả về response?
A. Model.
B. View.
C. Controller.
D. DispatcherServlet.
13. JAR file và WAR file khác nhau chủ yếu ở điểm nào trong ngữ cảnh Java Web?
A. JAR dùng cho ứng dụng web, WAR dùng cho thư viện.
B. JAR chứa code Java thông thường (libraries, applications), WAR dùng để đóng gói ứng dụng web (Servlets, JSPs, resources).
C. JAR có thể chạy độc lập, WAR cần server ứng dụng để chạy.
D. JAR và WAR chỉ khác nhau về định dạng file nén.
14. Maven hoặc Gradle là công cụ gì trong phát triển ứng dụng Web Java?
A. IDE (Integrated Development Environment).
B. Server ứng dụng.
C. Công cụ quản lý build và dependency (build tools and dependency management).
D. Framework phát triển giao diện người dùng.
15. Session trong ứng dụng Web Java thường được sử dụng để làm gì?
A. Lưu trữ dữ liệu cấu hình ứng dụng.
B. Lưu trữ thông tin trạng thái của người dùng giữa các request.
C. Cache dữ liệu từ cơ sở dữ liệu.
D. Quản lý kết nối cơ sở dữ liệu.
16. AOP (Aspect-Oriented Programming) trong Spring Framework giúp giải quyết vấn đề nào trong phát triển ứng dụng Web?
A. Quản lý giao diện người dùng.
B. Xử lý ngoại lệ.
C. Tách biệt các cross-cutting concerns (ví dụ: logging, security, transaction management) khỏi logic nghiệp vụ chính.
D. Tối ưu hóa hiệu suất cơ sở dữ liệu.
17. CSRF (Cross-Site Request Forgery) là loại tấn công web nào?
A. Tấn công từ chối dịch vụ (DoS).
B. Tấn công SQL Injection.
C. Tấn công giả mạo yêu cầu từ người dùng hợp lệ.
D. Tấn công XSS (Cross-Site Scripting).
18. Annotation `@WebServlet` trong Servlet dùng để làm gì?
A. Định nghĩa một filter cho Servlet.
B. Khai báo một Servlet và ánh xạ nó tới một hoặc nhiều URL patterns.
C. Chỉ định phương thức HTTP mà Servlet sẽ xử lý.
D. Cấu hình session timeout cho Servlet.
19. Thử nghiệm đơn vị (Unit testing) trong phát triển ứng dụng Web Java thường tập trung vào việc kiểm thử thành phần nào?
A. Toàn bộ hệ thống ứng dụng.
B. Giao diện người dùng.
C. Các đơn vị code nhỏ nhất, độc lập (ví dụ: methods, classes).
D. Tích hợp giữa các module khác nhau.
20. Trong ngữ cảnh của RESTful API, thuật ngữ `stateless` có nghĩa là gì?
A. API không lưu trữ dữ liệu.
B. Mỗi request từ client đến server phải chứa đầy đủ thông tin cần thiết để server xử lý, server không lưu trữ trạng thái phiên làm việc giữa các request.
C. API chỉ xử lý dữ liệu tĩnh.
D. API không sử dụng cookies hoặc sessions.
21. Spring Boot Actuator cung cấp tính năng gì cho ứng dụng Web Java?
A. Bảo mật ứng dụng.
B. Quản lý giao dịch cơ sở dữ liệu.
C. Monitoring và quản lý ứng dụng đang chạy (health check, metrics, ...).
D. Triển khai ứng dụng lên cloud.
22. Microservices architecture có ưu điểm chính nào so với kiến trúc monolithic (nguyên khối) trong phát triển ứng dụng Web?
A. Đơn giản hơn trong triển khai và quản lý.
B. Dễ dàng scale (mở rộng) và phát triển độc lập từng service.
C. Hiệu suất ứng dụng cao hơn.
D. Bảo mật tốt hơn.
23. Annotation `@RestController` trong Spring Boot kết hợp chức năng của annotation nào?
A. `@Controller` và `@Service`.
B. `@Controller` và `@Component`.
C. `@Controller` và `@ResponseBody`.
D. `@Controller` và `@RequestMapping`.
24. Cache (bộ nhớ đệm) được sử dụng trong ứng dụng Web Java để làm gì?
A. Bảo mật dữ liệu.
B. Lưu trữ session của người dùng.
C. Lưu trữ tạm thời dữ liệu thường xuyên được truy cập để giảm thời gian truy cập và tải cho server.
D. Quản lý kết nối cơ sở dữ liệu.
25. Logging trong ứng dụng Web Java có vai trò quan trọng nhất là gì?
A. Tăng hiệu suất ứng dụng.
B. Ghi lại thông tin hoạt động của ứng dụng để debug, monitoring và audit.
C. Bảo mật thông tin nhạy cảm.
D. Tối ưu hóa truy vấn cơ sở dữ liệu.
26. JPA (Java Persistence API) cung cấp giải pháp nào cho việc phát triển ứng dụng Web Java?
A. Quản lý phiên làm việc (session management).
B. Xây dựng giao diện người dùng (UI).
C. ORM (Object-Relational Mapping) để tương tác với cơ sở dữ liệu.
D. Bảo mật ứng dụng web.
27. JSON (JavaScript Object Notation) thường được sử dụng làm định dạng dữ liệu chính trong RESTful API vì lý do nào?
A. Hiệu suất xử lý nhanh nhất.
B. Dễ đọc, dễ viết và dễ parse bởi cả người và máy, đặc biệt là JavaScript.
C. Hỗ trợ tốt nhất cho bảo mật.
D. Kích thước file nhỏ nhất so với các định dạng khác.
28. RESTful API thường sử dụng giao thức HTTP cho việc giao tiếp. Phương thức HTTP nào thường được dùng để tạo mới một resource trên server?
A. GET.
B. POST.
C. PUT.
D. DELETE.
29. Trong phát triển ứng dụng Web với Java, Servlet container (ví dụ: Tomcat) chịu trách nhiệm chính cho nhiệm vụ nào sau đây?
A. Quản lý kết nối cơ sở dữ liệu.
B. Thực thi logic nghiệp vụ phức tạp.
C. Cung cấp môi trường runtime cho Servlets và quản lý vòng đời của chúng.
D. Xử lý các yêu cầu từ phía client và trả về phản hồi tĩnh.
30. Hibernate là một implementation phổ biến của chuẩn nào trong phát triển ứng dụng Web Java?
A. Servlet API.
B. JSP.
C. JPA (Java Persistence API).
D. Spring MVC.