1. Docker và Kubernetes thường được sử dụng để làm gì trong triển khai ứng dụng microservices?
A. Phát triển giao diện người dùng (UI).
B. Quản lý cơ sở dữ liệu.
C. Containerization và orchestration các microservices, giúp đóng gói, triển khai, scale và quản lý các dịch vụ một cách hiệu quả.
D. Kiểm thử hiệu năng ứng dụng.
2. EL (Expression Language) trong JSP dùng để làm gì?
A. Viết mã Java phức tạp trong JSP.
B. Truy cập và hiển thị dữ liệu từ các đối tượng Java một cách đơn giản trong JSP.
C. Xử lý sự kiện trên trang JSP.
D. Định nghĩa các hàm tùy chỉnh trong JSP.
3. JSON (JavaScript Object Notation) thường được sử dụng để làm gì trong phát triển RESTful API?
A. Định nghĩa cấu trúc cơ sở dữ liệu.
B. Làm ngôn ngữ lập trình phía server.
C. Định dạng dữ liệu để trao đổi giữa client và server trong các API.
D. Thiết kế giao diện người dùng (UI).
4. Trong mô hình MVC (Model-View-Controller) được sử dụng phổ biến trong phát triển ứng dụng web Java, thành phần nào chịu trách nhiệm xử lý logic nghiệp vụ và thao tác dữ liệu?
A. View
B. Controller
C. Model
D. DispatcherServlet
5. Thư viện JSTL (JavaServer Pages Standard Tag Library) cung cấp điều gì cho JSP?
A. Khả năng nhúng mã Java trực tiếp vào trang JSP.
B. Các thẻ tùy chỉnh để thực hiện các tác vụ phổ biến như lặp, điều kiện, định dạng dữ liệu.
C. Cơ chế quản lý session và cookie.
D. Hỗ trợ kết nối cơ sở dữ liệu trực tiếp từ JSP.
6. Phương thức `doGet()` và `doPost()` trong Servlet khác nhau như thế nào?
A. `doGet()` dùng để xử lý yêu cầu POST, `doPost()` dùng để xử lý yêu cầu GET.
B. `doGet()` thường dùng để truy xuất dữ liệu từ máy chủ, `doPost()` thường dùng để gửi dữ liệu lên máy chủ.
C. `doGet()` gửi dữ liệu trong phần body của yêu cầu, `doPost()` gửi dữ liệu trên URL.
D. `doGet()` chỉ dùng cho dữ liệu văn bản, `doPost()` dùng cho dữ liệu nhị phân.
7. AOP (Aspect-Oriented Programming) trong Spring framework dùng để giải quyết vấn đề gì?
A. Quản lý transaction trong cơ sở dữ liệu.
B. Xử lý lỗi và exception trong ứng dụng.
C. Tách các cross-cutting concerns (các mối quan tâm chung) như logging, security, transaction management ra khỏi logic nghiệp vụ chính.
D. Cải thiện hiệu suất ứng dụng web.
8. CSRF (Cross-Site Request Forgery) attack là gì và cách phòng tránh nó trong ứng dụng web Java?
A. Một loại tấn công từ chối dịch vụ (DoS).
B. Một loại tấn công mà kẻ tấn công giả mạo yêu cầu từ người dùng đã đăng nhập để thực hiện hành động trái phép.
C. Một loại tấn công SQL injection.
D. Một loại tấn công XSS (Cross-Site Scripting).
9. Container (ví dụ: Servlet container, EJB container) là gì?
A. Một loại cơ sở dữ liệu.
B. Một môi trường runtime cung cấp các dịch vụ và quản lý lifecycle của các components (ví dụ: Servlet, EJB).
C. Một công cụ để thiết kế giao diện người dùng.
D. Một giao thức mạng.
10. Công nghệ Servlet trong Java Web cho phép thực hiện điều gì?
A. Xây dựng giao diện người dùng tĩnh cho trang web.
B. Xử lý các yêu cầu từ máy khách (client) và tạo nội dung động trả về.
C. Quản lý cơ sở dữ liệu cho ứng dụng web.
D. Định nghĩa cấu trúc và kiểu dáng của trang web.
11. JPA (Java Persistence API) là gì?
A. Một ORM framework cụ thể như Hibernate.
B. Một đặc tả (specification) cho ORM trong Java EE/Jakarta EE, định nghĩa các chuẩn giao tiếp với ORM framework.
C. Một thư viện UI components cho Java Web.
D. Một công cụ để kiểm thử hiệu năng ứng dụng web Java.
12. Logging trong ứng dụng web Java có mục đích chính là gì?
A. Tăng tốc độ truy cập cơ sở dữ liệu.
B. Theo dõi hoạt động của ứng dụng, ghi lại các sự kiện, lỗi, và thông tin quan trọng để debug, giám sát và phân tích.
C. Cải thiện bảo mật ứng dụng.
D. Quản lý session của người dùng.
13. Security context trong ứng dụng web Java dùng để làm gì?
A. Tối ưu hóa hiệu suất ứng dụng.
B. Quản lý session và cookie.
C. Lưu trữ thông tin về người dùng đã xác thực và quyền hạn của họ trong ứng dụng.
D. Mã hóa dữ liệu truyền trên mạng.
14. Session trong Java Web được sử dụng để làm gì?
A. Lưu trữ dữ liệu cố định của ứng dụng web.
B. Quản lý trạng thái và thông tin của người dùng giữa các yêu cầu HTTP.
C. Tối ưu hóa hiệu suất truy cập cơ sở dữ liệu.
D. Xác thực người dùng và phân quyền truy cập.
15. Ưu điểm của việc sử dụng microservices architecture so với monolithic architecture trong phát triển ứng dụng web lớn là gì?
A. Phát triển monolithic nhanh hơn microservices.
B. Microservices dễ dàng scale, deploy và bảo trì hơn, mỗi service có thể được phát triển và deploy độc lập.
C. Monolithic ít phức tạp hơn microservices về mặt kiến trúc.
D. Microservices tốn ít tài nguyên hơn monolithic.
16. Ư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. Spring MVC nhanh hơn và hiệu quả hơn Servlet/JSP.
B. Spring MVC cung cấp cấu trúc rõ ràng, dễ bảo trì và kiểm thử hơn cho ứng dụng web.
C. Servlet/JSP không hỗ trợ mô hình MVC.
D. Spring MVC có thể chạy trên mọi web server, còn Servlet/JSP thì không.
17. Cookie trong Java Web được lưu trữ ở đâu?
A. Trên máy chủ web.
B. Trong cơ sở dữ liệu của ứng dụng.
C. Trên trình duyệt web của người dùng.
D. Trong bộ nhớ cache của máy chủ.
18. XSS (Cross-Site Scripting) attack là gì và cách phòng tránh?
A. Tấn công bằng cách chèn mã độc (thường là JavaScript) vào website để thực thi trên trình duyệt của người dùng khác.
B. Tấn công bằng cách gửi quá nhiều yêu cầu đến server gây quá tải.
C. Tấn công bằng cách khai thác lỗ hổng bảo mật trong cơ sở dữ liệu.
D. Tấn công bằng cách giả mạo địa chỉ IP.
19. Unit testing và Integration testing khác nhau như thế nào trong phát triển ứng dụng web Java?
A. Unit testing kiểm tra toàn bộ ứng dụng, Integration testing chỉ kiểm tra các module nhỏ.
B. Unit testing tập trung kiểm tra các đơn vị nhỏ nhất của code (ví dụ: method, class) một cách độc lập, Integration testing kiểm tra sự tương tác giữa các module hoặc components khác nhau.
C. Unit testing chỉ thực hiện bởi developers, Integration testing chỉ thực hiện bởi testers.
D. Unit testing chỉ kiểm tra chức năng, Integration testing chỉ kiểm tra hiệu năng.
20. JSP (JavaServer Pages) khác biệt với Servlet chủ yếu ở điểm nào?
A. JSP được biên dịch thành Servlet trước khi thực thi.
B. JSP tập trung vào việc tạo nội dung động dựa trên HTML, trong khi Servlet tập trung vào logic điều khiển.
C. JSP có hiệu suất cao hơn Servlet trong việc xử lý yêu cầu.
D. JSP không thể sử dụng các thư viện và API Java EE như Servlet.
21. SQL Injection attack là gì và cách phòng tránh hiệu quả nhất?
A. Tấn công bằng cách chèn mã SQL độc hại vào các truy vấn cơ sở dữ liệu để truy cập hoặc sửa đổi dữ liệu trái phép.
B. Tấn công bằng cách giả mạo yêu cầu HTTP.
C. Tấn công bằng cách khai thác lỗ hổng trong hệ điều hành server.
D. Tấn công bằng cách đoán mật khẩu người dùng.
22. Công cụ Maven hoặc Gradle được sử dụng để làm gì trong dự án phát triển web Java?
A. Thiết kế giao diện người dùng (UI).
B. Quản lý cơ sở dữ liệu.
C. Quản lý build, dependencies, và lifecycle của dự án.
D. Kiểm thử hiệu năng ứng dụng.
23. 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 ứng dụng web truyền thống.
B. `@Controller` kết hợp `@ResponseBody` mặc định cho tất cả các phương thức, `@RestController` thì không.
C. `@RestController` kết hợp `@Controller` và `@ResponseBody` mặc định cho tất cả các phương thức handler, trả về dữ liệu trực tiếp thay vì view name.
D. `@Controller` chỉ dùng cho giao diện người dùng, `@RestController` chỉ dùng cho backend.
24. Load balancing trong ứng dụng web Java được sử dụng để làm gì?
A. Tăng tốc độ truy cập cơ sở dữ liệu.
B. Cải thiện bảo mật ứng dụng.
C. Phân phối traffic đến nhiều server để tăng khả năng chịu tải và độ tin cậy của ứng dụng.
D. Tối ưu hóa code ứng dụng.
25. RESTful API là gì?
A. Một loại giao diện người dùng (UI) cho ứng dụng web.
B. Một kiến trúc thiết kế cho các ứng dụng web, sử dụng HTTP verbs (GET, POST, PUT, DELETE) để thực hiện các thao tác trên resources.
C. Một framework Java để phát triển ứng dụng web.
D. Một giao thức bảo mật cho truyền dữ liệu web.
26. Web server (ví dụ: Tomcat, Jetty) có vai trò gì trong kiến trúc ứng dụng web Java?
A. Quản lý cơ sở dữ liệu.
B. Xử lý logic nghiệp vụ của ứng dụng.
C. Cung cấp môi trường runtime cho ứng dụng web Java, tiếp nhận yêu cầu từ client, và trả về phản hồi.
D. Thiết kế giao diện người dùng (UI).
27. 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ý yêu cầu HTTP.
B. Giảm độ phức tạp khi làm việc với cơ sở dữ liệu bằng cách ánh xạ đối tượng Java với bảng trong cơ sở dữ liệu.
C. Cải thiện bảo mật cho ứng dụng web.
D. Hỗ trợ phát triển giao diện người dùng (UI) dễ dàng hơn.
28. 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 ứng dụng.
B. Một design pattern cho phép một đối tượng nhận các dependencies (phụ thuộc) của nó từ bên ngoài thay vì tự tạo ra.
C. Một phương pháp để quản lý session và cookie.
D. Một công cụ để kiểm thử ứng dụng web.
29. Annotation `@WebServlet` trong Servlet dùng để làm gì?
A. Định nghĩa lớp Servlet là một thành phần web và ánh xạ URL đến Servlet đó.
B. Khai báo một biến instance trong Servlet.
C. Đánh dấu một phương thức là phương thức xử lý yêu cầu GET.
D. Cấu hình thông tin kết nối cơ sở dữ liệu cho Servlet.
30. Trong Spring MVC, DispatcherServlet đóng vai trò gì?
A. Xử lý logic nghiệp vụ của ứng dụng.
B. Quản lý session và cookie.
C. Là front controller, tiếp nhận tất cả các yêu cầu HTTP và điều phối chúng đến các controller phù hợp.
D. Đảm nhận việc render view và trả về response cho client.