1. OAuth 2.0 được sử dụng để làm gì?
A. Để mã hóa dữ liệu trên server.
B. Để ủy quyền truy cập vào tài nguyên của người dùng mà không cần chia sẻ thông tin đăng nhập.
C. Để bảo vệ ứng dụng khỏi tấn công DDoS.
D. Để quản lý cơ sở dữ liệu.
2. Vai trò của DispatcherServlet trong Spring MVC là gì?
A. Quản lý kết nối cơ sở dữ liệu.
B. Xử lý các yêu cầu đến, điều phối chúng đến các Controller thích hợp và chọn View để hiển thị.
C. Thực hiện xác thực người dùng.
D. Biên dịch mã JSP thành Servlet.
3. Servlet container (ví dụ: Tomcat) thực hiện chức năng 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 yêu cầu HTTP.
C. Cung cấp giao diện người dùng cho ứng dụng web.
D. Quản lý kết nối cơ sở dữ liệu.
4. Trong ngữ cảnh của JDBC, PreparedStatement được sử dụng để làm gì?
A. Tạo kết nối đến cơ sở dữ liệu.
B. Thực thi các câu lệnh SQL tĩnh.
C. Thực thi các câu lệnh SQL đã được biên dịch trước, giúp tăng hiệu suất và ngăn chặn SQL Injection.
D. Đóng kết nối đến cơ sở dữ liệu.
5. Trong Spring Security, thành phần nào chịu trách nhiệm xác thực (authentication) người dùng?
A. PasswordEncoder
B. AuthenticationManager
C. GrantedAuthority
D. UserDetails
6. Thư viện nào thường được sử dụng để xử lý và phân tích cú pháp XML trong Java?
A. Jackson
B. Gson
C. JAXB
D. Log4j
7. CDN (Content Delivery Network) được sử dụng để làm gì?
A. Để lưu trữ dữ liệu cơ sở dữ liệu.
B. Để bảo vệ ứng dụng khỏi tấn công DDoS.
C. Để phân phối nội dung tĩnh (ví dụ: hình ảnh, CSS, JavaScript) từ các server gần người dùng hơn, giảm độ trễ và tăng tốc độ tải trang.
D. Để quản lý phiên người dùng.
8. JSP (JavaServer Pages) được biên dịch thành gì trước khi thực thi?
A. HTML
B. JavaScript
C. Servlet
D. XML
9. Trong Spring Data JPA, interface nào được sử dụng để định nghĩa các phương thức truy vấn dữ liệu một cách tự động dựa trên tên phương thức?
A. EntityManager
B. JdbcTemplate
C. Repository
D. JpaRepository
10. Trong mô hình 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 cơ sở dữ liệu?
A. View
B. Controller
C. Model
D. DispatcherServlet
11. JSON (JavaScript Object Notation) thường được sử dụng trong ứng dụng web Java để làm gì?
A. Định nghĩa cấu trúc cơ sở dữ liệu.
B. Truyền dữ liệu giữa server và client (ví dụ: AJAX).
C. Xây dựng giao diện người dùng.
D. Thực hiện các phép toán phức tạp ở phía server.
12. Cookie thường được sử dụng để làm gì trong ứng dụng web?
A. Lưu trữ dữ liệu trên server-side.
B. Lưu trữ dữ liệu trên client-side để theo dõi hành vi người dùng hoặc duy trì thông tin đăng nhập.
C. Tăng tốc độ tải trang web.
D. Bảo vệ ứng dụng khỏi tấn công CSRF.
13. WebSocket được sử dụng để làm gì trong ứng dụng web?
A. Để tạo giao diện người dùng động.
B. Để truyền dữ liệu một chiều từ server đến client.
C. Để thiết lập kết nối song công (full-duplex) giữa client và server, cho phép truyền dữ liệu theo thời gian thực.
D. Để quản lý phiên người dùng.
14. JWT (JSON Web Token) thường được sử dụng để làm gì?
A. Để tạo giao diện người dùng động.
B. Để lưu trữ dữ liệu trên server.
C. Để truyền tải thông tin xác thực và ủy quyền giữa các bên một cách an toàn.
D. Để quản lý kết nối cơ sở dữ liệu.
15. Dependency Injection (DI) là gì?
A. Một kỹ thuật để tối ưu hóa hiệu suất ứng dụng.
B. Một pattern thiết kế phần mềm cho phép các đối tượng nhận dependencies của chúng từ bên ngoài thay vì tự tạo.
C. Một phương pháp để bảo mật ứng dụng web.
D. Một cách để quản lý cơ sở dữ liệu.
16. RESTful API là gì?
A. Một loại cơ sở dữ liệu NoSQL.
B. Một kiến trúc thiết kế phần mềm cho phép giao tiếp giữa các hệ thống thông qua HTTP.
C. Một ngôn ngữ lập trình phía server.
D. Một framework để xây dựng giao diện người dùng.
17. Mục đích của việc sử dụng Maven hoặc Gradle trong dự án Java là gì?
A. Để viết mã Java nhanh hơn.
B. Để quản lý dependencies, build và triển khai dự án.
C. Để tạo giao diện người dùng.
D. Để tối ưu hóa hiệu suất cơ sở dữ liệu.
18. Annotation nào trong Spring MVC được sử dụng để ánh xạ một phương thức xử lý yêu cầu tới một URL cụ thể?
A. @Component
B. @Service
C. @RequestMapping
D. @Repository
19. Spring Boot khác gì so với Spring MVC?
A. Spring Boot là một framework hoàn toàn khác, không liên quan đến Spring MVC.
B. Spring Boot cung cấp cách cấu hình tự động và dễ dàng hơn cho các ứng dụng Spring, bao gồm cả Spring MVC.
C. Spring MVC là một phần của Spring Boot.
D. Spring MVC chỉ dành cho các ứng dụng web nhỏ, còn Spring Boot dành cho các ứng dụng lớn hơn.
20. Load balancing là gì và tại sao nó quan trọng trong ứng dụng web?
A. Một kỹ thuật để tối ưu hóa cơ sở dữ liệu.
B. Một phương pháp để bảo mật ứng dụng web.
C. Một kỹ thuật phân phối tải công việc trên nhiều server để cải thiện hiệu suất, độ tin cậy và khả năng mở rộng.
D. Một cách để tạo giao diện người dùng động.
21. Annotation nào trong Spring MVC được sử dụng để đánh dấu một class là một Controller?
A. @Service
B. @Component
C. @Controller
D. @Repository
22. 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 đặc tả cách các đối tượng Java có thể được quản lý và lưu trữ trong cơ sở dữ liệu quan hệ.
C. Một công cụ để build dự án Java.
D. Một framework để bảo mật ứng dụng web.
23. RESTful API sử dụng các HTTP method nào để thực hiện các thao tác CRUD (Create, Read, Update, Delete)?
A. GET, POST, PUT, DELETE
B. SELECT, INSERT, UPDATE, DELETE
C. CREATE, READ, UPDATE, DELETE
D. GET, POST, PATCH, REMOVE
24. ORM (Object-Relational Mapping) framework nào phổ biến nhất trong các ứng dụng web Java?
A. JDBC
B. Spring Data JPA
C. Hibernate
D. MyBatis
25. XSS (Cross-Site Scripting) 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 bằng cách chèn mã độc vào cơ sở dữ liệu (SQL Injection).
C. Tấn công bằng cách chèn các đoạn mã độc hại vào trang web để thực thi trên trình duyệt của người dùng khác.
D. Tấn công bằng cách đánh cắp thông tin xác thực của người dùng (Credential Stuffing).
26. Thư viện nào thường được sử dụng để xử lý và phân tích cú pháp JSON trong Java?
A. JAXB
B. Log4j
C. JUnit
D. Jackson
27. Mục đích chính của việc sử dụng Session trong ứng dụng web là gì?
A. Lưu trữ dữ liệu trên client-side.
B. Duy trì trạng thái của người dùng giữa các request.
C. Tăng tốc độ tải trang web.
D. Bảo vệ ứng dụng khỏi tấn công CSRF.
28. Ưu điểm chính của việc sử dụng ORM (Object-Relational Mapping) như Hibernate trong phát triển ứng dụng web Java là gì?
A. Tăng hiệu suất truy vấn cơ sở dữ liệu trực tiếp.
B. Giảm độ phức tạp của việc tương tác với cơ sở dữ liệu bằng cách sử dụng các đối tượng Java.
C. Đảm bảo tính bảo mật tuyệt đối cho dữ liệu.
D. Hỗ trợ tất cả các loại cơ sở dữ liệu mà không cần cấu hình.
29. 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 bằng cách chèn mã độc vào cơ sở dữ liệu (SQL Injection).
C. Tấn công bằng cách lợi dụng việc người dùng đã đăng nhập để thực hiện các hành động trái phép.
D. Tấn công bằng cách đánh cắp thông tin xác thực của người dùng (Credential Stuffing).
30. AOP (Aspect-Oriented Programming) là gì và nó giải quyết vấn đề gì?
A. Một kỹ thuật lập trình hướng đối tượng để tạo ra các đối tượng phức tạp.
B. Một phương pháp để quản lý cơ sở dữ liệu.
C. Một paradigm lập trình cho phép tách các mối quan tâm cắt ngang (cross-cutting concerns) như logging, security ra khỏi logic nghiệp vụ chính.
D. Một cách để tối ưu hóa hiệu suất ứng dụng web.