1. Maven hoặc Gradle là công cụ gì trong phát triển ứng dụng web Java?
A. Web server.
B. ORM framework.
C. Build automation tool và dependency management tool.
D. Integrated Development Environment (IDE).
2. Annotation `@Controller` trong Spring MVC được sử dụng để đánh dấu class nào?
A. Class chứa logic nghiệp vụ (business logic).
B. Class đóng vai trò là Controller trong mô hình MVC, xử lý request từ client.
C. Class định nghĩa cấu hình cơ sở dữ liệu.
D. Class đại diện cho model (dữ liệu) trong mô hình MVC.
3. Web container (ví dụ: Tomcat) đọc file cấu hình web application nào để biết cấu hình deploy và các thành phần của ứng dụng?
A. `pom.xml` (Maven project).
B. `build.gradle` (Gradle project).
C. `web.xml` (Deployment Descriptor) hoặc annotations trong Servlet 3.0 trở lên.
D. `application.properties` (Spring Boot project).
4. Filter trong Servlet Java được sử dụng để làm gì?
A. Tăng tốc độ xử lý request.
B. Thực hiện các tác vụ tiền xử lý hoặc hậu xử lý request∕response, ví dụ: logging, authentication, authorization.
C. Quản lý session.
D. Xử lý lỗi.
5. Listener trong Servlet Java được sử dụng để làm gì?
A. Lắng nghe và xử lý các event (sự kiện) xảy ra trong web application lifecycle hoặc servlet context∕session lifecycle.
B. Lọc các request không hợp lệ.
C. Tạo response động.
D. Quản lý database connection pool.
6. Web security concept nào sau đây đề cập đến việc ngăn chặn kẻ tấn công thực thi script độc hại trên trình duyệt của người dùng khác?
A. SQL Injection
B. Cross-Site Scripting (XSS)
C. Cross-Site Request Forgery (CSRF)
D. Denial of Service (DoS)
7. HTTP method nào thường được sử dụng để lấy dữ liệu từ server trong RESTful API?
A. POST
B. PUT
C. GET
D. DELETE
8. JSTL (JSP Standard Tag Library) cung cấp các tag libraries cho mục đích chính nào trong JSP?
A. Tăng tốc độ biên dịch JSP.
B. Cung cấp các tag phổ biến để thực hiện các tác vụ thường gặp như vòng lặp, điều kiện, định dạng dữ liệu trong JSP.
C. Thay thế hoàn toàn việc sử dụng JavaScript trong JSP.
D. Quản lý session và cookie.
9. Microservices architecture có ưu điểm chính nào so với monolithic architecture trong phát triển ứng dụng web?
A. Dễ dàng triển khai và quản lý hơn.
B. Tăng hiệu suất tổng thể của ứng dụng.
C. Tăng tính độc lập, khả năng mở rộng và khả năng chịu lỗi của từng service.
D. Giảm chi phí phát triển ban đầu.
10. RESTful web service là gì?
A. Một loại database server.
B. Một kiến trúc thiết kế cho web services, tuân theo các nguyên tắc của REST (Representational State Transfer).
C. Một giao thức truyền dữ liệu thời gian thực.
D. Một framework phát triển giao diện người dùng web.
11. JPA (Java Persistence API) là gì?
A. Một ORM framework cụ thể như Hibernate.
B. Một đặc tả kỹ thuật (specification) cho ORM trong Java, định nghĩa các chuẩn giao diện và API.
C. Một web server.
D. Một công cụ build cho Java projects.
12. Trong ngữ cảnh web application performance optimization, caching (bộ nhớ đệm) được sử dụng để làm gì?
A. Tăng cường bảo mật.
B. Giảm tải cho database và tăng tốc độ truy cập dữ liệu thường xuyên được sử dụng bằng cách lưu trữ tạm thời dữ liệu đó trong bộ nhớ nhanh hơn.
C. Quản lý session hiệu quả hơn.
D. Giảm dung lượng WAR file.
13. Mô hình MVC (Model-View-Controller) trong phát triển ứng dụng web Java giúp đạt được mục tiêu chính nào?
A. Tăng tốc độ xử lý của ứng dụng web.
B. Tách biệt logic nghiệp vụ, giao diện người dùng và luồng điều khiển của ứng dụng.
C. Tăng cường bảo mật cho ứng dụng web.
D. Giảm thiểu dung lượng bộ nhớ sử dụng của ứng dụng.
14. CSRF (Cross-Site Request Forgery) attack lợi dụng điều gì?
A. Lỗi SQL trong ứng dụng.
B. Lỗi script phía client.
C. Việc người dùng đã đăng nhập và trình duyệt tự động gửi cookie xác thực với các request.
D. Server cấu hình yếu.
15. HTTPS khác với HTTP ở điểm chính nào?
A. HTTPS nhanh hơn HTTP.
B. HTTPS sử dụng port khác với HTTP.
C. HTTPS mã hóa dữ liệu truyền tải giữa client và server để bảo mật thông tin.
D. HTTPS có thể xử lý nhiều loại request hơn HTTP.
16. Annotation `@WebServlet` trong Servlet Java được sử dụng để làm gì?
A. Khai báo một class là một Servlet và ánh xạ URL đến Servlet đó.
B. Khai báo một biến instance trong Servlet.
C. Định nghĩa phương thức khởi tạo cho Servlet.
D. Xác định thời gian timeout cho Servlet.
17. Annotation `@Entity` trong JPA được sử dụng để đánh dấu class nào?
A. Class chứa logic nghiệp vụ.
B. Class đại diện cho một bảng (table) trong cơ sở dữ liệu.
C. Class đóng vai trò là Controller.
D. Class cấu hình kết nối database.
18. EL (Expression Language) trong JSP được sử dụng để làm gì?
A. Viết logic nghiệp vụ phức tạp trong JSP.
B. Truy cập và hiển thị dữ liệu từ các Java Bean và scope objects một cách đơn giản trong JSP.
C. Tạo hiệu ứng động cho trang web.
D. Xử lý sự kiện phía client.
19. 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 liên quan đến một phiên làm việc của người dùng.
B. Lưu trữ dữ liệu cố định trên server.
C. Lưu trữ dữ liệu trên client-side (trình duyệt).
D. Quản lý kết nối cơ sở dữ liệu.
20. WAR file (Web Application Archive) là gì?
A. Một file cấu hình database.
B. Một file chứa mã nguồn Java.
C. Một file archive (ZIP) chứa toàn bộ ứng dụng web Java đã được đóng gói để deploy lên server.
D. Một loại file log của server.
21. Spring Bean là gì?
A. Một class Java thông thường.
B. Một đối tượng được quản lý bởi Spring IoC container.
C. Một Servlet trong Spring MVC.
D. Một file cấu hình XML của Spring.
22. Trong Spring Framework, Dependency Injection (DI) là gì?
A. Một kỹ thuật để tạo ra các đối tượng (objects) một cách tự động.
B. Một design pattern cho phép các đối tượng được cung cấp dependencies của chúng thay vì tự tạo hoặc tìm kiếm chúng.
C. Một phương pháp để quản lý transactions trong ứng dụng web.
D. Một cách để cấu hình bảo mật cho ứng dụng Spring.
23. 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. Servlet
D. File XML
24. ORM (Object-Relational Mapping) framework như Hibernate giúp giải quyết vấn đề chính nào trong phát triển ứng dụng web Java?
A. Tăng tốc độ xử lý HTTP request.
B. Giải quyết sự không tương thích giữa hệ thống kiểu dữ liệu hướng đối tượng (Java) và hệ thống kiểu dữ liệu quan hệ (database).
C. Cung cấp cơ chế bảo mật cho ứng dụng web.
D. Quản lý session và cookie hiệu quả hơn.
25. SSL∕TLS certificate được sử dụng để làm gì trong HTTPS?
A. Tăng tốc độ truyền dữ liệu.
B. Xác thực danh tính của server và thiết lập kênh giao tiếp mã hóa.
C. Ngăn chặn tấn công DDoS.
D. Quản lý session người dùng.
26. Trong phát triển ứng dụng web Java, Servlet container (ví dụ: Tomcat, Jetty) chịu trách nhiệm chính cho nhiệm vụ nào sau đây?
A. Quản lý vòng đời của Servlet và cung cấp môi trường runtime 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.
D. Xử lý các yêu cầu HTTP phía client và trả về phản hồi HTML.
27. Spring Boot giúp đơn giản hóa quá trình phát triển ứng dụng Spring như thế nào?
A. Thay thế hoàn toàn Spring Framework.
B. Cung cấp auto-configuration, embedded servers, và starters để giảm thiểu cấu hình boilerplate và đơn giản hóa setup.
C. Tăng cường bảo mật mặc định cho ứng dụng.
D. Tăng tốc độ runtime của ứng dụng Spring.
28. Phương thức `doGet()` và `doPost()` trong Servlet được sử dụng để xử lý loại request HTTP nào tương ứng?
A. `doGet()` cho POST request và `doPost()` cho GET request.
B. `doGet()` cho GET request và `doPost()` cho POST request.
C. Cả hai phương thức đều xử lý cả GET và POST request.
D. `doGet()` cho request có header và `doPost()` cho request không có header.
29. JSON (JavaScript Object Notation) thường được sử dụng để làm gì trong web services và ứng dụng web?
A. Định nghĩa cấu trúc cơ sở dữ liệu.
B. Truyền tải dữ liệu giữa client và server do tính đơn giản, dễ đọc và dễ parse của nó.
C. Viết logic nghiệp vụ phía server.
D. Tạo giao diện người dùng đồ họa.
30. Cookie trong ứng dụng web Java hoạt động ở phía nào?
A. Chỉ hoạt động ở phía server.
B. Chỉ hoạt động ở phía client (trình duyệt).
C. Hoạt động cả ở phía server và client.
D. Không liên quan đến client hay server.