Đề 6 – Đề thi, câu hỏi trắc nghiệm online Phát triển ứng dụng Web với Java

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Phát triển ứng dụng Web với Java

Đề 6 - Đề thi, câu hỏi trắc nghiệm online Phát triển ứng dụng Web với Java

1. Trong mô hình MVC (Model-View-Controller), thành phần nào chịu trách nhiệm xử lý logic ứng dụng và tương tác với cơ sở dữ liệu?

A. View
B. Model
C. Controller
D. DispatcherServlet

2. Trong Java, `Filter` và `Interceptor` khác nhau như thế nào trong việc xử lý các request?

A. `Filter` chỉ có thể được sử dụng trong Spring MVC, trong khi `Interceptor` có thể được sử dụng trong bất kỳ ứng dụng web Java nào.
B. `Filter` hoạt động ở mức Servlet, can thiệp vào request trước khi đến Servlet và response trước khi trả về client, trong khi `Interceptor` hoạt động ở mức Spring MVC, can thiệp vào request và response trong quá trình xử lý của handler (Controller).
C. `Filter` chỉ có thể được sử dụng để kiểm tra authentication, trong khi `Interceptor` có thể được sử dụng cho nhiều mục đích khác nhau.
D. `Filter` có hiệu suất tốt hơn `Interceptor`.

3. Sự khác biệt chính giữa HTTP Cookie và Session là gì?

A. Cookie được lưu trữ trên server, Session được lưu trữ trên client.
B. Cookie có kích thước lớn hơn Session.
C. Cookie được lưu trữ trên client, Session được lưu trữ trên server.
D. Cookie an toàn hơn Session.

4. Trong Java Servlet, phương thức nào được gọi đầu tiên khi một servlet được khởi tạo?

A. service()
B. doGet()
C. init()
D. destroy()

5. Trong Spring Boot, annotation nào được sử dụng để tự động cấu hình ứng dụng dựa trên các dependencies có sẵn?

A. @Controller
B. @Service
C. @SpringBootApplication
D. @Repository

6. JSON Web Token (JWT) thường được sử dụng để làm gì trong ứng dụng web?

A. Để mã hóa dữ liệu trong cơ sở dữ liệu.
B. Để xác thực và ủy quyền người dùng, cho phép truyền tải thông tin người dùng một cách an toàn giữa client và server.
C. Để tối ưu hóa hiệu suất của ứng dụng.
D. Để tạo giao diện người dùng động.

7. Trong Java, `StringBuilder` và `StringBuffer` khác nhau như thế nào?

A. `StringBuilder` là thread-safe, `StringBuffer` thì không.
B. `StringBuffer` có hiệu suất tốt hơn `StringBuilder`.
C. `StringBuffer` là thread-safe, `StringBuilder` thì không.
D. `StringBuilder` có thể được sử dụng trong môi trường đa luồng, `StringBuffer` thì không.

8. Annotation nào trong Spring MVC được sử dụng để ánh xạ một phương thức xử lý yêu cầu HTTP đến một URL cụ thể?

A. @Component
B. @Autowired
C. @RequestMapping
D. @Service

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 tự động từ cơ sở dữ liệu dựa trên tên phương thức?

A. EntityManager
B. JpaRepository
C. DataSource
D. HibernateTemplate

10. 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 loại tấn công mà kẻ tấn công thực thi các lệnh độc hại trên máy chủ.
C. Một loại tấn công mà kẻ tấn công lợi dụng việc người dùng đã đăng nhập để thực hiện các hành động thay mặt người dùng mà họ không hề hay biết, phòng tránh bằng cách sử dụng token đồng bộ hóa (synchronizer token pattern).
D. Một loại tấn công bằng cách chèn mã độc vào các trang web.

11. Session trong ngữ cảnh ứng dụng web là gì?

A. Một kết nối liên tục đến cơ sở dữ liệu.
B. Một cách để lưu trữ dữ liệu tạm thời trên máy chủ để theo dõi trạng thái của người dùng giữa các yêu cầu.
C. Một đoạn mã JavaScript được thực thi trên trình duyệt.
D. Một phương thức bảo mật để mã hóa dữ liệu.

12. Giả sử bạn có một ứng dụng web Java sử dụng Spring MVC và Thymeleaf. Làm thế nào để bạn truyền dữ liệu từ controller đến view (Thymeleaf template)?

