1. Transaction management trong ứng dụng web Java đảm bảo điều gì?
A. Bảo mật dữ liệu
B. Tính toàn vẹn dữ liệu, đảm bảo các thao tác cơ sở dữ liệu (CRUD) hoặc thành công tất cả, hoặc thất bại và rollback về trạng thái ban đầu (ACID properties)
C. Hiệu suất truy vấn cơ sở dữ liệu
D. Khả năng mở rộng ứng dụng
2. Công nghệ nào của Java được sử dụng để tạo ra các trang web động, nơi mã Java được nhúng trực tiếp vào trang HTML?
A. Servlet
B. JSP (JavaServer Pages)
C. JDBC
D. RMI
3. Annotation `@Controller` trong Spring MVC được sử dụng để đánh dấu class nào?
A. Class chứa logic nghiệp vụ (Model)
B. Class đại diện cho giao diện người dùng (View)
C. Class xử lý request và điều hướng (Controller)
D. Class cấu hình ứng dụng
4. Thành phần nào trong Spring MVC chịu trách nhiệm ánh xạ URL request đến phương thức xử lý controller phù hợp?
A. View Resolver
B. Handler Mapping
C. DispatcherServlet
D. Controller
5. RESTful API là gì?
A. Một loại cơ sở dữ liệu NoSQL
B. Một kiến trúc thiết kế API cho ứng dụng web, tuân theo các nguyên tắc như stateless, resource-based
C. Một framework phát triển giao diện người dùng
D. Một công nghệ bảo mật web
6. Load balancing trong kiến trúc ứng dụng web Java để làm gì?
A. Bảo mật ứng dụng
B. Phân phối tải (traffic) đến nhiều server để tăng khả năng chịu tải và độ tin cậy
C. Tối ưu hóa cơ sở dữ liệu
D. Quản lý phiên người dùng
7. Microservices architecture là gì và khác biệt so với monolithic architecture như thế nào?
A. Microservices là kiến trúc mà ứng dụng được xây dựng thành các service nhỏ, độc lập, giao tiếp qua API, khác với monolithic là ứng dụng lớn, liền khối
B. Microservices là một loại cơ sở dữ liệu NoSQL
C. Microservices là một framework giao diện người dùng
D. Microservices chỉ dùng cho ứng dụng nhỏ, monolithic cho ứng dụng lớn
8. Session trong ứng dụng web Java được sử dụng để làm gì?
A. Lưu trữ dữ liệu tạm thời trên server cho mỗi người dùng
B. Xác thực người dùng
C. Tối ưu hóa hiệu suất truy vấn cơ sở dữ liệu
D. Quản lý kết nối cơ sở dữ liệu
9. JSON (JavaScript Object Notation) thường được sử dụng trong ứng dụng web Java để làm gì?
A. Định nghĩa cấu trúc giao diện người dùng
B. Trao đổi dữ liệu giữa server và client (ví dụ: trong AJAX)
C. Lưu trữ cấu hình ứng dụng
D. Mô tả cơ sở dữ liệu
10. AOP (Aspect-Oriented Programming) trong Spring Framework dùng để giải quyết vấn đề gì?
A. Quản lý transaction cơ sở dữ liệu
B. Xử lý các cross-cutting concerns (ví dụ: logging, security) một cách module hóa, tách biệt khỏi logic nghiệp vụ chính
C. Tối ưu hóa hiệu suất ứng dụng
D. Xây dựng giao diện người dùng
11. Servlet container (ví dụ: Tomcat, Jetty) có vai trò chính là gì trong kiến trúc ứng dụng web Java?
A. Quản lý cơ sở dữ liệu
B. Cung cấp giao diện người dùng
C. Quản lý vòng đời Servlet và cung cấp môi trường runtime cho Servlet
D. Xử lý các yêu cầu HTTP tĩnh (HTML, CSS, JS)
12. Cookie trong ứng dụng web Java được lưu trữ ở đâu?
A. Trên server
B. Trên client (trình duyệt web)
C. Trong cơ sở dữ liệu
D. Trong bộ nhớ cache của server
13. Công nghệ nào của Java giúp tạo ra các ứng dụng web real-time, cho phép giao tiếp hai chiều giữa server và client?
A. Servlet
B. JSP
C. WebSocket
D. JDBC
14. Sự khác biệt chính giữa `RequestDispatcher.forward()` và `RequestDispatcher.include()` trong Servlet là gì?
A. `forward()` chuyển request hoàn toàn sang servlet khác, còn `include()` chỉ nhúng output của servlet khác vào response hiện tại
B. `forward()` dùng cho GET request, `include()` dùng cho POST request
C. `forward()` nhanh hơn `include()`
D. `include()` bảo mật hơn `forward()`
15. Unit testing trong phát triển ứng dụng web Java nhằm mục đích gì?
A. Kiểm tra hiệu năng ứng dụng
B. Kiểm tra tính bảo mật
C. Kiểm tra từng module∕component nhỏ (unit) của ứng dụng để đảm bảo chúng hoạt động đúng như mong đợi
D. Kiểm tra tích hợp giữa các module
16. View Resolver trong Spring MVC có vai trò gì?
A. Xử lý logic nghiệp vụ
B. Ánh xạ URL đến controller
C. Tìm kiếm và trả về View (ví dụ: JSP, Thymeleaf template) dựa trên tên logic được controller trả về
D. Xác thực người dùng
17. ORM (Object-Relational Mapping) framework như Hibernate giải quyết vấn đề gì trong phát triển ứng dụng web Java?
A. Quản lý phiên người dùng
B. Ánh xạ giữa đối tượng Java và bảng cơ sở dữ liệu, giúp thao tác dữ liệu dễ dàng hơn
C. Xây dựng giao diện người dùng động
D. Bảo mật ứng dụng web
18. Trong mô hình MVC (Model-View-Controller), thành phần nào chịu trách nhiệm xử lý logic nghiệp vụ và tương tác với cơ sở dữ liệu?
A. View
B. Controller
C. Model
D. DispatcherServlet
19. Ưu điểm chính của việc sử dụng framework như Spring Boot trong phát triển ứng dụng web Java là gì?
A. Tăng cường bảo mật
B. Đơn giản hóa cấu hình, tự động cấu hình nhiều thứ, giảm boilerplate code, dễ dàng tạo ứng dụng standalone
C. Tối ưu hóa hiệu suất cơ sở dữ liệu
D. Tự động tạo giao diện người dùng
20. Cơ chế bảo mật nào thường được sử dụng để xác thực người dùng trong ứng dụng web Java, đảm bảo chỉ người dùng hợp lệ mới được truy cập?
A. Mã hóa dữ liệu
B. Xác thực bằng username∕password, OAuth 2.0, JWT (JSON Web Token)
C. Firewall
D. HTTPS
21. Trong JSP, đối tượng ngầm định `request` thuộc lớp nào?
A. HttpServletResponse
B. HttpSession
C. ServletContext
D. HttpServletRequest
22. 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 giả mạo yêu cầu, lợi dụng phiên đăng nhập của người dùng để thực hiện hành động trái phép
C. Tấn công SQL Injection
D. Tấn công XSS (Cross-Site Scripting)
23. Containerization (ví dụ: Docker) có lợi ích gì trong việc triển khai ứng dụng web Java?
A. Tăng cường bảo mật
B. Đóng gói ứng dụng và môi trường runtime vào container, đảm bảo tính nhất quán giữa các môi trường (dev, test, prod), dễ dàng scale và quản lý
C. Tối ưu hóa cơ sở dữ liệu
D. Giảm chi phí license Java
24. Framework Spring MVC giúp đơn giản hóa việc phát triển ứng dụng web Java bằng cách nào?
A. Tự động tạo giao diện người dùng
B. Cung cấp cấu trúc MVC rõ ràng và tích hợp nhiều tính năng như Dependency Injection, AOP
C. Thay thế hoàn toàn Servlet và JSP
D. Tối ưu hóa hiệu suất server
25. Thư viện∕framework nào thường được sử dụng để xây dựng RESTful API trong Java?
A. JDBC
B. JSP
C. Spring WebFlux
D. Spring MVC (với `@RestController`, `@RequestMapping` annotations), JAX-RS (Jersey, RESTEasy)
26. Trong Servlet, phương thức nào được gọi đầu tiên và chỉ một lần duy nhất khi Servlet được khởi tạo?
A. service()
B. init()
C. doGet()
D. destroy()
27. Dependency Injection (DI) là gì và lợi ích của nó trong Spring Framework?
A. Một kỹ thuật tối ưu hóa hiệu suất cơ sở dữ liệu
B. Một pattern thiết kế giúp giảm sự phụ thuộc giữa các component, tăng tính module hóa và khả năng test
C. Một phương pháp bảo mật ứng dụng
D. Một công cụ quản lý phiên người dùng
28. Caching (ví dụ: sử dụng Redis, Memcached) được dùng để cải thiện hiệu suất ứng dụng web Java như thế nào?
A. Tăng cường bảo mật
B. Lưu trữ dữ liệu thường xuyên truy cập trong bộ nhớ nhanh (cache) để giảm thời gian truy xuất, giảm tải cho cơ sở dữ liệu
C. Quản lý session tốt hơn
D. Đơn giản hóa cấu hình
29. Filter trong Servlet có vai trò gì?
A. Tạo giao diện người dùng
B. Xử lý request và response trước hoặc sau khi Servlet xử lý, ví dụ: logging, authentication, encoding
C. Quản lý session
D. Kết nối cơ sở dữ liệu
30. Deployment descriptor (web.xml) trong ứng dụng web Java dùng để làm gì (mặc dù hiện nay ít sử dụng hơn)?
A. Định nghĩa giao diện người dùng
B. Cấu hình ứng dụng web, ví dụ: mapping servlet, filter, listener, security constraints
C. Quản lý cơ sở dữ liệu
D. Tối ưu hóa hiệu suất