1. Servlet filter dùng để làm gì?
A. Tạo giao diện người dùng
B. Thay đổi request và response
C. Kết nối database
D. Quản lý session
2. JSON Web Token (JWT) được sử dụng để làm gì?
A. Lưu trữ dữ liệu phiên trên server.
B. Tạo giao diện người dùng.
C. Xác thực và ủy quyền người dùng một cách an toàn và stateless.
D. Tối ưu hóa hiệu suất cơ sở dữ liệu.
3. Trong Spring, @Autowired annotation dùng để làm gì?
A. Đánh dấu một class là một component.
B. Thực hiện dependency injection tự động.
C. Định nghĩa một bean.
D. Xác định một request mapping.
4. 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
5. WebSockets là gì và nó khác gì so với HTTP?
A. Một giao thức bảo mật hơn HTTP.
B. Một phiên bản mới của HTTP.
C. Một giao thức cho phép giao tiếp hai chiều (full-duplex) liên tục giữa client và server, khác với HTTP là giao thức request-response.
D. Một công nghệ để nén dữ liệu.
6. Trong Java Web, cookie được lưu trữ ở đâu?
A. Trên server
B. Trong database
C. Trên client (trình duyệt)
D. Trong session
7. Công nghệ nào sau đây của Java EE cung cấp khả năng thực hiện các giao dịch (transactions) một cách nhất quán và đáng tin cậy?
A. JMS (Java Message Service)
B. JNDI (Java Naming and Directory Interface)
C. JTA (Java Transaction API)
D. Servlet
8. Công nghệ nào sau đây cho phép thực hiện các thay đổi trên giao diện người dùng mà không cần tải lại toàn bộ trang?
A. JDBC
B. JMS
C. AJAX
D. JNDI
9. JSP (JavaServer Pages) được biên dịch thành cái gì trước khi được thực thi?
A. HTML
B. JavaScript
C. Servlet
D. XML
10. CORS (Cross-Origin Resource Sharing) là gì và tại sao nó quan trọng trong phát triển web?
A. Một kỹ thuật để tăng tốc độ tải trang.
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 từ một origin khác.
C. Một phương pháp để mã hóa dữ liệu.
D. Một công cụ để kiểm tra tính tương thích của trình duyệt.
11. Trong ngữ cảnh của bảo mật ứng dụng web Java, Cross-Site Scripting (XSS) là gì?
A. Một loại tấn công từ chối dịch vụ (DoS).
B. Một kỹ thuật để vượt qua xác thực người dùng.
C. Một lỗ hổng bảo mật cho phép kẻ tấn công chèn mã độc hại (thường là JavaScript) vào các trang web mà người dùng khác xem.
D. Một phương pháp để mã hóa dữ liệu truyền trên mạng.
12. Trong Java web application, `web.xml` (hoặc `web.xml` tương đương trong các phiên bản mới hơn) dùng để làm gì?
A. Định nghĩa giao diện người dùng
B. Cấu hình database
C. Cấu hình deployment descriptor cho ứng dụng web, bao gồm servlet, filter, listener...
D. Quản lý dependencies
13. Thành phần nào của Java EE chịu trách nhiệm quản lý vòng đời của các Servlet?
A. Web Server
B. Servlet Container
C. JSP Engine
D. EJB Container
14. Session fixation là gì?
A. Một loại tấn công XSS
B. Một loại tấn công CSRF
C. Một loại tấn công mà kẻ tấn công ép người dùng sử dụng một session ID cụ thể
D. Một loại tấn công từ chối dịch vụ
15. Spring Boot Actuator cung cấp những thông tin gì?
A. Công cụ để deploy ứng dụng
B. Các endpoint giám sát và quản lý ứng dụng Spring Boot
C. Thư viện để tạo giao diện người dùng
D. Công cụ để kiểm tra bảo mật
16. Để quản lý phiên (session) trong ứng dụng web Java, bạn thường sử dụng đối tượng nào?
A. HttpServletRequest
B. HttpServletResponse
C. HttpSession
D. ServletContext
17. Ưu điểm của việc sử dụng template engine (ví dụ: Thymeleaf, FreeMarker) trong phát triển web Java là gì?
A. Tăng tốc độ truy cập cơ sở dữ liệu.
B. Giảm thiểu rủi ro bảo mật.
C. Cho phép tách biệt logic trình bày (presentation logic) khỏi code Java, giúp code dễ bảo trì và dễ đọc hơn.
D. Tự động tạo tài liệu cho code.
18. JPA (Java Persistence API) là gì?
A. Một thư viện để tạo giao diện người dùng.
B. Một API để làm việc với mạng.
C. Một đặc tả kỹ thuật (specification) cho việc quản lý dữ liệu bền vững (persistent data) trong các ứng dụng Java.
D. Một công cụ để kiểm thử ứng dụng web.
19. CSRF (Cross-Site Request Forgery) là gì và làm thế nào để 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 kỹ thuật để vượt qua xác thực người dùng.
C. Một lỗ hổng bảo mật cho phép kẻ tấn công thực hiện các hành động thay mặt người dùng mà không được phép của họ, phòng tránh bằng cách sử dụng token đồng bộ hóa (synchronizer token pattern).
D. Một phương pháp để mã hóa dữ liệu truyền trên mạng.
20. ORM (Object-Relational Mapping) là gì và nó giúp ích như thế nào trong phát triển ứng dụng web Java?
A. Một kỹ thuật để tối ưu hóa hiệu suất của cơ sở dữ liệu.
B. Một phương pháp chuyển đổi dữ liệu giữa các hệ thống khác nhau.
C. Một kỹ thuật ánh xạ giữa các đối tượng trong code và các bảng trong cơ sở dữ liệu, giúp đơn giản hóa việc truy cập và thao tác dữ liệu.
D. Một giao thức mạng để truyền dữ liệu giữa client và server.
21. Chức năng chính của Message Queue (ví dụ: Apache Kafka, RabbitMQ) trong kiến trúc ứng dụng web là gì?
A. Lưu trữ dữ liệu phiên (session data).
B. Quản lý xác thực người dùng.
C. Cho phép giao tiếp bất đồng bộ giữa các thành phần của ứng dụng, giúp tăng tính linh hoạt và khả năng mở rộng.
D. Tối ưu hóa hiệu suất của cơ sở dữ liệu.
22. HttpServletRequest có chức năng gì?
A. Gửi phản hồi tới client
B. Chứa thông tin về request từ client
C. Quản lý session
D. Xử lý lỗi
23. Để tạo một RESTful API trong Java, framework nào sau đây thường được sử dụng?
A. Swing
B. JavaFX
C. Spring MVC
D. AWT
24. Trong Spring Security, cơ chế nào được sử dụng để xác thực (authentication) người dùng?
A. OAuth
B. LDAP
C. AuthenticationManager
D. Cả ba đáp án trên
25. Để triển khai một ứng dụng web Java, bạn cần một cái gì?
A. JVM
B. JDK
C. Web server hoặc application server
D. IDE
26. Trong ngữ cảnh RESTful API, phương thức HTTP nào thường được sử dụng để cập nhật một tài nguyên hiện có?
A. GET
B. POST
C. PUT
D. DELETE
27. Spring Data JPA giúp ích gì cho việc phát triển ứng dụng web Java?
A. Tự động tạo giao diện người dùng.
B. Đơn giản hóa việc truy cập và thao tác dữ liệu với cơ sở dữ liệu thông qua việc cung cấp các repository interface.
C. Tăng cường bảo mật cho ứng dụng.
D. Cung cấp các công cụ để kiểm thử ứng dụng.
28. Để ghi log trong ứng dụng web Java, thư viện nào thường được sử dụng?
A. JUnit
B. Mockito
C. Log4j hoặc SLF4J
D. Hibernate
29. Annotation nào trong Spring Framework được sử dụng để đánh dấu một class là một Controller?
A. @Service
B. @Repository
C. @Component
D. @Controller
30. Dependency Injection (DI) là gì và nó mang lại lợi ích gì trong phát triển ứng dụng web Java?
A. Một kỹ thuật để giảm kích thước của các file JAR.
B. Một phương pháp để tăng tốc độ biên dịch của ứng dụng.
C. Một mẫu thiết kế cho phép chuyển việc tạo dependency cho một thành phần bên ngoài, giúp tăng tính linh hoạt, khả năng kiểm thử và tái sử dụng code.
D. Một công cụ để tự động tạo tài liệu cho code.