A. Sử dụng `HttpServletRequest.setAttribute()`.
B. Sử dụng `HttpSession.setAttribute()`.
C. Thêm dữ liệu vào `Model` object trong controller, Thymeleaf sẽ tự động truy cập dữ liệu này.
D. Sử dụng JavaScript để lấy dữ liệu từ server.

13. Trong ngữ cảnh bảo mật web, CORS (Cross-Origin Resource Sharing) là gì và tại sao nó quan trọng?

A. Một kỹ thuật để tối ưu hóa hiệu suất trang web.
B. Một cơ chế bảo mật cho phép hoặc từ chối các yêu cầu HTTP từ một origin (domain, protocol, port) khác, ngăn chặn các tấn công XSS (Cross-Site Scripting).
C. Một phương pháp để mã hóa dữ liệu trên trang web.
D. Một cách để xác thực người dùng.

14. Trong Spring, AOP (Aspect-Oriented Programming) được sử dụng để làm gì?

A. Để quản lý transaction trong cơ sở dữ liệu.
B. Để định nghĩa các bean trong container.
C. Để tách các mối quan tâm (cross-cutting concerns) như logging, bảo mật ra khỏi logic nghiệp vụ chính, giúp mã nguồn dễ bảo trì và tái sử dụng hơn.
D. Để tạo giao diện người dùng.

15. Ưu điểm chính của việc sử dụng RESTful API trong phát triển ứng dụng web là gì?

A. Chỉ hỗ trợ định dạng dữ liệu XML.
B. Khả năng mở rộng, tính linh hoạt và khả năng tương tác với nhiều loại client khác nhau (web, mobile, IoT) thông qua các giao thức chuẩn như HTTP.
C. Yêu cầu một lượng lớn tài nguyên máy chủ.
D. Chỉ hoạt động với các ứng dụng Java.

16. Mục đích của việc sử dụng Dependency Injection (DI) trong Spring Framework là gì?

A. Để giảm kích thước của ứng dụng web.
B. Để tăng cường bảo mật cho ứng dụng.
C. Để giảm sự phụ thuộc giữa các thành phần của ứng dụng, giúp ứng dụng dễ bảo trì, kiểm thử và mở rộng hơn.
D. Để cải thiện hiệu suất của cơ sở dữ liệu.

17. Trong Spring Security, `Authentication` và `Authorization` khác nhau như thế nào?

A. `Authentication` là quá trình xác định người dùng, còn `Authorization` là quá trình xác định người dùng đó có quyền truy cập vào tài nguyên nào.
B. `Authentication` là quá trình mã hóa dữ liệu, còn `Authorization` là quá trình giải mã dữ liệu.
C. `Authentication` là quá trình kiểm tra tính hợp lệ của dữ liệu, còn `Authorization` là quá trình lưu trữ dữ liệu.
D. `Authentication` và `Authorization` là hai thuật ngữ đồng nghĩa.

18. Điểm khác biệt chính giữa `HttpServletRequest.getRequestDispatcher().forward()` và `HttpServletResponse.sendRedirect()` là gì?

A. `forward()` chỉ có thể chuyển hướng đến các trang JSP, trong khi `sendRedirect()` có thể chuyển hướng đến bất kỳ URL nào.
B. `forward()` thực hiện chuyển hướng phía server (server-side), giữ nguyên URL trên trình duyệt, trong khi `sendRedirect()` thực hiện chuyển hướng phía client (client-side), thay đổi URL trên trình duyệt.
C. `forward()` chỉ có thể được sử dụng trong các ứng dụng Spring MVC, trong khi `sendRedirect()` có thể được sử dụng trong bất kỳ ứng dụng web Java nào.
D. `forward()` cho phép truyền dữ liệu giữa các servlet, trong khi `sendRedirect()` thì không.

19. ORM (Object-Relational Mapping) là gì và nó giải quyết vấn đề gì trong phát triển ứng dụng web?

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 kỹ thuật để chuyển đổi dữ liệu giữa các định dạng khác nhau.
C. Một kỹ thuật để ánh xạ giữa các đối tượng trong ứng dụng và các bảng trong cơ sở dữ liệu, giải quyết sự không tương thích giữa hệ thống kiểu đối tượng và hệ thống kiểu quan hệ.
D. Một kỹ thuật để bảo mật dữ liệu trong cơ sở dữ liệu.

