1. Annotation `@WebServlet` trong Servlet Java được sử dụng để làm gì?
A. Định nghĩa cấu hình kết nối cơ sở dữ liệu.
B. Khai báo Servlet và ánh xạ URL đến Servlet đó.
C. Chỉ định phương thức HTTP mà Servlet xử lý (GET, POST,…).
D. Xác định vai trò bảo mật cho Servlet.
2. Thực thể (Entity) trong JPA là gì?
A. Một class Java đại diện cho một bảng trong cơ sở dữ liệu.
B. Một component trong Spring MVC.
C. Một loại Servlet đặc biệt.
D. Một đối tượng Session trong ứng dụng web.
3. Containerization (ví dụ Docker) và Kubernetes được sử dụng để làm gì trong triển khai ứng dụng web Java?
A. Phát triển giao diện người dùng.
B. Containerization đóng gói ứng dụng và dependencies vào container, đảm bảo tính nhất quán môi trường; Kubernetes là nền tảng orchestration container, quản lý việc triển khai, scale, và vận hành containerized applications.
C. Quản lý cơ sở dữ liệu.
D. Kiểm thử ứng dụng.
4. Cookie và Session khác nhau cơ bản ở điểm nào?
A. Cookie được lưu ở server, Session được lưu ở client.
B. Cookie lưu trữ dữ liệu ở client-side, Session lưu trữ dữ liệu ở server-side.
C. Cookie dùng cho bảo mật, Session dùng cho quản lý trạng thái.
D. Cookie chỉ dùng cho ứng dụng tĩnh, Session dùng cho ứng dụng động.
5. Phương thức HTTP POST thường được sử dụng cho mục đích gì trong RESTful API?
A. Lấy thông tin tài nguyên từ server.
B. Tạo mới một tài nguyên trên server.
C. Cập nhật một tài nguyên hiện có trên server.
D. Xóa một tài nguyên trên server.
6. Trong ngữ cảnh 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 điều gì?
A. Quản lý vòng đời của Servlet và cung cấp môi trường thực thi cho Servlet.
B. Biên dịch mã nguồn Java thành bytecode.
C. Quản lý kết nối cơ sở dữ liệu cho ứng dụng Web.
D. Cung cấp giao diện người dùng đồ họa cho ứng dụng Web.
7. JUnit và Mockito là gì và chúng được sử dụng cho mục đích gì trong phát triển ứng dụng web Java?
A. Công cụ để deploy ứng dụng.
B. Framework để viết unit test (JUnit) và framework mocking (Mockito) giúp kiểm thử độc lập các thành phần của ứng dụng.
C. Công cụ quản lý cơ sở dữ liệu.
D. Framework phát triển giao diện người dùng.
8. Serverless computing (ví dụ AWS Lambda, Google Cloud Functions) là gì và nó khác biệt như thế nào so với server-based architecture?
A. Serverless là một loại server nhanh hơn.
B. Serverless cho phép chạy code mà không cần quản lý server, nhà cung cấp cloud quản lý server; khác với server-based architecture, người dùng phải quản lý server.
C. Serverless chỉ dành cho ứng dụng nhỏ.
D. Serverless không hỗ trợ Java.
9. JPA (Java Persistence API) là gì?
A. Một framework phát triển giao diện người dùng web.
B. Một đặc tả kỹ thuật (specification) chuẩn cho việc quản lý dữ liệu bền vững (persistence) trong Java, định nghĩa cách các ORM framework hoạt động.
C. Một công cụ kiểm thử ứng dụng web.
D. Một server ứng dụng Java.
10. Microservices architecture là gì và ưu điểm chính của nó so với monolithic architecture trong phát triển ứng dụng web?
A. Một loại ngôn ngữ lập trình.
B. Kiến trúc chia ứng dụng thành các service nhỏ, độc lập, dễ phát triển, triển khai, scale và bảo trì hơn so với monolithic architecture (ứng dụng nguyên khối).
C. Một phương pháp bảo mật ứng dụng.
D. Một công cụ quản lý code.
11. Cross-Origin Resource Sharing (CORS) là gì và tại sao nó quan trọng trong phát triển web?
A. Một phương pháp tối ưu hiệu suất web.
B. Một cơ chế bảo mật trình duyệt web cho phép hoặc từ chối các request HTTP cross-origin (từ domain khác domain của trang web hiện tại), quan trọng để kiểm soát việc truy cập tài nguyên giữa các domain và bảo vệ ứng dụng.
C. Một framework phát triển REST API.
D. Một chuẩn mã hóa dữ liệu trên web.
12. Validator trong Spring MVC được sử dụng để làm gì?
A. Tăng hiệu suất ứng dụng.
B. Xác thực dữ liệu đầu vào từ người dùng trước khi xử lý, đảm bảo tính hợp lệ của dữ liệu.
C. Mã hóa dữ liệu.
D. Quản lý phiên làm việc người dùng.
13. WAR file (Web Application Archive) là gì và nó được sử dụng để làm gì?
A. Một loại file cấu hình server.
B. Một dạng file archive (ZIP) chứa toàn bộ ứng dụng web Java (code, resources, libraries), dùng để deploy lên application server.
C. Một file chứa dữ liệu cơ sở dữ liệu.
D. Một file chứa code JavaScript client-side.
14. Cơ chế Session trong ứng dụng web Java được sử dụng để làm gì?
A. Lưu trữ dữ liệu phía client.
B. Duy trì trạng thái của người dùng giữa các request trên server.
C. Tăng tốc độ xử lý request.
D. Bảo vệ ứng dụng khỏi tấn công XSS.
15. Thành phần DispatcherServlet trong Spring MVC đóng vai trò gì?
A. Xử lý logic nghiệp vụ.
B. Định nghĩa giao diện người dùng.
C. Là front controller, nhận tất cả request đến ứng dụng và điều phối chúng đến các handler thích hợp.
D. Quản lý kết nối cơ sở dữ liệu.
16. Trong bảo mật ứng dụng web Java, CSRF (Cross-Site Request Forgery) là loại tấn công nào?
A. Tấn công từ chối dịch vụ (Denial of Service).
B. Tấn công chèn mã độc SQL (SQL Injection).
C. 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 không mong muốn trên server.
D. Tấn công leo thang đặc quyền (Privilege Escalation).
17. Trong Spring MVC, 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 tầng dữ liệu?
A. View.
B. Controller.
C. DispatcherServlet.
D. Model.
18. Ưu điểm chính của việc sử dụng framework Spring MVC so với Servlet∕JSP thuần là gì?
A. Tăng hiệu suất xử lý yêu cầu.
B. Đơn giản hóa việc phát triển ứng dụng web phức tạp nhờ cấu trúc rõ ràng và các tính năng hỗ trợ.
C. Tự động triển khai ứng dụng lên server.
D. Hỗ trợ đa ngôn ngữ lập trình hơn.
19. AOP (Aspect-Oriented Programming) trong Spring giúp giải quyết vấn đề gì?
A. Quản lý giao diện người dùng.
B. Tách biệt các cross-cutting concerns (như logging, transaction management, security) khỏi logic nghiệp vụ cốt lõi, tăng tính module hóa.
C. Tối ưu hóa truy vấn cơ sở dữ liệu.
D. Xử lý lỗi trong ứng dụng.
20. RESTful API là gì và tại sao nó trở nên phổ biến trong phát triển ứng dụng web hiện đại?
A. Một loại giao diện người dùng đồ họa.
B. Một kiến trúc thiết kế API dựa trên các nguyên tắc của REST, sử dụng HTTP methods để thực hiện các hoạt động CRUD trên tài nguyên, phổ biến vì tính đơn giản, khả năng mở rộng và tương thích tốt với nhiều client.
C. Một framework phát triển ứng dụng web.
D. Một giao thức bảo mật cho ứng dụng web.
21. JSON (JavaScript Object Notation) thường được sử dụng trong RESTful API để 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 do tính đơn giản và dễ đọc của nó.
C. Viết logic nghiệp vụ server-side.
D. Thiết kế giao diện người dùng web.
22. Maven hoặc Gradle được sử dụng để làm gì trong dự án Java web?
A. Viết code Java.
B. Quản lý build, dependencies, và lifecycle của dự án.
C. Thiết kế giao diện người dùng.
D. Quản lý cơ sở dữ liệu.
23. 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 hiệu suất ứng dụng.
B. Một pattern thiết kế cho phé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 web.
D. Một công cụ quản lý phiên bản code.
24. ORM (Object-Relational Mapping) framework như Hibernate giúp giải quyết vấn đề gì trong phát triển ứng dụng web Java?
A. Quản lý phiên làm việc người dùng.
B. Ánh xạ giữa đối tượng Java và bảng dữ liệu quan hệ, giảm thiểu code JDBC.
C. Xử lý đồng thời nhiều yêu cầu từ người dùng.
D. Tăng tốc độ tải trang web.
25. Spring Boot khác biệt so với Spring Framework truyền thống ở điểm chính nào?
A. Spring Boot nhanh hơn Spring Framework về hiệu suất.
B. Spring Boot cung cấp khả năng auto-configuration và embedded server, giúp đơn giản hóa việc cấu hình và triển khai ứng dụng Spring.
C. Spring Boot hỗ trợ nhiều ngôn ngữ lập trình hơn.
D. Spring Boot bảo mật hơn Spring Framework.
26. Load balancing trong kiến trúc ứng dụng web Java là gì và tại sao nó cần thiết?
A. Một kỹ thuật nén dữ liệu để tăng tốc độ tải trang.
B. Phân phối request từ người dùng đến nhiều server để chia tải, tăng khả năng chịu tải và độ tin cậy của ứng dụng.
C. Một phương pháp bảo mật cơ sở dữ liệu.
D. Một kỹ thuật tối ưu code Java.
27. Embedded server trong Spring Boot là gì và lợi ích của nó là gì?
A. Một server ứng dụng chạy trên client.
B. Một server ứng dụng (ví dụ Tomcat, Jetty, Undertow) được đóng gói trực tiếp vào ứng dụng Spring Boot, giúp đơn giản hóa việc triển khai (deployment) vì không cần cài đặt server riêng.
C. Một server ảo để test ứng dụng.
D. Một server để lưu trữ dữ liệu tĩnh của ứng dụng.
28. Cache (bộ nhớ đệm) được sử dụng để làm gì trong ứng dụng web Java và các loại cache phổ biến là gì?
A. Quản lý session người dùng.
B. 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, các loại phổ biến: browser cache, server-side cache (ví dụ: Redis, Memcached).
C. Bảo vệ ứng dụng khỏi tấn công DDOS.
D. Kiểm thử hiệu năng ứng dụng.
29. JSP (JavaServer Pages) được biên dịch thành gì trước khi thực thi trên server?
A. Applet Java.
B. Servlet.
C. Ứng dụng Web tĩnh (HTML, CSS, JavaScript).
D. Enterprise JavaBean (EJB).
30. Annotation `@Controller` và `@RestController` trong Spring MVC khác nhau như thế nào?
A. `@Controller` dùng cho REST API, `@RestController` dùng cho web page truyền thống.
B. `@Controller` dùng cho web page truyền thống và cần `@ResponseBody` để trả về dữ liệu; `@RestController` là dạng đặc biệt của `@Controller` kết hợp `@ResponseBody`, thường dùng cho REST API.
C. Không có sự khác biệt, chúng có thể thay thế cho nhau.
D. `@Controller` dùng cho ứng dụng client-side, `@RestController` dùng cho server-side.