1. Trong Spring Boot, làm thế nào để định nghĩa một REST Controller?
A. Sử dụng annotation ‘@Controller’ và cấu hình thủ công các phương thức xử lý HTTP.
B. Sử dụng annotation ‘@RestController’ trên lớp, kết hợp với các annotation mapping như ‘@GetMapping’, ‘@PostMapping’ trên các phương thức.
C. Sử dụng annotation ‘@Service’ để xử lý các yêu cầu API.
D. Chỉ có thể định nghĩa REST Controller bằng cách sử dụng các tệp tin XML.
2. Khi sử dụng Spring Boot, làm thế nào để cấu hình một Controller xử lý các yêu cầu HTTP POST?
A. Sử dụng annotation ‘@GetMapping’ với đường dẫn tương ứng.
B. Sử dụng annotation ‘@PostMapping’ trên phương thức của Controller và chỉ định đường dẫn.
C. Sử dụng annotation ‘@PutMapping’ để xử lý các yêu cầu POST.
D. Chỉ có thể xử lý yêu cầu POST bằng cách sử dụng tệp tin cấu hình XML.
3. Dependency Injection (DI) trong Spring Framework giúp giải quyết vấn đề gì?
A. Tăng cường hiệu suất xử lý của các vòng lặp trong mã Java.
B. Giảm sự phụ thuộc giữa các đối tượng, giúp mã dễ đọc, dễ kiểm thử (testable) và dễ bảo trì hơn bằng cách cung cấp các dependency từ bên ngoài thay vì tạo chúng bên trong lớp.
C. Tự động biên dịch mã Java thành mã máy.
D. Quản lý bộ nhớ tự động cho ứng dụng Web.
4. Trong Java Web, `ServletContextListener` được sử dụng để làm gì?
A. Xử lý các yêu cầu HTTP đến một Servlet cụ thể.
B. Thực hiện các hành động khi ứng dụng Web được khởi tạo hoặc dừng lại, ví dụ như thiết lập kết nối cơ sở dữ liệu hoặc giải phóng tài nguyên.
C. Tạo ra các trang HTML động.
D. Quản lý dữ liệu phiên làm việc của người dùng.
5. Trong Java Web, khái niệm ‘Request Scope’ thường được sử dụng với đối tượng nào?
A. HttpSession
B. ServletContext
C. HttpServletRequest
D. ServletConfig
6. Tại sao cần phải quản lý `Transaction` trong các hoạt động liên quan đến cơ sở dữ liệu?
A. Để đảm bảo dữ liệu luôn được hiển thị dưới dạng văn bản thuần túy.
B. Để đảm bảo tính toàn vẹn và nhất quán của dữ liệu, các thao tác trong một transaction phải được thực hiện thành công tất cả hoặc không có thao tác nào được ghi nhận (nguyên tắc ACID).
C. Để tăng tốc độ truy cập cơ sở dữ liệu bằng cách bỏ qua các quy tắc ACID.
D. Chỉ cần thiết khi ứng dụng có nhiều người dùng cùng lúc.
7. Thành phần nào trong Spring MVC chịu trách nhiệm lựa chọn view để hiển thị sau khi Controller xử lý xong?
A. HandlerAdapter
B. DispatcherServlet
C. ViewResolver
D. ModelAndView
8. Servlet là gì trong ngữ cảnh phát triển Web Java?
A. Một thành phần giao diện người dùng (UI) được viết bằng Java để chạy trên trình duyệt.
B. Một chương trình Java chạy trên máy chủ web, xử lý các yêu cầu HTTP từ client và tạo ra các phản hồi HTTP.
C. Một cơ sở dữ liệu phân tán được viết bằng Java để lưu trữ dữ liệu ứng dụng Web.
D. Một công cụ dùng để tạo các tệp tin HTML động một cách độc lập với máy chủ.
9. Thành phần nào của Spring Security chịu trách nhiệm xử lý việc xác thực (authentication) người dùng?
A. AccessDecisionManager
B. SecurityContextHolder
C. AuthenticationManager
D. ExceptionTranslationFilter
10. Spring Boot Starter POMs là gì và mục đích của chúng?
A. Là các tệp tin XML dùng để cấu hình mọi thứ trong dự án Spring.
B. Là các dependency được đóng gói sẵn, chứa tất cả các dependency cần thiết cho một loại ứng dụng cụ thể (ví dụ: web, data, security), giúp đơn giản hóa việc quản lý dependency.
C. Là các plugin Maven dùng để chạy các bài kiểm thử tự động.
D. Là các mẫu giao diện người dùng (UI templates).
11. Trong Spring Security, khái niệm ‘Authorization’ đề cập đến điều gì?
A. Quá trình xác minh danh tính của người dùng (ví dụ: kiểm tra username và password).
B. Quyết định xem người dùng đã được xác thực có quyền truy cập vào một tài nguyên hoặc thực hiện một hành động cụ thể hay không.
C. Tạo ra các session mới cho mỗi người dùng.
D. Mã hóa các yêu cầu HTTP.
12. Trong Java Web, khái niệm ‘Session’ dùng để làm gì?
A. Lưu trữ thông tin về các trang web mà người dùng đã truy cập.
B. Lưu trữ thông tin trạng thái của một người dùng cụ thể trong suốt một khoảng thời gian tương tác với ứng dụng Web trên máy chủ.
C. Chỉ dùng để lưu trữ thông tin đăng nhập của người dùng.
D. Tự động tạo ra các tệp tin cache trên trình duyệt.
13. Trong Spring Boot, làm thế nào để cấu hình một ứng dụng chạy trên một cổng khác cổng mặc định 8080?
A. Sửa đổi trực tiếp mã nguồn của Spring Boot.
B. Cấu hình thuộc tính ‘server.port’ trong tệp tin `application.properties` hoặc `application.yml`.
C. Chỉ có thể thực hiện bằng cách sử dụng tệp tin `web.xml`.
D. Đổi tên tệp tin JAR của ứng dụng.
14. Thành phần nào trong Spring MVC được sử dụng để xử lý các yêu cầu HTTP và ánh xạ chúng tới các Controller phù hợp?
A. HandlerExceptionResolver
B. LocaleResolver
C. DispatcherServlet
D. ThemeResolver
15. Trong Spring Boot, làm thế nào để cấu hình một Web Filter tùy chỉnh?
A. Tạo một lớp kế thừa từ HttpServlet và đăng ký nó trong tệp tin cấu hình XML.
B. Tạo một lớp triển khai giao diện `Filter` và đánh dấu nó bằng annotation `@Component` hoặc cấu hình nó như một Bean trong một lớp cấu hình.
C. Sử dụng annotation `@Bean` trên phương thức `main` của ứng dụng.
D. Chỉ có thể thực hiện bằng cách sửa đổi tệp tin `web.xml`.
16. Spring Boot là gì và ưu điểm chính của nó so với Spring Framework truyền thống?
A. Spring Boot loại bỏ hoàn toàn nhu cầu về cấu hình XML.
B. Spring Boot cung cấp khả năng cấu hình tự động (auto-configuration), các starter dependencies, và embedding server, giúp giảm đáng kể thời gian và công sức thiết lập dự án Spring.
C. Spring Boot chỉ tập trung vào phát triển ứng dụng di động.
D. Spring Boot yêu cầu sử dụng một loại cơ sở dữ liệu cụ thể.
17. Trong phát triển Web Java, khái niệm ‘Request Dispatcher’ thường được sử dụng để làm gì?
A. Gửi email tự động đến người dùng.
B. Chuyển tiếp yêu cầu từ một Servlet/JSP đến một tài nguyên khác (Servlet, JSP, HTML) trong cùng một ứng dụng Web hoặc ứng dụng Web khác trên cùng một máy chủ.
C. Lưu trữ dữ liệu tạm thời trên trình duyệt.
D. Quản lý kết nối đến cơ sở dữ liệu.
18. Tại sao việc sử dụng JSON (JavaScript Object Notation) lại phổ biến trong các API Web hiện đại?
A. JSON chỉ có thể được đọc bởi các trình duyệt web, không thể sử dụng bởi các ứng dụng di động.
B. JSON có cấu trúc dữ liệu đơn giản, dễ đọc, dễ phân tích cú pháp (parsing) và có thể được sử dụng bởi hầu hết các ngôn ngữ lập trình.
C. JSON yêu cầu kết nối cơ sở dữ liệu để hoạt động.
D. JSON cung cấp khả năng mã hóa mạnh mẽ hơn XML.
19. Cookie trong phát triển Web Java có vai trò chính là gì?
A. Lưu trữ toàn bộ mã nguồn của ứng dụng trên trình duyệt của người dùng.
B. Lưu trữ một lượng nhỏ dữ liệu trên trình duyệt của người dùng để theo dõi trạng thái hoặc thông tin cá nhân hóa giữa các lần truy cập.
C. Tăng tốc độ tải trang bằng cách lưu trữ tạm thời các tài nguyên như hình ảnh và CSS.
D. Xác thực danh tính của người dùng một cách tự động mà không cần họ đăng nhập.
20. Trong phát triển Web Java, CORS (Cross-Origin Resource Sharing) là gì và tại sao nó quan trọng?
A. CORS là một cơ chế để tăng tốc độ truyền dữ liệu giữa máy chủ và trình duyệt.
B. CORS là một hệ thống để đảm bảo an toàn cho các kết nối cơ sở dữ liệu.
C. CORS là một cơ chế bảo mật cho phép các trang web yêu cầu tài nguyên từ một miền (domain) khác với miền của trang web đang tải, ngăn chặn các cuộc tấn công liên quan đến cross-site scripting (XSS).
D. CORS là viết tắt của ‘Computer Optimized Resource Sharing’ và liên quan đến việc chia sẻ tài nguyên máy tính.
21. Khi sử dụng Spring Data JPA, annotation nào thường được dùng để đánh dấu một lớp là một Entity (đối tượng ánh xạ với bảng trong CSDL)?
A. @Service
B. @Component
C. @Repository
D. @Entity
22. RESTful Web Services sử dụng phương thức HTTP nào cho các hoạt động CRUD (Create, Read, Update, Delete)?
A. Create: GET, Read: POST, Update: PUT, Delete: DELETE
B. Create: POST, Read: GET, Update: PUT, Delete: DELETE
C. Create: PUT, Read: GET, Update: POST, Delete: DELETE
D. Create: GET, Read: PUT, Update: POST, Delete: DELETE
23. Thành phần nào trong Spring Framework chịu trách nhiệm quản lý các bean (đối tượng được quản lý bởi Spring)?
A. DispatcherServlet
B. ApplicationContext (hoặc BeanFactory)
C. ViewResolver
D. TransactionManager
24. JSP (JavaServer Pages) khác biệt cơ bản với Servlet như thế nào?
A. Servlet được sử dụng để xử lý logic phía server, còn JSP được dùng để tạo giao diện người dùng động.
B. Servlet chỉ có thể trả về nội dung văn bản thuần túy, trong khi JSP có thể tạo ra các trang HTML, XML, hoặc các định dạng khác.
C. Servlet được biên dịch trước khi triển khai, còn JSP phải được biên dịch mỗi khi có yêu cầu từ trình duyệt.
D. Servlet là công nghệ cũ hơn và đã bị loại bỏ khỏi Java EE.
25. Khi phát triển ứng dụng Web Java, tại sao cần phải đóng các tài nguyên như Connection, Statement, ResultSet sau khi sử dụng?
A. Để tăng tốc độ biên dịch mã Java.
B. Để tránh rò rỉ tài nguyên (resource leaks), giải phóng bộ nhớ và các kết nối đến cơ sở dữ liệu, ngăn chặn tình trạng cạn kiệt tài nguyên hệ thống.
C. Để đảm bảo rằng dữ liệu được lưu trữ đúng cách trong cơ sở dữ liệu.
D. Việc này không cần thiết vì Java có Garbage Collector tự động quản lý.
26. Trong phát triển Web Java, tại sao việc sử dụng SSL/TLS là quan trọng?
A. SSL/TLS chỉ dùng để tăng tốc độ tải trang.
B. SSL/TLS mã hóa dữ liệu truyền giữa trình duyệt và máy chủ, đảm bảo tính bảo mật và xác thực, ngăn chặn nghe lén và giả mạo.
C. SSL/TLS cho phép ứng dụng Web truy cập trực tiếp vào hệ thống tệp của người dùng.
D. SSL/TLS là bắt buộc để chạy các ứng dụng Java Swing.
27. Thành phần nào của Java EE (Jakarta EE) được sử dụng để quản lý các giao dịch (transactions)?
A. JSP (JavaServer Pages)
B. Servlets
C. Java Transaction API (JTA)
D. JDBC (Java Database Connectivity)
28. Tại sao việc sử dụng connection pooling (gộp kết nối) là quan trọng trong các ứng dụng Web Java?
A. Để tạo ra các kết nối mới cho mỗi yêu cầu HTTP.
B. Để giảm thời gian và tài nguyên cần thiết để thiết lập các kết nối mới đến cơ sở dữ liệu, cải thiện hiệu suất và khả năng mở rộng của ứng dụng.
C. Để mã hóa tất cả dữ liệu được truyền qua kết nối.
D. Để đảm bảo tất cả các kết nối đều được đóng ngay lập tức sau khi sử dụng.
29. Trong Spring Boot, annotation ‘@SpringBootApplication’ thường được đặt ở đâu?
A. Trên mỗi lớp Model của ứng dụng.
B. Trên lớp Controller chịu trách nhiệm xử lý các yêu cầu chính.
C. Trên lớp chính (main class) của ứng dụng, nơi chứa phương thức ‘main’ để khởi chạy ứng dụng.
D. Trên lớp cấu hình (configuration class) cho cơ sở dữ liệu.
30. Trong Spring MVC, vai trò của ViewResolver là gì?
A. Xử lý các yêu cầu HTTP và gọi đến các Controller tương ứng.
B. Ánh xạ tên của View mà Controller trả về với tệp tin view thực tế (ví dụ: .jsp, .html) trong hệ thống tệp của ứng dụng.
C. Quản lý logic nghiệp vụ và tương tác với cơ sở dữ liệu.
D. Kiểm soát luồng dữ liệu giữa Model và View.
31. Thành phần nào trong Spring Security chịu trách nhiệm lấy thông tin người dùng (ví dụ: username, password, authorities) từ một nguồn dữ liệu và tạo ra một đối tượng UserDetails?
A. AuthenticationProvider
B. UserDetailsService
C. SecurityContextHolder
D. GrantedAuthority
32. Thành phần nào trong Spring Security chịu trách nhiệm kiểm soát quyền truy cập (authorization) vào các tài nguyên?
A. AuthenticationManager
B. UserDetailsService
C. AccessDecisionManager
D. UsernamePasswordAuthenticationFilter
33. Trong mô hình MVC (Model-View-Controller), vai trò của Controller là gì?
A. Chịu trách nhiệm hiển thị dữ liệu cho người dùng.
B. Quản lý logic nghiệp vụ và xử lý dữ liệu.
C. Tiếp nhận yêu cầu từ người dùng, tương tác với Model để lấy hoặc cập nhật dữ liệu, và sau đó chọn View phù hợp để hiển thị kết quả.
D. Lưu trữ và truy xuất dữ liệu từ cơ sở dữ liệu.
34. Maven là gì và vai trò chính của nó trong dự án Java Web?
A. Một framework để xây dựng giao diện người dùng (UI).
B. Một công cụ quản lý dự án và build tự động, giúp quản lý các dependency (thư viện), biên dịch mã nguồn, đóng gói ứng dụng và thực hiện các tác vụ build khác.
C. Một công cụ để tạo và quản lý cơ sở dữ liệu.
D. Một thư viện để xử lý các tác vụ mạng.
35. Trong Spring Security, cơ chế nào thường được sử dụng để xác thực người dùng?
A. Mã hóa dữ liệu người dùng bằng thuật toán MD5.
B. Sử dụng các lớp AuthenticationProvider để kiểm tra thông tin đăng nhập (username/password) với các nguồn dữ liệu khác nhau (ví dụ: cơ sở dữ liệu, LDAP).
C. Tự động tạo session cho mọi người dùng truy cập ứng dụng.
D. Yêu cầu người dùng cài đặt chứng chỉ SSL trên trình duyệt của họ.
36. Trong Spring MVC, `ModelAndView` là gì và nó dùng để làm gì?
A. Là một đối tượng chỉ chứa tên của view cần hiển thị.
B. Là một đối tượng chứa cả Model (dữ liệu) và tên của View mà Controller muốn trả về cho client.
C. Là một đối tượng dùng để quản lý các yêu cầu HTTP.
D. Là một đối tượng dùng để cấu hình cơ sở dữ liệu.
37. Trong phát triển ứng dụng Web với Java, mục đích chính của việc sử dụng các framework như Spring MVC là gì?
A. Tăng cường bảo mật cho ứng dụng bằng cách mã hóa mọi dữ liệu truyền tải.
B. Cung cấp một cấu trúc và tập hợp các công cụ để đơn giản hóa quá trình phát triển ứng dụng Web theo mô hình MVC, giúp quản lý request, response và view hiệu quả.
C. Tự động hóa việc tạo giao diện người dùng (UI) bằng cách sử dụng các mẫu thiết kế có sẵn mà không cần lập trình viên can thiệp.
D. Chỉ tập trung vào việc quản lý cơ sở dữ liệu và các thao tác CRUD, bỏ qua logic nghiệp vụ.
38. Thành phần nào của Java EE (hiện là Jakarta EE) chuyên xử lý các yêu cầu HTTP và tạo ra các phản hồi động?
A. Enterprise JavaBeans (EJB)
B. Java Message Service (JMS)
C. Servlets và JavaServer Pages (JSP)
D. Java Naming and Directory Interface (JNDI)
39. Hibernate là gì và vai trò của nó trong phát triển ứng dụng Web Java?
A. Một framework để tạo giao diện người dùng (UI) dựa trên các thành phần Java Swing.
B. Một Object-Relational Mapping (ORM) framework giúp ánh xạ các đối tượng Java với các bảng trong cơ sở dữ liệu quan hệ, đơn giản hóa việc tương tác với CSDL.
C. Một thư viện để xử lý các yêu cầu mạng và giao tiếp giữa các máy chủ.
D. Một công cụ dùng để đóng gói và triển khai các ứng dụng Java EE.
40. Tại sao việc sử dụng PreparedStatements trong JDBC lại được khuyến khích hơn so với Statement thông thường khi thực hiện truy vấn SQL có tham số?
A. PreparedStatements luôn thực thi nhanh hơn Statement, bất kể số lượng tham số.
B. PreparedStatements giúp ngăn chặn lỗi cú pháp SQL và cải thiện hiệu suất bằng cách tiền biên dịch câu lệnh SQL, đồng thời giảm thiểu rủi ro tấn công SQL Injection.
C. PreparedStatements chỉ hỗ trợ các câu lệnh SELECT, không hỗ trợ INSERT, UPDATE hay DELETE.
D. Statement tự động xử lý việc đóng kết nối, còn PreparedStatements yêu cầu đóng thủ công.
41. Trong phát triển Web Java, ‘deployment descriptor’ (ví dụ: web.xml) có vai trò gì?
A. Chứa mã nguồn của ứng dụng.
B. Định nghĩa cách ứng dụng Web được triển khai và cấu hình trên máy chủ Web.
C. Lưu trữ dữ liệu người dùng.
D. Xác định giao diện người dùng của ứng dụng.
42. Trong Spring Security, khái niệm ‘Authorization’ liên quan đến việc gì?
A. Xác minh danh tính của người dùng.
B. Xác định xem người dùng đã xác thực có quyền truy cập vào một tài nguyên hay không.
C. Tạo và quản lý các phiên làm việc của người dùng.
D. Bảo vệ ứng dụng khỏi các cuộc tấn công CSRF.
43. Thành phần nào của Java EE (hiện là Jakarta EE) cung cấp các dịch vụ quản lý vòng đời và môi trường thực thi cho các Enterprise JavaBeans (EJBs)?
A. JDBC API
B. Servlet API
C. EJB Container
D. JSP API
44. Thành phần ‘View’ trong kiến trúc MVC của ứng dụng Web Java có vai trò gì?
A. Xử lý logic nghiệp vụ và tương tác với cơ sở dữ liệu.
B. Nhận các yêu cầu từ người dùng và điều phối chúng.
C. Trình bày dữ liệu cho người dùng dưới dạng giao diện người dùng (UI).
D. Quản lý trạng thái của phiên làm việc.
45. Trong Java Web, Filter được sử dụng để làm gì?
A. Chỉ để hiển thị nội dung tĩnh.
B. Để thực hiện các tác vụ tiền xử lý hoặc hậu xử lý cho các yêu cầu và phản hồi HTTP.
C. Để quản lý kết nối cơ sở dữ liệu.
D. Để định nghĩa các trang JSP.
46. Trong Java Web, ‘Context Path’ của một ứng dụng Web đại diện cho điều gì?
A. Đường dẫn tuyệt đối đến thư mục gốc của ứng dụng trên máy chủ.
B. Phần của URL dùng để xác định ứng dụng Web cụ thể trên máy chủ.
C. Tên miền được sử dụng để truy cập ứng dụng.
D. Cổng mà máy chủ Web đang lắng nghe.
47. Trong Spring Boot, ’embedded Tomcat’ có nghĩa là gì?
A. Tomcat được cài đặt như một dịch vụ hệ thống riêng biệt.
B. Tomcat được đóng gói và chạy cùng với ứng dụng, cho phép ứng dụng tự khởi chạy mà không cần máy chủ Web độc lập.
C. Tomcat được sử dụng để quản lý các kết nối mạng.
D. Tomcat chỉ được sử dụng cho các ứng dụng Java cũ.
48. Trong Java Web, khái niệm ‘Session’ dùng để làm gì?
A. Lưu trữ thông tin tạm thời trên máy chủ cho mỗi yêu cầu HTTP riêng lẻ.
B. Lưu trữ thông tin cá nhân của người dùng trên trình duyệt của họ.
C. Lưu trữ trạng thái và dữ liệu liên quan đến một phiên làm việc của người dùng trên máy chủ.
D. Đảm bảo tính bảo mật cho toàn bộ ứng dụng Web bằng cách mã hóa mọi dữ liệu truyền tải.
49. Trong Spring Security, cơ chế nào được sử dụng để xác thực người dùng (kiểm tra danh tính)?
A. Authorization
B. Authentication
C. Session Management
D. CSRF Protection
50. Khi làm việc với RESTful Web Services, định dạng dữ liệu nào là phổ biến nhất để trao đổi thông tin?
A. XML
B. JSON
C. HTML
D. CSV
51. Trong Java Web, khái niệm ‘Context Initialization Parameter’ được sử dụng để làm gì?
A. Để định nghĩa các route cho ứng dụng.
B. Để cung cấp các tham số cấu hình ban đầu cho toàn bộ Web Application, có thể truy cập thông qua ServletContext.
C. Để xác định các quy tắc bảo mật cho từng URL.
D. Để quản lý kết nối tới các dịch vụ bên ngoài.
52. Thư viện Thymeleaf là một ví dụ điển hình cho loại công nghệ nào trong phát triển Web Java?
A. ORM Framework
B. Dependency Injection Framework
C. Template Engine
D. Logging Framework
53. Trong Java Web, cookie là gì và mục đích sử dụng phổ biến của nó?
A. Cookie là một cơ chế để lưu trữ thông tin trên máy chủ, giúp theo dõi trạng thái của nhiều người dùng.
B. Cookie là một đoạn mã nhỏ được gửi từ máy chủ đến trình duyệt và lưu trữ trên trình duyệt để ghi nhớ thông tin người dùng.
C. Cookie được sử dụng để xác thực người dùng và cấp quyền truy cập vào các tài nguyên nhạy cảm.
D. Cookie là một phương thức để truyền dữ liệu giữa các ứng dụng Web khác nhau.
54. Thư viện Hibernate, một Object-Relational Mapping (ORM) framework phổ biến cho Java, có vai trò chính là gì trong phát triển ứng dụng Web?
A. Cung cấp một container cho các Enterprise JavaBeans.
B. Quản lý vòng đời của các đối tượng Java và ánh xạ chúng tới các bảng trong cơ sở dữ liệu quan hệ.
C. Xử lý các yêu cầu HTTP và tạo ra các trang HTML động.
D. Cung cấp các dịch vụ messaging giữa các thành phần của ứng dụng.
55. Thành phần nào chịu trách nhiệm quản lý các giao dịch trong Java EE (Jakarta EE) khi làm việc với EJB hoặc JPA?
A. Servlet Container
B. JMS Provider
C. Transaction Manager (JTA)
D. JSP Engine
56. Trong phát triển ứng dụng Web với Java, đặc điểm nào sau đây mô tả chính xác nhất vai trò của Servlet trong kiến trúc MVC?
A. Servlet chịu trách nhiệm xử lý logic nghiệp vụ và tương tác với cơ sở dữ liệu.
B. Servlet đóng vai trò là Controller, nhận request, xử lý và chuyển hướng tới View hoặc Model phù hợp.
C. Servlet chỉ có nhiệm vụ hiển thị dữ liệu ra giao diện người dùng.
D. Servlet được sử dụng để định nghĩa cấu trúc dữ liệu và các quy tắc xác thực.
57. Thư viện nào sau đây thường được sử dụng để ánh xạ các đối tượng Java với các đối tượng trong cơ sở dữ liệu (sử dụng JPA)?
A. Logback
B. Jackson
C. Hibernate
D. JUnit
58. Thành phần nào trong kiến trúc Java EE (Jakarta EE) được thiết kế để xử lý các yêu cầu HTTP và tạo ra nội dung phản hồi động?
A. JMS (Java Message Service)
B. JTA (Java Transaction API)
C. Servlet
D. JPA (Java Persistence API)
59. Trong Java Web, Listener là gì và mục đích sử dụng của nó?
A. Listener chỉ dùng để xử lý lỗi trong ứng dụng.
B. Listener là một đối tượng lắng nghe và phản ứng lại các sự kiện quan trọng trong vòng đời của Web Application hoặc Servlet.
C. Listener được sử dụng để thay đổi nội dung của các yêu cầu HTTP.
D. Listener có chức năng tương tự như Filter nhưng chỉ áp dụng cho một Servlet cụ thể.
60. Thư viện JDBC (Java Database Connectivity) trong Java Web được sử dụng để làm gì?
A. Để xử lý các yêu cầu HTTP và trả về phản hồi cho client.
B. Để quản lý vòng đời của các đối tượng (beans) trong ứng dụng.
C. Để cho phép ứng dụng Java tương tác với các hệ quản trị cơ sở dữ liệu.
D. Để tạo giao diện người dùng đồ họa cho ứng dụng Web.
61. Trong Java Web, ‘MVC’ là viết tắt của gì và vai trò của từng thành phần?
A. Model-View-Controller: Model quản lý dữ liệu, View hiển thị, Controller xử lý logic.
B. Model-View-Controller: Model xử lý logic, View quản lý dữ liệu, Controller hiển thị.
C. Model-View-Controller: Model hiển thị, View xử lý logic, Controller quản lý dữ liệu.
D. Model-View-Controller: Model hiển thị, View quản lý dữ liệu, Controller xử lý logic.
62. Thư viện Spring Data JPA cung cấp lợi ích gì cho việc tương tác với cơ sở dữ liệu?
A. Giúp xây dựng giao diện người dùng.
B. Tự động hóa việc triển khai các hoạt động CRUD (Create, Read, Update, Delete) và các truy vấn tùy chỉnh.
C. Cung cấp công cụ để phân tích log.
D. Quản lý các tác vụ bất đồng bộ.
63. Khi xây dựng ứng dụng Web Java, khái niệm ‘Stateless’ trong RESTful Web Services có ý nghĩa gì?
A. Mỗi client phải duy trì trạng thái của server.
B. Server không lưu trữ bất kỳ thông tin trạng thái nào về client giữa các yêu cầu.
C. Ứng dụng không được phép sử dụng session.
D. Tất cả dữ liệu đều được lưu trữ trên client.
64. Thành phần nào trong Java Web xử lý các yêu cầu tới một URL cụ thể và tạo ra phản hồi?
A. Filter
B. Listener
C. Servlet
D. Bean
65. Trong Spring Security, khái niệm ‘Role’ khác với ‘Permission’ như thế nào?
A. Role là một tập hợp các Permission.
B. Permission là một tập hợp các Role.
C. Không có sự khác biệt, hai khái niệm này có thể thay thế cho nhau.
D. Role chỉ áp dụng cho người dùng, còn Permission chỉ áp dụng cho tài nguyên.
66. Trong Java Web, khi nào thì một Session mới được tạo ra?
A. Ngay khi ứng dụng Web được khởi động.
B. Khi một yêu cầu HTTP được gửi đến ứng dụng và server quyết định tạo một session mới cho client đó.
C. Chỉ khi người dùng đăng nhập thành công.
D. Khi một JSP được yêu cầu lần đầu tiên.
67. Mục đích của @Autowired annotation trong Spring là gì?
A. Để định nghĩa một bean.
B. Để thực hiện một phương thức sau khi bean được tạo.
C. Để tự động inject một bean dependency vào một bean khác.
D. Để cấu hình các thuộc tính của một bean.
68. Khi triển khai một ứng dụng Web Java, file cấu hình nào thường chứa thông tin về các Servlet, Filter, Listener và các ánh xạ URL?
A. application.properties
B. web.xml
C. pom.xml
D. persistence.xml
69. Khi một request HTTP được gửi đến một ứng dụng Web Java, thứ tự xử lý chung theo mô hình Servlet là gì?
A. JSP -> Controller -> View -> Model
B. Model -> Controller -> View -> JSP
C. Controller -> Model -> View -> JSP
D. View -> Model -> Controller -> JSP
70. Trong Spring Boot, dependency ‘spring-boot-starter-web’ cung cấp những gì?
A. Chỉ các thư viện cần thiết cho việc kết nối cơ sở dữ liệu.
B. Các thư viện cần thiết để xây dựng các ứng dụng Web MVC dựa trên Spring, bao gồm cả Tomcat nhúng sẵn.
C. Các công cụ để phát triển ứng dụng di động.
D. Các thư viện cho việc xử lý tin nhắn.
71. Khái niệm ‘CSRF’ (Cross-Site Request Forgery) trong phát triển Web Java đề cập đến 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 đánh cắp thông tin nhạy cảm từ trình duyệt của người dùng.
C. Tấn công lừa người dùng thực hiện các hành động không mong muốn trên ứng dụng Web mà họ đang đăng nhập.
D. Tấn công nghe lén các gói tin truyền tải giữa client và server.
72. Khi sử dụng Spring Boot để tạo một Web API, đối tượng nào thường được dùng để định nghĩa các endpoint (điểm cuối) của API?
A. Service classes
B. Repository classes
C. Controller classes (với annotation như @RestController, @GetMapping, @PostMapping)
D. Configuration classes
73. Thư viện nào thường được sử dụng để xử lý JSON trong các ứng dụng Spring Boot?
A. JAXB
B. Jackson
C. Gson
D. Both B and C
74. Thành phần nào của Java EE (Jakarta EE) cung cấp một môi trường lập trình cho các ứng dụng Web, bao gồm Servlet, JSP, Filter và Listener?
A. JMS (Java Message Service)
B. Web Container
C. EJB Container
D. JTA (Java Transaction API)
75. Thư viện Spring Boot giúp ích gì cho việc phát triển ứng dụng Web Java?
A. Spring Boot chỉ tập trung vào việc quản lý cơ sở dữ liệu.
B. Spring Boot giúp đơn giản hóa việc cấu hình và triển khai các ứng dụng Spring, cho phép tạo các ứng dụng độc lập, sẵn sàng cho sản xuất.
C. Spring Boot là một framework hoàn toàn mới và không liên quan đến Spring Framework.
D. Spring Boot chỉ hỗ trợ phát triển ứng dụng desktop.
76. Khi phát triển ứng dụng Web với Java, việc sử dụng Connection Pooling mang lại lợi ích gì?
A. Tăng cường bảo mật bằng cách mã hóa tất cả các kết nối cơ sở dữ liệu.
B. Giảm thời gian chờ đợi và tài nguyên hệ thống bằng cách tái sử dụng các kết nối cơ sở dữ liệu đã mở.
C. Đảm bảo tính nhất quán dữ liệu bằng cách áp dụng các giao dịch ACID.
D. Cho phép nhiều người dùng truy cập đồng thời vào ứng dụng mà không cần quản lý phiên.
77. Trong Java Web, ‘request scope’ và ‘session scope’ khác nhau như thế nào?
A. Request scope tồn tại trong suốt vòng đời của một phiên làm việc, còn session scope chỉ tồn tại trong một yêu cầu.
B. Session scope tồn tại trong suốt vòng đời của một phiên làm việc, còn request scope chỉ tồn tại trong một yêu cầu.
C. Cả hai đều tồn tại trong suốt vòng đời của ứng dụng.
D. Request scope chỉ dùng để lưu trữ dữ liệu tạm thời, còn session scope dùng để lưu trữ dữ liệu lâu dài.
78. Trong kiến trúc RESTful Web Services, phương thức HTTP nào thường được sử dụng để tạo mới một tài nguyên?
A. GET
B. POST
C. PUT
D. DELETE
79. Khi sử dụng JSP (JavaServer Pages), mục đích chính của việc sử dụng các thẻ JSP (JSP tags) là gì?
A. Để định nghĩa cấu trúc HTML của trang web một cách tĩnh.
B. Để nhúng mã Java vào trang HTML nhằm tạo ra nội dung động.
C. Để quản lý phiên làm việc (session) của người dùng một cách hiệu quả.
D. Để thực hiện các thao tác xử lý dữ liệu phức tạp và logic nghiệp vụ.
80. Trong Spring MVC, đối tượng nào chịu trách nhiệm xử lý các request và trả về view name hoặc Model?
A. Model
B. View
C. DispatcherServlet
D. HandlerAdapter
81. Thành phần nào trong Spring Security chịu trách nhiệm xác thực người dùng (authentication)?
A. Authorization Manager
B. Authentication Manager
C. Security Context
D. Password Encoder
82. Mục đích của ‘Spring AOP’ (Aspect-Oriented Programming) là gì?
A. Quản lý các đối tượng trong ứng dụng.
B. Tách rời các ‘cross-cutting concerns’ (như logging, transaction management) khỏi logic nghiệp vụ chính.
C. Xử lý các yêu cầu HTTP.
D. Tạo giao diện người dùng đồ họa.
83. Mục đích của ‘Connection Pooling’ trong các ứng dụng web Java là gì?
A. Giảm kích thước của các tệp tin web.
B. Tái sử dụng các kết nối cơ sở dữ liệu đã được thiết lập, giảm thời gian và tài nguyên cần thiết để mở kết nối mới.
C. Tăng cường bảo mật cho các tệp tin cấu hình.
D. Phân tích hiệu năng của ứng dụng web.
84. Khi làm việc với các tệp tin upload trong ứng dụng web Java, thư viện nào thường được sử dụng để xử lý các tệp tin này?
A. Apache Commons Lang
B. Apache Commons FileUpload
C. Mockito
D. SLF4j
85. Khái niệm ‘Dependency Injection’ (DI) trong Spring Framework giúp giải quyết vấn đề gì?
A. Tăng cường hiệu năng xử lý của ứng dụng.
B. Giảm sự phụ thuộc giữa các thành phần (components), làm cho mã dễ kiểm thử và bảo trì hơn.
C. Tự động hóa việc tạo và quản lý phiên bản của các đối tượng.
D. Cung cấp cơ chế định tuyến yêu cầu cho các dịch vụ web.
86. Trong Java EE, khái niệm ‘EJB’ (Enterprise JavaBeans) chủ yếu được dùng để làm gì?
A. Tạo ra các trang web động.
B. Xây dựng các thành phần logic nghiệp vụ phía server, có khả năng quản lý transaction và bảo mật.
C. Kết nối với cơ sở dữ liệu.
D. Xử lý các yêu cầu HTTP từ trình duyệt.
87. Spring Security sử dụng cơ chế nào để bảo vệ các URL endpoints khỏi truy cập trái phép?
A. Token-based authentication
B. Request Matching và Rule-based Access Control
C. Session fixation protection
D. CSRF protection
88. Trong mô hình MVC, ‘Controller’ có vai trò gì?
A. Hiển thị dữ liệu cho người dùng.
B. Xử lý các yêu cầu từ người dùng, tương tác với Model và chọn View phù hợp.
C. Lưu trữ và quản lý dữ liệu.
D. Quản lý cấu hình của ứng dụng.
89. Khái niệm ‘Thread-Safety’ trong Java web development quan trọng nhất khi nào?
A. Khi ứng dụng chỉ có một người dùng truy cập.
B. Khi các đối tượng được chia sẻ giữa nhiều luồng (threads) cùng lúc, ví dụ như các Servlet hoặc các bean trong Spring.
C. Khi ứng dụng chỉ thực hiện các thao tác đọc dữ liệu.
D. Khi sử dụng các cấu trúc dữ liệu không thay đổi (immutable data structures).
90. Trong Java web, ‘HTTP Cookies’ được sử dụng để làm gì?
A. Chỉ định địa chỉ IP của máy chủ.
B. Lưu trữ các thông tin nhỏ trên trình duyệt của người dùng để duy trì trạng thái giữa các yêu cầu.
C. Tăng tốc độ tải trang web.
D. Mã hóa dữ liệu truyền giữa client và server.
91. Trong Spring MVC, vai trò của ‘DispatcherServlet’ là gì?
A. Xử lý trực tiếp logic nghiệp vụ của ứng dụng.
B. Là front controller, điều phối các yêu cầu đến các controller phù hợp.
C. Quản lý kết nối cơ sở dữ liệu và transaction.
D. Xử lý việc hiển thị dữ liệu ra các view.
92. Mục đích của việc sử dụng ‘Maven Archetypes’ là gì?
A. Kiểm tra cú pháp của mã nguồn.
B. Tạo cấu trúc dự án ban đầu dựa trên các mẫu định sẵn.
C. Quản lý các plugin của Maven.
D. Phân tích các dependency conflict.
93. Trong Spring Boot, annotation ‘@SpringBootApplication’ thường được đặt ở đâu trong cấu trúc dự án?
A. Trong các lớp Controller.
B. Trong lớp Main của ứng dụng, thường là lớp có phương thức main().
C. Trong các lớp Service.
D. Trong các lớp cấu hình cơ sở dữ liệu.
94. Mục đích của việc sử dụng ‘Maven’ hoặc ‘Gradle’ trong dự án Java web là gì?
A. Thiết kế giao diện người dùng.
B. Quản lý dependency, build và deployment của dự án.
C. Kiểm thử đơn vị (unit testing) cho các thành phần UI.
D. Xử lý logic phía client.
95. Trong Spring Security, ‘AuthenticationProvider’ chịu trách nhiệm gì?
A. Xác định xem người dùng có quyền truy cập vào tài nguyên hay không.
B. Thực hiện quá trình xác thực (ví dụ: kiểm tra username/password) và trả về một đối tượng Authentication.
C. Quản lý các phiên làm việc của người dùng.
D. Mã hóa mật khẩu người dùng.
96. Khi nào nên sử dụng RESTful Web Services thay vì SOAP Web Services trong ứng dụng web Java?
A. Khi yêu cầu về bảo mật cấp độ cao và tuân thủ các chuẩn nghiêm ngặt là ưu tiên hàng đầu.
B. Khi ứng dụng cần trao đổi dữ liệu phức tạp với nhiều kiểu dữ liệu đa dạng và cần sự chặt chẽ về schema.
C. Khi cần một giao thức nhẹ, linh hoạt, dựa trên các tiêu chuẩn web hiện có như HTTP.
D. Khi cần các tính năng giao dịch phân tán phức tạp và cơ chế đảm bảo tin cậy cao.
97. Khi nào nên sử dụng ‘Spring Data JPA’ trong một dự án web Java?
A. Khi cần xây dựng các dịch vụ web SOAP.
B. Khi muốn đơn giản hóa việc truy cập và thao tác với cơ sở dữ liệu quan hệ bằng cách sử dụng các repository JPA.
C. Khi cần quản lý các phiên bản của mã nguồn.
D. Khi cần triển khai các ứng dụng desktop.
98. Thư viện nào thường được dùng để thực hiện các phép biến đổi XML trong Java web applications?
A. Jackson
B. JAXB (Java Architecture for XML Binding)
C. Log4j
D. Hibernate
99. Mục đích của việc sử dụng ‘JPA Entities’ là gì?
A. Quản lý các tệp tin cấu hình.
B. Đại diện cho các bảng trong cơ sở dữ liệu và các thuộc tính của chúng, cho phép thao tác dữ liệu thông qua các đối tượng Java.
C. Xử lý các yêu cầu HTTP.
D. Tạo các tệp tin HTML.
100. Trong Servlet API, phương thức ‘doGet()’ và ‘doPost()’ của lớp HttpServlet được gọi khi nào?
A. Chỉ khi có lỗi xảy ra trong ứng dụng.
B. Khi client gửi yêu cầu HTTP tương ứng với phương thức GET hoặc POST.
C. Khi ứng dụng được khởi động.
D. Khi có sự thay đổi trong cấu hình của máy chủ web.
101. Thư viện nào thường được sử dụng để xử lý các tệp JSON trong Java?
A. Apache Commons IO
B. Gson hoặc Jackson
C. Logback
D. JPA Hibernate
102. Khái niệm ‘ORM’ (Object-Relational Mapping) trong Java web development giúp gì?
A. Tăng tốc độ tải trang web.
B. Cho phép ánh xạ các lớp đối tượng Java tới các bảng trong cơ sở dữ liệu quan hệ, đơn giản hóa việc truy cập dữ liệu.
C. Quản lý vòng đời của các Servlet.
D. Xử lý các vấn đề về đa luồng.
103. Khái niệm ‘CSRF’ (Cross-Site Request Forgery) là gì và làm thế nào để phòng chống trong ứng dụng web Java?
A. Lỗi bảo mật cho phép truy cập dữ liệu nhạy cảm; phòng chống bằng SSL/TLS.
B. Một cuộc tấn công khiến người dùng thực hiện hành động không mong muốn trên ứng dụng web; phòng chống bằng cách sử dụng CSRF tokens.
C. Lỗi làm lộ thông tin phiên làm việc; phòng chống bằng cách sử dụng HTTPS.
D. Tấn công từ chối dịch vụ (DoS); phòng chống bằng cách giới hạn tốc độ yêu cầu.
104. Thành phần nào trong Spring Security chịu trách nhiệm quản lý quyền truy cập (authorization) vào các tài nguyên?
A. AuthenticationManager
B. AccessDecisionManager
C. UserDetailsService
D. PasswordEncoder
105. Trong Spring MVC, ‘ViewResolver’ có vai trò gì?
A. Xử lý logic nghiệp vụ.
B. Xác định tên của view (ví dụ: JSP, HTML) sẽ được trả về cho client dựa trên giá trị trả về từ controller.
C. Quản lý phiên làm việc của người dùng.
D. Xác thực người dùng.
106. Mục đích chính của việc sử dụng JSP (JavaServer Pages) trong phát triển web là gì?
A. Cung cấp API để quản lý cơ sở dữ liệu.
B. Tạo ra các trang web động bằng cách nhúng mã Java vào HTML.
C. Xây dựng kiến trúc ứng dụng theo mẫu Model-View-Controller.
D. Thực hiện các tác vụ xử lý logic nghiệp vụ phức tạp.
107. Khái niệm ‘Idempotence’ trong các phương thức HTTP như GET, PUT, DELETE nghĩa là gì?
A. Yêu cầu phải được xử lý ngay lập tức.
B. Việc thực hiện nhiều lần cùng một yêu cầu sẽ có cùng một tác dụng như thực hiện một lần duy nhất.
C. Yêu cầu phải luôn nhận được phản hồi.
D. Yêu cầu phải được mã hóa.
108. Thành phần nào của Servlet API chịu trách nhiệm gửi phản hồi (response) về cho client?
A. HttpServletRequest
B. HttpSession
C. ServletContext
D. HttpServletResponse
109. Trong Java, ‘Checked Exceptions’ và ‘Unchecked Exceptions’ khác nhau cơ bản ở điểm nào?
A. Checked Exceptions phải được bắt hoặc khai báo trong phương thức, Unchecked Exceptions thì không.
B. Unchecked Exceptions luôn xảy ra do lỗi lập trình, Checked Exceptions do lỗi hệ thống.
C. Checked Exceptions chỉ xảy ra trong các ứng dụng web, Unchecked Exceptions chỉ xảy ra trong ứng dụng desktop.
D. Checked Exceptions là các lỗi fatal, Unchecked Exceptions là lỗi không nghiêm trọng.
110. Thành phần nào trong kiến trúc MVC của Spring thường chịu trách nhiệm xử lý logic nghiệp vụ và tương tác với lớp dữ liệu (DAO)?
A. View
B. Controller
C. Model
D. Service Layer
111. Khi phát triển ứng dụng web Java, khái niệm ‘Statelessness’ trong RESTful Web Services có ý nghĩa gì?
A. Mỗi yêu cầu đều phải chứa toàn bộ thông tin cần thiết để xử lý, server không lưu trữ trạng thái của client giữa các yêu cầu.
B. Server phải lưu trữ trạng thái của tất cả các client.
C. Ứng dụng không được phép sử dụng các công nghệ phía client.
D. Chỉ cho phép giao tiếp theo mô hình publish-subscribe.
112. Mục đích của ‘Spring Batch’ là gì trong phát triển ứng dụng web Java?
A. Xây dựng giao diện người dùng tương tác.
B. Thực hiện các tác vụ xử lý dữ liệu lớn (batch processing) theo định kỳ hoặc theo sự kiện.
C. Quản lý các dịch vụ web RESTful.
D. Kiểm soát luồng truy cập của người dùng.
113. Trong Spring Boot, annotation ‘@Autowired’ được sử dụng để làm gì?
A. Đánh dấu một lớp là một Controller.
B. Tự động inject các dependency (các đối tượng khác) vào một bean.
C. Cấu hình Spring Security.
D. Xác định một phương thức là một REST endpoint.
114. Trong Java EE, ‘JSF’ (JavaServer Faces) là một framework được sử dụng cho mục đích gì?
A. Xây dựng các dịch vụ web SOAP.
B. Phát triển giao diện người dùng (UI) cho các ứng dụng web dựa trên component.
C. Quản lý kết nối cơ sở dữ liệu.
D. Xử lý logic nghiệp vụ phía server.
115. Mục đích của ‘WebSockets’ trong phát triển ứng dụng web Java là gì?
A. Chỉ cho phép giao tiếp một chiều từ server đến client.
B. Thiết lập kênh giao tiếp hai chiều, liên tục (full-duplex) giữa client và server.
C. Cung cấp cơ chế cho phép tải lên các tệp tin lớn.
D. Xử lý các yêu cầu HTTP theo batch.
116. Cơ chế ‘Session Management’ trong ứng dụng web Java dùng để làm gì?
A. Lưu trữ thông tin cấu hình của máy chủ web.
B. Theo dõi trạng thái và thông tin của một người dùng cụ thể trong suốt quá trình tương tác.
C. Cung cấp cơ chế caching cho các tài nguyên tĩnh.
D. Quản lý các yêu cầu HTTP đồng thời.
117. Trong Spring Boot, annotation ‘@RestController’ có ý nghĩa gì?
A. Đánh dấu một lớp là một Component có thể được quản lý bởi Spring.
B. Kết hợp ‘@Controller’ và ‘@ResponseBody’, chỉ định rằng các phương thức trả về dữ liệu trực tiếp dưới dạng body của phản hồi HTTP.
C. Cấu hình các bộ lọc cho ứng dụng.
D. Quản lý các kết nối cơ sở dữ liệu.
118. Thư viện nào thường được sử dụng trong Java để thực hiện các thao tác với cơ sở dữ liệu quan hệ?
A. Jackson
B. Log4j
C. JDBC (Java Database Connectivity)
D. JAX-WS
119. Trong phát triển ứng dụng web Java, Servlet API cung cấp các lớp và giao diện nào để xử lý yêu cầu HTTP?
A. JSP, EL, JSTL
B. HttpServletRequest, HttpServletResponse, GenericServlet
C. JDBC, DAO, Connection Pool
D. Spring MVC, Controllers, View Resolvers
120. Mục đích của việc sử dụng ‘Spring Profiles’ là gì?
A. Xây dựng các microservices.
B. Cho phép cấu hình ứng dụng khác nhau cho các môi trường khác nhau (ví dụ: dev, staging, prod).
C. Quản lý các tệp tin tĩnh.
D. Tự động hóa việc kiểm thử API.
121. Thành phần nào trong Spring Boot thường được sử dụng để xử lý các yêu cầu RESTful?
A. Service
B. Repository
C. Controller (thường với annotation ‘@RestController’)
D. Component
122. Trong Java Web, khái niệm ‘stateless’ trong RESTful Web Services có nghĩa là gì?
A. Mỗi yêu cầu từ client phải chứa tất cả thông tin cần thiết để máy chủ xử lý, máy chủ không lưu trữ bất kỳ trạng thái nào của client giữa các yêu cầu.
B. Máy chủ sẽ lưu trữ trạng thái của tất cả các client.
C. Ứng dụng không cần kết nối internet để hoạt động.
D. Dữ liệu chỉ được gửi đi một lần.
123. Trong Java Web, ‘Web Socket’ là gì và nó khác với HTTP như thế nào?
A. Web Socket là một giao thức truyền dữ liệu một chiều từ máy chủ đến máy khách.
B. Web Socket cung cấp một kênh giao tiếp hai chiều, toàn song công (full-duplex) giữa máy khách và máy chủ qua một kết nối TCP duy nhất, cho phép truyền dữ liệu theo thời gian thực, khác với mô hình request-response của HTTP.
C. Web Socket chỉ có thể gửi dữ liệu văn bản.
D. Web Socket yêu cầu mỗi yêu cầu phải được khởi tạo bởi máy chủ.
124. Trong Spring Boot, làm thế nào để triển khai một ứng dụng web ra file JAR độc lập có thể chạy được?
A. Bằng cách sử dụng Maven hoặc Gradle để đóng gói ứng dụng thành một file JAR có chứa máy chủ nhúng (embedded server) như Tomcat hoặc Jetty.
B. Chỉ cần biên dịch mã Java và chạy nó.
C. Phải ghi đè phương thức `main` của tất cả các lớp.
D. Yêu cầu cài đặt một máy chủ web riêng biệt trên hệ thống.
125. Dependency Injection (DI) trong Spring là gì và nó giải quyết vấn đề gì?
A. Là quá trình một đối tượng tự tạo ra các đối tượng phụ thuộc của nó.
B. Là quá trình Spring Framework cung cấp các đối tượng phụ thuộc cho một đối tượng thay vì đối tượng đó tự tạo ra chúng, giúp giảm sự phụ thuộc chặt chẽ và tăng tính module hóa.
C. Là cơ chế để xử lý các ngoại lệ trong ứng dụng.
D. Là cách để định nghĩa các thuộc tính của một lớp.
126. Trong Spring MVC, annotation ‘@Controller’ được sử dụng để làm gì?
A. Đánh dấu một lớp là một Service chứa logic nghiệp vụ.
B. Đánh dấu một lớp là một Component có thể được quản lý bởi Spring container.
C. Đánh dấu một lớp là một Web Controller, chịu trách nhiệm xử lý các yêu cầu HTTP và trả về các đối tượng Model hoặc View, kết luận Lý giải.
D. Đánh dấu một lớp là một Repository để tương tác với cơ sở dữ liệu.
127. JSP (JavaServer Pages) là gì và mục đích sử dụng chính của nó là gì?
A. Để định nghĩa các dịch vụ web XML.
B. Để tạo ra các trang web tĩnh với nội dung cố định.
C. Để tạo ra các trang web động bằng cách nhúng mã Java vào HTML.
D. Để quản lý kết nối cơ sở dữ liệu hiệu quả.
128. Spring Framework là gì và lợi ích chính khi sử dụng nó trong phát triển ứng dụng Web Java là gì?
A. Một thư viện để tạo giao diện người dùng với JavaScript.
B. Một khuôn khổ toàn diện giúp đơn giản hóa việc phát triển ứng dụng Java EE, đặc biệt là các ứng dụng web, thông qua các nguyên tắc như Dependency Injection và Aspect-Oriented Programming.
C. Một công cụ để quản lý phiên bản mã nguồn.
D. Một hệ quản trị cơ sở dữ liệu NoSQL.
129. Thư viện Jackson trong Java Web thường được sử dụng để làm gì?
A. Để quản lý kết nối cơ sở dữ liệu.
B. Để xử lý các tác vụ bất đồng bộ.
C. Để chuyển đổi giữa đối tượng Java và định dạng JSON (serialization và deserialization).
D. Để thực hiện các phép toán số học phức tạp.
130. Thành phần nào trong Spring MVC là điểm vào chính của toàn bộ tiến trình xử lý yêu cầu web?
A. ViewResolver
B. HandlerMapping
C. DispatcherServlet
D. Controller
131. Trong ngữ cảnh phát triển web Java, ‘cross-site scripting’ (XSS) là loại tấn công nào?
A. Tấn công từ chối dịch vụ (DoS) nhằm làm quá tải máy chủ.
B. Tấn công mà kẻ tấn công chèn mã độc (thường là JavaScript) vào các trang web hiển thị cho người dùng khác, nhằm đánh cắp thông tin hoặc thực hiện các hành động trái phép.
C. Tấn công đánh cắp thông tin đăng nhập bằng cách giả mạo trang web.
D. Tấn công thay đổi dữ liệu trong cơ sở dữ liệu.
132. Trong Spring Boot, annotation ‘@Autowired’ được sử dụng để làm gì?
A. Để định nghĩa một Bean mới.
B. Để đánh dấu một phương thức là một Endpoint RESTful.
C. Để tự động inject (tiêm) các dependency (phụ thuộc) đã được quản lý bởi Spring container vào một Bean.
D. Để cấu hình thuộc tính cho một Bean.
133. Spring MVC sử dụng cơ chế nào để quản lý các component và dependency giữa chúng?
A. Object-Relational Mapping (ORM)
B. Inversion of Control (IoC) và Dependency Injection (DI)
C. Model-View-Controller (MVC)
D. JavaBeans
134. Trong Spring, Bean Scopes (phạm vi của Bean) là gì và những phạm vi phổ biến nào tồn tại?
A. Là cách Spring quản lý bộ nhớ cho các đối tượng.
B. Xác định vòng đời và cách thức mà một Bean được tạo ra và chia sẻ trong Spring container, các phạm vi phổ biến bao gồm ‘singleton’ (mặc định, một Bean duy nhất cho toàn bộ ứng dụng), ‘prototype’ (mỗi lần yêu cầu một Bean mới), ‘request’, ‘session’, ‘application’ (trong môi trường web), kết luận Lý giải.
C. Là cách Spring ánh xạ các yêu cầu HTTP.
D. Là cách Spring xử lý các ngoại lệ.
135. Annotation ‘@RequestMapping’ trong Spring được sử dụng để làm gì?
A. Định nghĩa cấu hình cho cơ sở dữ liệu.
B. Ánh xạ các yêu cầu HTTP đến các phương thức xử lý cụ thể trong controller.
C. Quản lý kết nối mạng giữa các máy chủ.
D. Xác định các Bean trong ứng dụng Spring.
136. Thư viện nào thường được sử dụng trong Java Web để thực hiện các yêu cầu HTTP từ phía máy chủ (ví dụ: gọi API bên ngoài)?
A. JUnit
B. Logback
C. Apache HttpClient hoặc Spring WebFlux/RestTemplate
D. Jackson
137. Thành phần nào trong Spring Boot cho phép cấu hình máy chủ nhúng (embedded server) như Tomcat, Jetty, Undertow?
A. Spring Data
B. Spring Web
C. Spring Boot Starter Parent
D. Spring Boot Starter Web
138. Trong mô hình MVC (Model-View-Controller), vai trò của Controller là gì?
A. Chịu trách nhiệm hiển thị dữ liệu cho người dùng.
B. Chứa logic nghiệp vụ và quản lý dữ liệu.
C. Xử lý các yêu cầu của người dùng và tương tác với Model và View.
D. Cung cấp các API cho các ứng dụng khác truy cập.
139. Cookie trong ứng dụng Web Java dùng để làm gì?
A. Để lưu trữ các tập tin tạm thời trên máy chủ.
B. Để lưu trữ các thông tin nhỏ trên trình duyệt của người dùng, thường được sử dụng để ghi nhớ trạng thái hoặc tùy chọn của người dùng.
C. Để mã hóa toàn bộ dữ liệu truyền giữa client và server.
D. Để xác định địa chỉ IP của người dùng.
140. Spring Boot là gì và nó giúp ích gì cho việc phát triển ứng dụng web Java?
A. Là một hệ điều hành mới cho các ứng dụng Java.
B. Là một bộ công cụ giúp đơn giản hóa việc tạo và triển khai các ứng dụng Spring độc lập, có khả năng chạy ngay lập tức, bằng cách tự động cấu hình và cung cấp các giải pháp sẵn có.
C. Là một thư viện chỉ dùng cho việc kiểm thử Unit Test.
D. Là một công cụ để thiết kế giao diện đồ họa.
141. JPA (Java Persistence API) là gì và vai trò của nó trong phát triển ứng dụng Web Java là gì?
A. Là một framework để xây dựng giao diện người dùng đồ họa.
B. Là một tiêu chuẩn API của Java để ánh xạ các đối tượng Java (POJO) vào các bảng cơ sở dữ liệu quan hệ, giúp đơn giản hóa việc truy cập và quản lý dữ liệu.
C. Là một giao thức truyền thông mạng.
D. Là một công cụ để biên dịch mã Java.
142. Trong Spring, annotation ‘@Service’ được sử dụng để làm gì?
A. Đánh dấu một lớp là một Web Controller.
B. Đánh dấu một lớp là một Repository để truy cập dữ liệu.
C. Đánh dấu một lớp là một Service, chứa logic nghiệp vụ và thường được inject vào các Controller hoặc các Service khác.
D. Đánh dấu một lớp là một Component có thể được quản lý bởi Spring container.
143. Trong Spring Boot, annotation ‘@SpringBootApplication’ thường được đặt ở đâu và nó có ý nghĩa gì?
A. Đặt trong file cấu hình `application.properties`, có ý nghĩa là khởi tạo server web.
B. Đặt ở lớp chính (main class) của ứng dụng, có ý nghĩa là đánh dấu lớp đó là nguồn khởi tạo ứng dụng Spring Boot, cấu hình auto-configuration và quét các component, kết luận Lý giải.
C. Đặt trong các lớp Controller, có ý nghĩa là đánh dấu lớp đó xử lý các yêu cầu HTTP.
D. Đặt trong các lớp Service, có ý nghĩa là đánh dấu lớp đó chứa logic nghiệp vụ.
144. Bean trong Spring là gì?
A. Là một đối tượng Java được tạo và quản lý bởi Spring IoC container.
B. Là một file cấu hình XML cho ứng dụng Spring.
C. Là một kiểu dữ liệu mới trong Java.
D. Là một giao diện để giao tiếp với hệ điều hành.
145. Thành phần nào của ứng dụng web chịu trách nhiệm xử lý logic nghiệp vụ và truy cập dữ liệu?
A. View
B. Controller
C. Model (thường được triển khai bởi các lớp Service và Repository)
D. Filter
146. Trong Spring Boot, làm thế nào để cấu hình một cơ sở dữ liệu?
A. Bằng cách viết một lớp Servlet để kết nối trực tiếp.
B. Thông qua file `application.properties` hoặc `application.yml`, khai báo các thuộc tính như URL kết nối, username, password, và driver class name.
C. Bằng cách sử dụng annotation ‘@DatabaseConnection’ trên lớp chính.
D. Spring Boot tự động kết nối với mọi cơ sở dữ liệu có sẵn.
147. Trong Spring Boot, cách nào để định nghĩa một RESTful API endpoint?
A. Sử dụng annotation ‘@Service’ trong một lớp Service.
B. Sử dụng annotation ‘@Repository’ trong một lớp DAO.
C. Sử dụng annotation ‘@RestController’ trên lớp và các annotation như ‘@GetMapping’, ‘@PostMapping’, ‘@PutMapping’, ‘@DeleteMapping’ trên các phương thức của lớp đó.
D. Sử dụng annotation ‘@Component’ trên một lớp bất kỳ.
148. RESTful Web Services là gì và nguyên tắc cốt lõi của nó là gì?
A. Là các dịch vụ sử dụng định dạng XML để trao đổi dữ liệu.
B. Là các dịch vụ tuân thủ các ràng buộc kiến trúc REST, bao gồm client-server, stateless, cacheable, layered system, code on demand (tùy chọn), và uniform interface, thường sử dụng các phương thức HTTP như GET, POST, PUT, DELETE, kết luận Lý giải.
C. Là các dịch vụ chỉ có thể truy cập qua giao thức SOAP.
D. Là các dịch vụ chạy trên máy khách (client-side).
149. Trong Spring Boot, annotation ‘@Configuration’ được sử dụng để làm gì?
A. Để định nghĩa một Controller.
B. Để đánh dấu một lớp là nguồn cấu hình cho Spring application context, chứa các định nghĩa Bean.
C. Để quản lý các tập tin tĩnh.
D. Để xác định các phiên làm việc của người dùng.
150. Thành phần nào trong Spring MVC chịu trách nhiệm chọn View phù hợp dựa trên tên hoặc model trả về từ Controller?
A. HandlerAdapter
B. ViewResolver
C. HandlerMapping
D. DispatcherServlet
151. Aspect-Oriented Programming (AOP) là gì và nó giúp ích gì trong phát triển ứng dụng Web Java?
A. Là một phương pháp để tạo giao diện người dùng đẹp mắt.
B. Là một mô hình lập trình tách biệt các chức năng xuyên suốt (cross-cutting concerns) như logging, bảo mật, hoặc quản lý giao dịch ra khỏi logic nghiệp vụ chính, giúp mã nguồn sạch sẽ và dễ bảo trì hơn.
C. Là một cách để quản lý các phiên làm việc của người dùng.
D. Là một phương pháp để mã hóa dữ liệu.
152. Trong Java Web, HTTP là viết tắt của gì và vai trò của nó trong giao tiếp Client-Server là gì?
A. HyperText Markup Language, dùng để định dạng trang web.
B. HyperText Transfer Protocol, là giao thức nền tảng cho việc truyền dữ liệu trên World Wide Web, cho phép trình duyệt (client) gửi yêu cầu và nhận phản hồi từ máy chủ web, kết luận Lý giải.
C. High Technology Transfer Process, dùng để truyền tập tin.
D. Hyperlink Text Transmission Protocol, dùng để tạo liên kết.
153. Trong phát triển web Java, khái niệm ‘cross-site request forgery’ (CSRF) là loại tấn công nào?
A. Tấn công chèn mã độc vào trang web.
B. Tấn công lừa người dùng thực hiện một hành động không mong muốn trên ứng dụng web mà họ đã đăng nhập, bằng cách lợi dụng sự tin cậy của máy chủ vào phiên làm việc của người dùng.
C. Tấn công đánh cắp mật khẩu bằng cách dò tìm.
D. Tấn công làm gián đoạn kết nối mạng.
154. Session trong ứng dụng Web Java dùng để làm gì?
A. Để lưu trữ dữ liệu tạm thời trên máy chủ cho một người dùng cụ thể trong suốt phiên làm việc của họ.
B. Để lưu trữ toàn bộ mã nguồn của ứng dụng.
C. Để lưu trữ cấu hình của máy chủ web.
D. Để quản lý các tập tin tĩnh như hình ảnh và CSS.
155. Khi một yêu cầu HTTP GET được gửi đến một Servlet, phương thức nào của Servlet sẽ được gọi?
A. doPost()
B. doGet()
C. init()
D. destroy()
156. Spring Security là gì và nó cung cấp những chức năng chính nào cho ứng dụng Web Java?
A. Một công cụ để tối ưu hóa hiệu suất ứng dụng.
B. Một framework cung cấp các giải pháp toàn diện cho xác thực (authentication) và phân quyền (authorization) trong các ứng dụng Java.
C. Một thư viện để xử lý các tác vụ bất đồng bộ.
D. Một công cụ để quản lý logging.
157. Thành phần nào trong Spring MVC xử lý các yêu cầu HTTP và trả về các đối tượng Model hoặc View?
A. DispatcherServlet
B. HandlerMapping
C. Controller
D. ViewResolver
158. Trong phát triển web Java, Tomcat là gì?
A. Một framework để xây dựng giao diện người dùng.
B. Một ứng dụng máy chủ web (web server) và một container Servlet/JSP, được sử dụng để chạy các ứng dụng web Java.
C. Một công cụ để quản lý cơ sở dữ liệu.
D. Một ngôn ngữ kịch bản phía máy khách.
159. Trong phát triển ứng dụng Web với Java, Servlet là gì và vai trò chính của nó là gì?
A. Một lớp Java xử lý các yêu cầu HTTP từ client và gửi phản hồi.
B. Một thành phần giao diện người dùng để hiển thị dữ liệu trên trình duyệt.
C. Một cơ sở dữ liệu để lưu trữ thông tin của người dùng.
D. Một công cụ để biên dịch mã Java thành mã máy.
160. Thành phần nào của ứng dụng web Java chịu trách nhiệm về giao diện người dùng và cách dữ liệu được hiển thị cho người dùng?
A. Model
B. Controller
C. View
D. Filter
161. Tại sao việc sử dụng Prepared Statements trong JDBC được khuyến khích hơn là Statement thông thường?
A. Prepared Statements chậm hơn và chỉ hỗ trợ các câu lệnh SELECT.
B. Prepared Statements giúp ngăn chặn tấn công SQL Injection và tối ưu hóa hiệu suất truy vấn.
C. Prepared Statements không cần kết nối đến cơ sở dữ liệu.
D. Prepared Statements chỉ dùng cho các câu lệnh INSERT.
162. Trong kiến trúc MVC (Model-View-Controller) cho ứng dụng Web Java, vai trò của ‘Model’ là gì?
A. Xử lý logic nghiệp vụ và quản lý dữ liệu của ứng dụng.
B. Trình bày dữ liệu cho người dùng cuối.
C. Tiếp nhận yêu cầu từ người dùng và điều phối hoạt động.
D. Quản lý trạng thái phiên làm việc của người dùng.
163. Mục đích của việc sử dụng Spring Data JPA là gì?
A. Tạo giao diện người dùng web phức tạp.
B. Đơn giản hóa việc truy cập dữ liệu bằng cách cung cấp các repository trừu tượng hóa các thao tác CRUD.
C. Quản lý các dịch vụ Web SOAP.
D. Xử lý các yêu cầu bất đồng bộ.
164. Thành phần nào của Java EE được sử dụng để tạo các dịch vụ Web dựa trên JAX-RS (RESTful)?
A. JAX-WS
B. JMS
C. JAX-RS
D. JDBC
165. Thành phần nào của Java EE được thiết kế để xử lý các tác vụ không đồng bộ và lập lịch công việc?
A. JMS (Java Message Service)
B. JPA (Java Persistence API)
C. CDI (Contexts and Dependency Injection)
D. JAX-RS (Java API for RESTful Web Services)
166. RESTful Web Services trong Java dựa trên nguyên tắc nào là chính?
A. Sử dụng các giao thức truyền tin độc quyền và phức tạp.
B. Dựa trên các nguyên tắc của kiến trúc REST, sử dụng các phương thức HTTP chuẩn (GET, POST, PUT, DELETE).
C. Yêu cầu tất cả dữ liệu phải được truyền dưới dạng XML.
D. Chỉ hỗ trợ giao tiếp giữa các ứng dụng Java.
167. Khi gửi dữ liệu từ client lên server trong ứng dụng Web Java, phương thức HTTP nào thường được sử dụng cho các yêu cầu tạo hoặc cập nhật tài nguyên?
A. GET
B. POST hoặc PUT
C. DELETE
D. HEAD
168. Thành phần nào của Java EE được sử dụng để thực thi các tác vụ định kỳ hoặc theo lịch trình trong môi trường ứng dụng doanh nghiệp?
A. JMS
B. EJB Timer Service
C. JPA
D. JAX-RS
169. Thành phần nào của Java Servlet API cho phép truy cập các tham số từ yêu cầu HTTP?
A. HttpServletResponse
B. HttpSession
C. HttpServletRequest
D. ServletContext
170. Thành phần nào của Spring Framework cung cấp khả năng quản lý giao dịch (transaction management) một cách khai báo?
A. Spring MVC
B. Spring Data
C. Spring Transaction Management
D. Spring Security
171. Thành phần nào của Java EE được sử dụng để tạo các dịch vụ Web dựa trên SOAP?
A. Servlets
B. JSP
C. JAX-WS (Java API for XML Web Services)
D. JDBC
172. Mục đích của việc sử dụng annotation `@Autowired` trong Spring là gì?
A. Để khai báo một phương thức là một bean.
B. Để tự động inject (tiêm) các dependency (các bean khác) vào một bean.
C. Để cấu hình các thuộc tính của bean.
D. Để khai báo một lớp là một Controller.
173. Khi phát triển ứng dụng Web Java, mục đích chính của việc sử dụng JDBC (Java Database Connectivity) là gì?
A. Để quản lý giao diện người dùng và tương tác với người dùng.
B. Để thực thi các tác vụ bất đồng bộ trong ứng dụng.
C. Để cho phép ứng dụng Java tương tác với cơ sở dữ liệu.
D. Để xử lý các yêu cầu mạng và giao tiếp giữa các máy chủ.
174. Thành phần nào của Java EE được sử dụng để triển khai các ứng dụng backend với các dịch vụ doanh nghiệp phức tạp?
A. JSP
B. EJB (Enterprise JavaBeans)
C. Servlets
D. JDBC
175. Khái niệm ‘Stateless’ trong kiến trúc RESTful Web Services có ý nghĩa gì?
A. Mỗi yêu cầu từ client phải chứa tất cả thông tin cần thiết để server xử lý.
B. Server phải lưu trữ trạng thái của tất cả các client.
C. Client chỉ có thể gửi yêu cầu GET.
D. Ứng dụng phải chạy hoàn toàn offline.
176. Tại sao Maven hoặc Gradle được sử dụng phổ biến trong các dự án phát triển ứng dụng Web Java?
A. Để tạo giao diện người dùng đẹp mắt.
B. Để tự động hóa quá trình xây dựng, quản lý dependency và triển khai dự án.
C. Để viết mã Java mà không cần IDE.
D. Để debug code hiệu quả hơn.
177. Trong Spring Boot, annotation nào dùng để chỉ định một lớp là một component có thể được quản lý bởi Spring IoC Container?
A. @Autowired
B. @Configuration
C. @Component
D. @Bean
178. Thành phần nào trong Spring Framework chuyên trách xử lý các vấn đề về khía cạnh (Aspect-Oriented Programming – AOP)?
A. Spring MVC
B. Spring Data
C. Spring AOP
D. Spring Security
179. Trong Java Web, listener nào được sử dụng để phát hiện các sự kiện liên quan đến vòng đời của ServletContext?
A. HttpSessionListener
B. ServletRequestListener
C. ServletContextListener
D. Filter
180. Trong phát triển ứng dụng Web Java, tại sao lại cần có một ‘Web Container’ hoặc ‘Servlet Container’?
A. Để chạy các ứng dụng di động.
B. Để quản lý và thực thi các Servlet và JSP, xử lý các yêu cầu HTTP.
C. Để lưu trữ dữ liệu của ứng dụng.
D. Để tạo giao diện người dùng trực tiếp trên máy tính cá nhân.
181. Thành phần nào của Spring Boot cung cấp các tính năng theo dõi và quản lý ứng dụng (monitoring, health checks, metrics)?
A. Spring Boot Starter Web
B. Spring Boot Actuator
C. Spring Boot Test
D. Spring Boot Data
182. Trong Java Web, việc sử dụng Filter cho phép làm gì?
A. Chỉ được dùng để xử lý các yêu cầu gửi dữ liệu.
B. Thực hiện các tác vụ tiền xử lý hoặc hậu xử lý cho các yêu cầu và phản hồi.
C. Quản lý các phiên làm việc của người dùng.
D. Chỉ áp dụng cho các trang JSP.
183. Khi phát triển ứng dụng Web Java, khái niệm ‘Dependency Injection’ (DI) giúp ích gì cho việc quản lý code?
A. Giúp code chạy nhanh hơn mà không cần thay đổi logic.
B. Giảm sự phụ thuộc giữa các thành phần, làm cho code dễ kiểm thử, bảo trì và tái sử dụng hơn.
C. Tự động tạo giao diện người dùng dựa trên cấu hình.
D. Chỉ dùng cho việc quản lý cơ sở dữ liệu.
184. Trong Spring Security, khái niệm ‘Authentication’ và ‘Authorization’ khác nhau như thế nào?
A. Authentication xác định ‘bạn là ai’, còn Authorization xác định ‘bạn được phép làm gì’.
B. Authentication là việc xác thực tài khoản, Authorization là việc mã hóa dữ liệu.
C. Cả hai đều chỉ liên quan đến việc đăng nhập người dùng.
D. Authentication là việc kiểm tra quyền truy cập, Authorization là việc xác minh danh tính.
185. Khi phát triển ứng dụng Web Java, việc sử dụng `throws Exception` trong signature của phương thức `doGet()` hoặc `doPost()` của Servlet là vì lý do gì?
A. Để báo hiệu rằng phương thức không bao giờ ném ra ngoại lệ.
B. Để chỉ ra rằng phương thức có thể ném ra các ngoại lệ liên quan đến I/O hoặc các xử lý khác mà Servlet Container cần quản lý.
C. Để buộc client phải xử lý ngoại lệ.
D. Là một quy tắc bắt buộc của mọi phương thức trong Java.
186. Thành phần nào của Java EE cung cấp một API chuẩn để ánh xạ đối tượng Java tới các bảng cơ sở dữ liệu quan hệ?
A. JDBC
B. JTA (Java Transaction API)
C. JPA (Java Persistence API)
D. JNDI (Java Naming and Directory Interface)
187. Thành phần nào của Spring Boot được sử dụng để nhúng một máy chủ web (như Tomcat, Jetty, Undertow) trực tiếp vào ứng dụng?
A. Spring Data
B. Spring Boot Starter Web
C. Spring Boot Actuator
D. Spring Boot Test
188. JSP (JavaServer Pages) khác biệt với Servlet như thế nào trong việc phát triển ứng dụng Web Java?
A. JSP tập trung vào logic nghiệp vụ, còn Servlet tập trung vào trình bày dữ liệu.
B. JSP cho phép nhúng mã Java vào HTML để tạo nội dung động, còn Servlet là các lớp Java thuần túy.
C. JSP chạy hoàn toàn ở phía máy khách, còn Servlet chạy ở phía máy chủ.
D. JSP được sử dụng cho API, còn Servlet dùng cho giao diện người dùng.
189. Khi làm việc với JSON trong Java, thư viện nào phổ biến nhất và thường được sử dụng để chuyển đổi đối tượng Java sang JSON và ngược lại?
A. Apache Commons IO
B. Jackson
C. Log4j
D. JUnit
190. Trong Java EE, EJB (Enterprise JavaBeans) được sử dụng chủ yếu cho mục đích gì?
A. Tạo giao diện người dùng web tương tác cao.
B. Xử lý logic nghiệp vụ phức tạp, quản lý giao dịch và bảo mật.
C. Quản lý kết nối cơ sở dữ liệu hiệu quả.
D. Giao tiếp giữa các ứng dụng khác nhau trên mạng.
191. Cookie và Session có vai trò gì trong việc quản lý trạng thái của người dùng trên ứng dụng Web Java?
A. Cookie lưu trữ dữ liệu phía máy chủ, Session lưu trữ dữ liệu phía máy khách.
B. Cookie lưu trữ dữ liệu nhỏ phía máy khách, Session lưu trữ dữ liệu trên máy chủ cho từng người dùng.
C. Cả Cookie và Session đều lưu trữ dữ liệu trên máy chủ.
D. Cookie được dùng để xác thực, Session dùng để gửi dữ liệu qua mạng.
192. Trong ngữ cảnh của Spring Boot, ‘Spring Boot Starter’ là gì?
A. Một công cụ để debug ứng dụng.
B. Một bộ các dependency được nhóm lại để đơn giản hóa việc thiết lập cho các loại ứng dụng cụ thể.
C. Một framework để tạo API.
D. Một cơ sở dữ liệu nhúng.
193. Thành phần nào trong Spring Framework thường được sử dụng để quản lý các thành phần (beans) và cấu hình ứng dụng?
A. Spring MVC
B. Spring AOP
C. Spring IoC Container (ApplicationContext/BeanFactory)
D. Spring Security
194. Trong Spring Boot, khái niệm ‘Auto-configuration’ giúp ích gì cho việc phát triển ứng dụng Web Java?
A. Yêu cầu người dùng phải cấu hình thủ công tất cả các thành phần.
B. Tự động cấu hình các bean và các thành phần dựa trên các thư viện có sẵn trong classpath.
C. Chỉ hỗ trợ tạo các ứng dụng dòng lệnh.
D. Buộc ứng dụng phải sử dụng cơ sở dữ liệu Oracle.
195. Trong một ứng dụng Web Java sử dụng Spring Boot, làm thế nào để định nghĩa một REST Controller?
A. Sử dụng annotation `@Service`.
B. Sử dụng annotation `@Controller` kết hợp với `@ResponseBody` hoặc dùng annotation `@RestController`.
C. Sử dụng annotation `@Component`.
D. Sử dụng annotation `@Repository`.
196. Trong Spring Boot, làm thế nào để cấu hình một máy chủ web tùy chỉnh (ví dụ: sử dụng Jetty thay vì Tomcat mặc định)?
A. Thay đổi tên gói của ứng dụng.
B. Thêm dependency của máy chủ web mong muốn (ví dụ: jetty-starter) và loại bỏ dependency của máy chủ mặc định (ví dụ: tomcat-starter).
C. Sử dụng annotation `@EnableJetty`.
D. Viết lại toàn bộ Servlet container.
197. Trong phát triển ứng dụng Web với Java, Servlet là gì và vai trò chính của nó là gì?
A. Là một class dùng để xử lý logic nghiệp vụ và tương tác với cơ sở dữ liệu.
B. Là một thành phần phía máy chủ xử lý các yêu cầu HTTP và trả về phản hồi.
C. Là một công nghệ giao diện người dùng để tạo các thành phần tương tác trên trình duyệt.
D. Là một cơ sở dữ liệu quan hệ được sử dụng để lưu trữ dữ liệu ứng dụng.
198. Thư viện Spring MVC cung cấp các thành phần nào để xây dựng ứng dụng Web Java hiệu quả?
A. Chỉ cung cấp các công cụ tạo giao diện người dùng dựa trên HTML.
B. Cung cấp DispatcherServlet, Controller, ViewResolver và các thành phần khác.
C. Tập trung vào quản lý cơ sở dữ liệu và JDBC.
D. Chủ yếu dùng để viết các ứng dụng console.
199. Trong Spring Security, làm thế nào để bảo vệ một URL cụ thể khỏi truy cập trái phép?
A. Sử dụng annotation `@RequestMapping`.
B. Cấu hình các quy tắc phân quyền (authorization rules) trong cấu hình bảo mật Spring Security.
C. Chỉ cho phép người dùng đã đăng nhập truy cập.
D. Sử dụng cookie để lưu trữ quyền truy cập.
200. Mục đích chính của việc sử dụng annotation `@Transactional` trong Spring là gì?
A. Để định nghĩa các View trong Spring MVC.
B. Để quản lý các thành phần (beans) trong IoC Container.
C. Để khai báo một phương thức hoặc lớp sẽ được thực thi trong một giao dịch cơ sở dữ liệu.
D. Để cấu hình các dịch vụ bảo mật.