1. ViewState trong ASP.NET (so sánh với Java Web) tương đương với khái niệm nào trong Java Web?
A. Cookie
B. Session
C. Request Parameter
D. ServletContext
2. JDBC (Java Database Connectivity) được sử dụng để làm gì trong phát triển ứng dụng web Java?
A. Tạo giao diện người dùng web.
B. Kết nối và tương tác với cơ sở dữ liệu từ ứng dụng Java.
C. Quản lý session của người dùng.
D. Triển khai ứng dụng web lên server.
3. Phương thức nào của interface `HttpServlet` được gọi khi client gửi một HTTP GET request?
A. doPost()
B. doGet()
C. service()
D. init()
4. Thành phần nào trong kiến trúc 3 lớp (3-tier architecture) tương ứng với View trong MVC?
A. Presentation tier
B. Application tier (Logic tier)
C. Data tier
D. Middleware tier
5. 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 cho mỗi client trong suốt phiên làm việc.
B. Chia sẻ dữ liệu giữa các Servlet khác nhau trong cùng một ứng dụng.
C. Bảo vệ ứng dụng khỏi các tấn công CSRF.
D. Tối ưu hóa hiệu suất truy vấn database.
6. ViewState trong JSP (Java Server Pages) được dùng để làm gì?
A. JSP không sử dụng ViewState.
B. Lưu trữ trạng thái của các component trên trang JSP giữa các request.
C. Tối ưu hóa hiệu suất hiển thị trang JSP.
D. Quản lý session của người dùng.
7. RESTful API là gì và tại sao nó trở nên phổ biến trong phát triển web?
A. Một giao thức bảo mật cho truyền dữ liệu trên web.
B. Một kiến trúc thiết kế API cho ứng dụng web, sử dụng các HTTP methods (GET, POST, PUT, DELETE) để thao tác tài nguyên, đơn giản, dễ mở rộng và tương tác.
C. Một loại database NoSQL phổ biến.
D. Một framework để phát triển ứng dụng web real-time.
8. 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 dữ liệu?
A. View
B. Controller
C. Model
D. Servlet
9. Ưu điểm chính của việc sử dụng framework như Spring Boot so với phát triển web Java EE truyền thống là gì?
A. Hiệu suất ứng dụng cao hơn.
B. Giảm thiểu cấu hình, phát triển nhanh hơn, tích hợp nhiều tính năng sẵn có, dễ dàng triển khai.
C. Khả năng bảo mật tốt hơn.
D. Hỗ trợ nhiều loại database hơn.
10. WebSockets được sử dụng khi nào trong phát triển ứng dụng web Java?
A. Cho các ứng dụng cần truyền dữ liệu không thường xuyên.
B. Cho các ứng dụng real-time, two-way communication giữa client và server, ví dụ: chat applications, online games, dashboards.
C. Thay thế cho HTTP requests thông thường.
D. Để bảo mật dữ liệu truyền trên web.
11. Trong Spring Boot, annotation `@RestController` kết hợp chức năng của annotation nào?
A. `@Controller` và `@Service`
B. `@Controller` và `@ResponseBody`
C. `@Component` và `@Repository`
D. `@Configuration` và `@Bean`
12. Spring MVC framework là gì và nó giúp ích gì trong phát triển ứng dụng web Java?
A. Một framework để quản lý session trong ứng dụng web.
B. Một framework xây dựng trên mô hình MVC, cung cấp cấu trúc và công cụ để phát triển ứng dụng web một cách có tổ chức và dễ bảo trì.
C. Một thư viện để tạo giao diện người dùng đồ họa (GUI) cho ứng dụng web.
D. Một công cụ để triển khai ứng dụng web lên server.
13. JSON (JavaScript Object Notation) được sử dụng phổ biến trong web development với vai trò gì?
A. Ngôn ngữ lập trình phía server.
B. Định dạng dữ liệu trao đổi giữa client và server, dễ đọc, dễ phân tích cú pháp, đặc biệt phù hợp với JavaScript.
C. Công nghệ tạo hiệu ứng động trên trang web.
D. Hệ quản trị cơ sở dữ liệu.
14. Mục đích chính của việc sử dụng connection pooling trong JDBC là gì?
A. Tăng cường bảo mật kết nối database.
B. Tái sử dụng các kết nối database đã được tạo sẵn, giảm thời gian tạo kết nối mới cho mỗi request, tăng hiệu suất ứng dụng.
C. Giảm tải cho server database.
D. Đơn giản hóa cấu hình kết nối database.
15. Thư viện nào phổ biến trong Java để thực hiện ORM (Object-Relational Mapping)?
A. JDBC
B. JMS
C. Hibernate
D. JNDI
16. 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 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. Một hình thức tấn công SQL injection.
D. Một lỗi cấu hình server web.
17. Annotation `@PathVariable` trong Spring MVC dùng để làm gì?
A. Ánh xạ một phương thức Controller với một HTTP method (GET, POST...).
B. Trích xuất giá trị từ URL path và gán cho tham số phương thức Controller.
C. Định nghĩa một biến trong Controller.
D. Xác thực người dùng truy cập vào endpoint.
18. XSS (Cross-Site Scripting) là gì và làm thế nào để giảm thiểu rủi ro XSS trong ứng dụng web Java?
A. Một loại tấn công từ chối dịch vụ.
B. Một lỗ hổng bảo mật cho phép kẻ tấn công chèn mã script độc hại vào trang web để thực thi ở phía client.
C. Một hình thức tấn công brute-force password.
D. Một lỗi trong cấu hình database.
19. Dependency Injection (DI) là gì và lợi ích chính của nó 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 ứng dụng web.
B. Một design pattern cho phép quản lý vòng đời của Servlet.
C. Một kỹ thuật thiết kế phần mềm giúp giảm sự phụ thuộc giữa các thành phần, tăng tính module hóa và khả năng bảo trì.
D. Một phương pháp bảo mật ứng dụng web khỏi tấn công SQL injection.
20. Ưu điểm của việc sử dụng Servlet container (ví dụ: Tomcat, Jetty) là gì?
A. Tăng tốc độ xử lý giao diện người dùng.
B. Cung cấp môi trường runtime cho Servlets và JSPs, quản lý vòng đời, xử lý requests/responses, cung cấp các dịch vụ web server.
C. Tự động sao lưu dữ liệu ứng dụng.
D. Bảo vệ ứng dụng khỏi virus.
21. Thẻ JSTL `` (JSP Standard Tag Library) được sử dụng để làm gì?
A. Khai báo biến trong JSP.
B. Thực hiện vòng lặp qua một tập hợp dữ liệu trong JSP.
C. Điều khiển luồng trang JSP (if-else).
D. Nhúng mã JavaScript vào JSP.
22. Interceptor trong Spring MVC framework có vai trò gì?
A. Xử lý ngoại lệ trong ứng dụng.
B. Can thiệp vào quá trình xử lý request và response trước và sau khi Controller xử lý, thực hiện các tác vụ như logging, authentication, authorization.
C. Quản lý transactions database.
D. Định tuyến requests đến Controller phù hợp.
23. Thẻ `` trong JSP được dùng để làm gì?
A. Định nghĩa một biến JSP.
B. Khai báo và khởi tạo một Java Bean để sử dụng trong JSP.
C. Nhúng một trang JSP khác vào trang hiện tại.
D. Thực hiện một truy vấn database.
24. OAuth 2.0 được sử dụng để làm gì trong ứng dụng web?
A. Mã hóa dữ liệu truyền trên web.
B. Ủy quyền truy cập tài nguyên, cho phép ứng dụng bên thứ ba truy cập tài nguyên của người dùng trên một server khác (ví dụ: Google, Facebook) mà không cần chia sẻ mật khẩu.
C. Xác thực người dùng bằng username và password.
D. Ngăn chặn tấn công CSRF.
25. HTTP status code nào cho biết `Request thành công và tài nguyên đã được tạo mới`?
A. 200 OK
B. 201 Created
C. 204 No Content
D. 404 Not Found
26. Công nghệ nào của Java EE cung cấp một cách chuẩn hóa để tạo ra giao diện người dùng web động?
A. JDBC
B. JSP (JavaServer Pages)
C. RMI (Remote Method Invocation)
D. JMS (Java Message Service)
27. Thẻ `` và `` trong JSP khác nhau như thế nào?
A. `` nhúng nội dung trang khác vào trang hiện tại tại thời điểm dịch trang, `` chuyển hướng request sang trang khác hoàn toàn.
B. `` chuyển hướng request sang trang khác, `` nhúng nội dung trang khác vào trang hiện tại.
C. Không có sự khác biệt, cả hai đều dùng để nhúng trang khác.
D. Không có sự khác biệt, cả hai đều dùng để chuyển hướng trang.
28. Annotation `@WebServlet` trong Servlet dùng để làm gì?
A. Khai báo một lớp là một Enterprise JavaBean.
B. Định nghĩa một filter để xử lý request và response.
C. Ánh xạ một Servlet đến một hoặc nhiều URL patterns.
D. Khai báo một listener cho các sự kiện của ứng dụng web.
29. Cookie và Session khác nhau cơ bản ở điểm nào trong ứng dụng web Java?
A. Cookie lưu trữ dữ liệu trên server, Session lưu trữ dữ liệu trên client.
B. Cookie lưu trữ dữ liệu trên client (browser), Session lưu trữ dữ liệu trên server.
C. Cookie dùng để bảo mật, Session dùng để quản lý trạng thái.
D. Cookie nhanh hơn Session về tốc độ truy cập dữ liệu.
30. JPA (Java Persistence API) là gì và nó cung cấp lợi ích gì so với JDBC thuần?
A. Một thư viện để tạo giao diện người dùng web.
B. Một specification cho ORM trong Java, cung cấp mức trừu tượng cao hơn JDBC, giảm code boilerplate, tăng tính portable và dễ bảo trì.
C. Một framework để phát triển RESTful APIs.
D. Một công cụ để quản lý session trong ứng dụng web.