1. Cookie và Session khác nhau chủ yếu ở điểm nào?
A. Cookie được lưu ở server, Session lưu ở client.
B. Cookie lưu trữ dữ liệu phía client, Session lưu trữ dữ liệu phía server.
C. Cookie dùng để xác thực, Session dùng để phân quyền.
D. Cookie chỉ dùng cho HTML, Session dùng cho JSP.
2. DispatcherServlet trong Spring MVC xử lý request theo quy trình nào?
A. Controller → View → Model.
B. View → Controller → Model.
C. Request → Handler Mapping → Controller → View Resolver → View.
D. Request → Controller → Interceptor → View.
3. Ưu điểm của kiến trúc microservices so với kiến trúc monolithic trong phát triển ứng dụng web là gì?
A. Dễ dàng phát triển và deploy độc lập các thành phần, khả năng mở rộng tốt hơn.
B. Hiệu năng cao hơn.
C. Bảo mật tốt hơn.
D. Chi phí phát triển thấp hơn.
4. Ưu điểm chính của việc sử dụng Spring Boot so với Spring MVC truyền thống là gì?
A. Hiệu năng cao hơn.
B. Cấu hình đơn giản hơn và phát triển nhanh hơn.
C. Bảo mật tốt hơn.
D. Khả năng mở rộng tốt hơn.
5. Trong phát triển ứng dụng web Java, Servlet container (ví dụ như Tomcat) đóng vai trò chính nào?
A. Biên dịch mã nguồn Java thành bytecode.
B. Quản lý vòng đời của Servlet và xử lý các request từ client.
C. Cung cấp giao diện người dùng cho ứng dụng web.
D. Kết nối ứng dụng web với cơ sở dữ liệu.
6. 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ý session người dùng.
B. Ánh xạ dữ liệu giữa cơ sở dữ liệu quan hệ và các đối tượng Java.
C. Xây dựng giao diện người dùng web.
D. Triển khai ứng dụng web lên server.
7. Thành phần nào của Spring Framework chịu trách nhiệm xử lý request từ người dùng và trả về response trong mô hình MVC?
A. Model.
B. View.
C. Controller.
D. DispatcherServlet.
8. JSP (JavaServer Pages) được biên dịch thành loại nào trước khi thực thi trên server?
A. HTML tĩnh.
B. Servlet.
C. Applet.
D. JavaScript.
9. 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 (ACID properties).
C. Hiệu suất truy vấn cơ sở dữ liệu.
D. Khả năng mở rộng của ứng dụng.
10. Annotation nào trong Spring Framework được sử dụng để đánh dấu một class là Controller?
A. @Component
B. @Service
C. @Repository
D. @Controller
11. CSRF (Cross-Site Request Forgery) là loại tấn công nào trong ứng dụng web?
A. Tấn công từ chối dịch vụ (DoS).
B. Tấn công chèn mã độc SQL (SQL Injection).
C. Tấn công giả mạo request từ người dùng đã xác thực.
D. Tấn công leo thang đặc quyền.
12. Mục đích của việc sử dụng Maven hoặc Gradle trong dự án web Java là gì?
A. Viết code Java.
B. Quản lý build, dependencies và lifecycle của dự án.
C. Deployment ứng dụng.
D. Kiểm thử hiệu năng.
13. Tomcat, Jetty, và Undertow là ví dụ của loại phần mềm nào?
A. Framework phát triển web.
B. Servlet containers∕Web servers.
C. Cơ sở dữ liệu.
D. Công cụ build.
14. Filter trong Servlet API được sử dụng để làm gì?
A. Tạo response cho client.
B. Xử lý request trước khi đến servlet và response trước khi trả về client.
C. Quản lý session.
D. Kết nối cơ sở dữ liệu.
15. Deployment descriptor (web.xml) trong ứng dụng web Java được dùng để làm gì?
A. Định nghĩa giao diện người dùng.
B. Cấu hình deployment và các thành phần web app (servlet, filter, listener).
C. Quản lý dependencies của ứng dụng.
D. Cấu hình cơ sở dữ liệu.
16. JUnit và Mockito thường được sử dụng để làm gì trong phát triển ứng dụng web Java?
A. Triển khai ứng dụng.
B. Kiểm thử (testing) ứng dụng.
C. Quản lý dependencies.
D. Tạo giao diện người dùng.
17. JSON (JavaScript Object Notation) thường được sử dụng làm gì trong giao tiếp giữa client và server trong ứng dụng web?
A. Ngôn ngữ lập trình phía server.
B. Định dạng dữ liệu trao đổi.
C. Ngôn ngữ truy vấn cơ sở dữ liệu.
D. Công cụ quản lý phiên.
18. AOP (Aspect-Oriented Programming) trong Spring Framework được dùng để giải quyết vấn đề gì?
A. Quản lý transaction.
B. Xử lý ngoại lệ.
C. Tách biệt các cross-cutting concerns (ví dụ logging, security) khỏi logic nghiệp vụ chính.
D. Tối ưu hóa hiệu suất cơ sở dữ liệu.
19. Thành phần nào trong Spring Boot giúp tự động cấu hình ứng dụng dựa trên dependencies?
A. Spring MVC.
B. Spring Data JPA.
C. Spring Boot Auto-configuration.
D. Spring Security.
20. Dependency Injection (DI) trong Spring Framework mang lại lợi ích chính nào?
A. Tăng hiệu năng ứng dụng.
B. Giảm sự phụ thuộc giữa các component và dễ dàng test code.
C. Tự động tạo giao diện người dùng.
D. Quản lý kết nối cơ sở dữ liệu hiệu quả hơn.
21. Session trong ứng dụng web Java được sử dụng để làm gì?
A. Lưu trữ dữ liệu trên client.
B. Duy trì trạng thái của người dùng giữa các request.
C. Quản lý kết nối cơ sở dữ liệu.
D. Xác thực người dùng.
22. Listener trong Servlet API được sử dụng để làm gì?
A. Lắng nghe và xử lý các event trong vòng đời ứng dụng web hoặc session.
B. Điều hướng request đến servlet.
C. Xác thực người dùng.
D. Tạo view cho ứng dụng.
23. Mục đích chính của việc sử dụng connection pooling trong ứng dụng web Java là gì?
A. Tăng cường bảo mật kết nối.
B. Tái sử dụng kết nối cơ sở dữ liệu để giảm overhead tạo∕đóng kết nối.
C. Đơn giản hóa cấu hình kết nối.
D. Phân tải kết nối đến nhiều server CSDL.
24. Annotation `@RestController` trong Spring MVC kết hợp chức năng của annotation nào?
A. @Controller và @Component.
B. @Controller và @ResponseBody.
C. @Controller và @Service.
D. @Controller và @RequestMapping.
25. RESTful web service thường sử dụng giao thức HTTP nào cho hoạt động lấy dữ liệu?
A. POST.
B. PUT.
C. GET.
D. DELETE.
26. JPA (Java Persistence API) là gì?
A. Một ORM framework cụ thể.
B. Một đặc tả kỹ thuật (specification) cho ORM trong Java.
C. Một loại Servlet container.
D. Một thư viện JavaScript.
27. Thành phần nào của Spring Security chịu trách nhiệm phân quyền (authorization) truy cập tài nguyên?
A. Authorization Manager.
B. Authentication Manager.
C. Security Context.
D. PasswordEncoder.
28. Thành phần nào của Spring Security chịu trách nhiệm xác thực (authentication) người dùng?
A. Authorization Manager.
B. Authentication Manager.
C. Security Context.
D. PasswordEncoder.
29. WAR file (Web Application Archive) được sử dụng để làm gì?
A. Chứa mã nguồn Java.
B. Đóng gói ứng dụng web Java để deployment lên servlet container.
C. Cấu hình cơ sở dữ liệu.
D. Tạo giao diện người dùng.
30. Biện pháp nào sau đây giúp phòng chống tấn công XSS (Cross-Site Scripting) hiệu quả?
A. Sử dụng HTTPS.
B. Mã hóa dữ liệu trên server.
C. Validate và encode dữ liệu đầu vào và đầu ra.
D. Giới hạn truy cập cơ sở dữ liệu.