20. Annotation nào trong Spring Framework được sử dụng để đánh dấu một class là một component (bean)?

A. @RequestMapping
B. @Autowired
C. @Component
D. @Configuration

21. Mục đích chính của việc sử dụng Message Queue (ví dụ: RabbitMQ, Kafka) trong kiến trúc ứng dụng web là gì?

A. Để tăng tốc độ truy cập cơ sở dữ liệu.
B. Để tạo giao diện người dùng động.
C. Để cho phép giao tiếp không đồng bộ giữa các thành phần của ứng dụng, cải thiện khả năng mở rộng và độ tin cậy.
D. Để bảo mật ứng dụng.

22. Mục đích của việc sử dụng Maven hoặc Gradle trong dự án Java web là gì?

A. Để viết mã Java nhanh hơn.
B. Để quản lý dependencies, build, test và deploy ứng dụng một cách tự động và dễ dàng.
C. Để tạo giao diện người dùng đẹp hơn.
D. Để bảo mật ứng dụng.

23. Trong JPA (Java Persistence API), sự khác biệt giữa `EntityManager.persist()` và `EntityManager.merge()` là gì?

A. `persist()` chỉ được sử dụng cho các entity mới, trong khi `merge()` chỉ được sử dụng cho các entity đã tồn tại.
B. `persist()` làm cho một entity được quản lý (managed), trong khi `merge()` sao chép trạng thái của một entity vào một entity đã được quản lý.
C. `persist()` không trả về giá trị, trong khi `merge()` trả về entity đã được quản lý.
D. Tất cả các đáp án trên.

24. Trong RESTful API, các HTTP method nào thường được sử dụng để thực hiện các thao tác CRUD (Create, Read, Update, Delete)?

A. GET, POST, PUT, DELETE
B. CREATE, READ, UPDATE, DELETE
C. SELECT, INSERT, UPDATE, DELETE
D. GET, POST, PATCH, REMOVE

25. Trong Java Servlet, làm thế nào để bạn nhận dữ liệu được gửi từ client thông qua phương thức POST?

A. Sử dụng phương thức `getParameter()` của đối tượng `HttpServletRequest`.
B. Sử dụng phương thức `getAttribute()` của đối tượng `HttpServletRequest`.
C. Sử dụng phương thức `getHeader()` của đối tượng `HttpServletRequest`.
D. Sử dụng phương thức `getCookies()` của đối tượng `HttpServletRequest`.

26. Trong Spring Data JPA, khi nào nên sử dụng `@Query` annotation thay vì đặt tên phương thức theo quy ước?

A. Khi muốn thực hiện các truy vấn phức tạp mà không thể biểu diễn bằng tên phương thức theo quy ước, hoặc cần sử dụng native query.
B. Khi muốn truy vấn dữ liệu từ nhiều bảng.
C. Khi muốn truy vấn dữ liệu bằng stored procedure.
D. Khi muốn tối ưu hóa hiệu suất truy vấn.

27. 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

28. Trong Java, hãy giải thích sự khác biệt giữa Checked Exception và Unchecked Exception, và cho ví dụ về mỗi loại.

A. Checked exception phải được xử lý hoặc khai báo trong phương thức, ví dụ: `IOException`; Unchecked exception không bắt buộc, ví dụ: `NullPointerException`.
B. Checked exception xảy ra trong quá trình biên dịch, Unchecked exception xảy ra trong quá trình chạy.
C. Checked exception được xử lý bởi JVM, Unchecked exception được xử lý bởi lập trình viên.
D. Checked exception luôn gây ra lỗi ứng dụng, Unchecked exception có thể được bỏ qua.

29. ViewState trong JSF (JavaServer Faces) dùng để làm gì?

A. Lưu trữ cấu hình cơ sở dữ liệu.
B. Lưu trữ trạng thái của các component trên trang web giữa các request, cho phép JSF duy trì trạng thái của giao diện người dùng.
C. Lưu trữ thông tin session của người dùng.
D. Lưu trữ các tệp tin CSS và JavaScript.

30. Trong ngữ cảnh của Java Web Application, thuật ngữ `ServletContext` đề cập đến điều gì?

A. Một đối tượng đại diện cho cấu hình của một Servlet.
B. Một interface cho phép Servlet giao tiếp với cơ sở dữ liệu.
C. Một đối tượng đại diện cho ứng dụng web đang chạy trong container servlet, cung cấp thông tin về môi trường và tài nguyên của ứng dụng.
D. Một class tiện ích để xử lý các yêu cầu HTTP.

1 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

1. Trong mô hình MVC (Model-View-Controller), thành phần nào chịu trách nhiệm xử lý logic ứng dụng và tương tác với cơ sở dữ liệu?

2 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

2. Trong Java, `Filter` và `Interceptor` khác nhau như thế nào trong việc xử lý các request?

3 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

3. Sự khác biệt chính giữa HTTP Cookie và Session là gì?

4 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

4. Trong Java Servlet, phương thức nào được gọi đầu tiên khi một servlet được khởi tạo?

5 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

5. Trong Spring Boot, annotation nào được sử dụng để tự động cấu hình ứng dụng dựa trên các dependencies có sẵn?

6 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

6. JSON Web Token (JWT) thường được sử dụng để làm gì trong ứng dụng web?

7 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

7. Trong Java, `StringBuilder` và `StringBuffer` khác nhau như thế nào?

8 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

8. Annotation nào trong Spring MVC được sử dụng để ánh xạ một phương thức xử lý yêu cầu HTTP đến một URL cụ thể?

9 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

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 tự động từ cơ sở dữ liệu dựa trên tên phương thức?

10 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

10. CSRF (Cross-Site Request Forgery) là gì và làm thế nào để phòng tránh nó trong ứng dụng web Java?

11 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

11. Session trong ngữ cảnh ứng dụng web là gì?

12 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

12. Giả sử bạn có một ứng dụng web Java sử dụng Spring MVC và Thymeleaf. Làm thế nào để bạn truyền dữ liệu từ controller đến view (Thymeleaf template)?

13 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

13. Trong ngữ cảnh bảo mật web, CORS (Cross-Origin Resource Sharing) là gì và tại sao nó quan trọng?

14 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

14. Trong Spring, AOP (Aspect-Oriented Programming) được sử dụng để làm gì?

15 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

15. Ưu điểm chính của việc sử dụng RESTful API trong phát triển ứng dụng web là gì?

16 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

16. Mục đích của việc sử dụng Dependency Injection (DI) trong Spring Framework là gì?

17 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

17. Trong Spring Security, `Authentication` và `Authorization` khác nhau như thế nào?

18 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

18. Điểm khác biệt chính giữa `HttpServletRequest.getRequestDispatcher().forward()` và `HttpServletResponse.sendRedirect()` là gì?

19 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

19. ORM (Object-Relational Mapping) là gì và nó giải quyết vấn đề gì trong phát triển ứng dụng web?

20 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

20. Annotation nào trong Spring Framework được sử dụng để đánh dấu một class là một component (bean)?

21 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

21. Mục đích chính của việc sử dụng Message Queue (ví dụ: RabbitMQ, Kafka) trong kiến trúc ứng dụng web là gì?

22 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

22. Mục đích của việc sử dụng Maven hoặc Gradle trong dự án Java web là gì?

23 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

23. Trong JPA (Java Persistence API), sự khác biệt giữa `EntityManager.persist()` và `EntityManager.merge()` là gì?

24 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

24. Trong RESTful API, các HTTP method nào thường được sử dụng để thực hiện các thao tác CRUD (Create, Read, Update, Delete)?

25 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

25. Trong Java Servlet, làm thế nào để bạn nhận dữ liệu được gửi từ client thông qua phương thức POST?

26 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

26. Trong Spring Data JPA, khi nào nên sử dụng `@Query` annotation thay vì đặt tên phương thức theo quy ước?

27 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

27. JSP (JavaServer Pages) được biên dịch thành gì trước khi thực thi?

28 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

28. Trong Java, hãy giải thích sự khác biệt giữa Checked Exception và Unchecked Exception, và cho ví dụ về mỗi loại.

29 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

29. ViewState trong JSF (JavaServer Faces) dùng để làm gì?

30 / 30

Category: Phát triển ứng dụng Web với Java

Tags: Bộ đề 7

30. Trong ngữ cảnh của Java Web Application, thuật ngữ 'ServletContext' đề cập đến điều gì?