Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Phát Triển Ứng Dụng Web Với Java - Đề 04
Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Phát Triển Ứng Dụng Web Với Java - Đề 04 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.
Câu 1: Trong mô hình MVC (Model-View-Controller) được sử dụng phổ biến trong phát triển ứng dụng web Java, 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. Model
- B. View
- C. Controller
- D. DispatcherServlet
Câu 2: Servlet trong Java Web đóng vai trò quan trọng trong việc xử lý request từ client. Phương thức nào sau đây của Servlet được container gọi đầu tiên khi một servlet được khởi tạo?
- A. service()
- B. init()
- C. doGet()
- D. destroy()
Câu 3: JSP (JavaServer Pages) cho phép nhúng mã Java vào HTML. Cú pháp nào sau đây được sử dụng để khai báo biến trong JSP?
- A. <%= expression %>
- B. <% scriptlet %>
- C. <%@ directive %>
- D. <%! declaration %>
Câu 4: Session trong Java Web được sử dụng để duy trì trạng thái của người dùng giữa các request. Cách nào sau đây thường được sử dụng để quản lý session?
- A. Cookies và URL rewriting
- B. Biến toàn cục (Global variables)
- C. Tham số request (Request parameters)
- D. Biến cục bộ trong servlet (Local servlet variables)
Câu 5: JDBC (Java Database Connectivity) là API cho phép ứng dụng Java tương tác với cơ sở dữ liệu. Bước nào sau đây không nằm trong quy trình cơ bản để thực hiện truy vấn JDBC?
- A. Tạo kết nối đến cơ sở dữ liệu (Connection)
- B. Tạo đối tượng Statement hoặc PreparedStatement
- C. Thực thi truy vấn và xử lý kết quả (ResultSet)
- D. Binding dữ liệu từ HTML form vào đối tượng Java
Câu 6: Xét đoạn code JSP sau: `<%= request.getParameter(
- A. Thiết lập giá trị của tham số "username" trong request.
- B. Hiển thị giá trị của tham số "username" từ request lên trang web.
- C. Kiểm tra xem tham số "username" có tồn tại trong request hay không.
- D. Xóa tham số "username" khỏi request.
Câu 7: Trong ngữ cảnh bảo mật ứng dụng web Java, kỹ thuật nào sau đây giúp ngăn chặn tấn công CSRF (Cross-Site Request Forgery)?
- A. Mã hóa dữ liệu truyền trên mạng (HTTPS)
- B. Xác thực người dùng bằng username/password
- C. Sử dụng CSRF token
- D. Kiểm soát quyền truy cập dựa trên vai trò (Role-Based Access Control)
Câu 8: Dependency Injection (DI) là một pattern quan trọng trong Spring Framework. Lợi ích chính của DI là gì?
- A. Tăng hiệu năng ứng dụng web
- B. Giảm sự phụ thuộc giữa các component và tăng tính module hóa
- C. Đơn giản hóa việc cấu hình cơ sở dữ liệu
- D. Tự động tạo giao diện người dùng
Câu 9: JPA (Java Persistence API) là một specification cho ORM (Object-Relational Mapping) trong Java. Annotation nào sau đây trong JPA được sử dụng để ánh xạ một class với một bảng trong cơ sở dữ liệu?
- A. @Id
- B. @Column
- C. @Entity
- D. @Table
Câu 10: Trong Servlet API, đối tượng `ServletContext` cung cấp thông tin về…
- A. Request hiện tại mà servlet đang xử lý
- B. Ứng dụng web mà servlet đang chạy
- C. Session của người dùng hiện tại
- D. Cấu hình của servlet hiện tại
Câu 11: Web Services giúp các ứng dụng giao tiếp với nhau qua mạng. Giao thức nào sau đây thường được sử dụng cho Web Services dựa trên REST?
- A. HTTP
- B. SMTP
- C. FTP
- D. SOAP
Câu 12: Cho đoạn code JSP: `<%@ include file=
- A. Chuyển hướng trình duyệt đến trang header.jsp.
- B. Tạo một liên kết đến trang header.jsp.
- C. Chèn nội dung của file header.jsp vào trang JSP hiện tại trước khi biên dịch.
- D. Thực thi file header.jsp trên server và hiển thị kết quả.
Câu 13: Xét tình huống: Một ứng dụng web Java cần xử lý đồng thời nhiều request từ người dùng. Cơ chế nào trong Servlet giúp xử lý các request này một cách hiệu quả mà không cần tạo thread mới cho mỗi request?
- A. Servlet Filters
- B. Servlet Listeners
- C. Request Dispatcher
- D. Async Servlet (Servlet bất đồng bộ)
Câu 14: Trong Spring MVC, thành phần nào chịu trách nhiệm ánh xạ request URL đến các phương thức xử lý (handler methods) trong Controller?
- A. DispatcherServlet
- B. ViewResolver
- C. HandlerInterceptor
- D. Bean Definition Registry
Câu 15: Để triển khai một ứng dụng web Java lên server (ví dụ Tomcat), ta thường đóng gói ứng dụng thành file có định dạng nào?
- A. .JAR
- B. .WAR
- C. .EAR
- D. .ZIP
Câu 16: Trong JSP, implicit object `session` thuộc loại class nào?
- A. javax.servlet.ServletRequest
- B. javax.servlet.ServletContext
- C. javax.servlet.http.HttpSession
- D. javax.servlet.jsp.PageContext
Câu 17: Filter trong Servlet được sử dụng để làm gì?
- A. Tạo giao diện người dùng động.
- B. Quản lý session của người dùng.
- C. Kết nối ứng dụng với cơ sở dữ liệu.
- D. Chặn và xử lý request trước khi servlet xử lý và/hoặc xử lý response sau servlet.
Câu 18: Để thực hiện chuyển hướng (redirect) từ servlet đến một trang JSP khác, phương thức nào của đối tượng `HttpServletResponse` thường được sử dụng?
- A. sendRedirect()
- B. forward()
- C. include()
- D. getWriter()
Câu 19: Trong Spring Framework, annotation nào được sử dụng để đánh dấu một class là một Controller?
- A. @Component
- B. @Controller
- C. @Service
- D. @Repository
Câu 20: Xét đoạn code JSP: `<%= 5 + 3 %>`. Đoạn code này sẽ hiển thị giá trị nào trên trình duyệt?
- A. 5 + 3
- B. <%= 5 + 3 %>
- C. 8
- D. Không hiển thị gì, vì đây là lỗi cú pháp.
Câu 21: Trong ngữ cảnh bảo mật web, 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 giả mạo request (Cross-Site Request Forgery)
- C. Tấn công SQL Injection
- D. Tấn công tiêm mã script độc hại vào trang web để thực thi trên trình duyệt của người dùng khác.
Câu 22: JSTL (JSP Standard Tag Library) cung cấp các tag library chuẩn cho JSP. Thư viện JSTL core (prefix `c`) thường được sử dụng cho mục đích gì?
- A. Xử lý định dạng số và ngày tháng.
- B. Điều khiển luồng chương trình (ví dụ: vòng lặp, điều kiện) và thao tác với biến.
- C. Truy cập cơ sở dữ liệu.
- D. Xử lý XML.
Câu 23: Trong JPA, mối quan hệ `One-to-Many` giữa hai entities có ý nghĩa gì?
- A. Một entity chỉ có thể liên kết với một entity khác.
- B. Nhiều entities chỉ có thể liên kết với một entity khác.
- C. Một entity có thể liên kết với không hoặc nhiều entities khác.
- D. Các entities không có mối liên kết nào với nhau.
Câu 24: Listener trong Servlet context được sử dụng để…
- A. Phản hồi các sự kiện xảy ra trong lifecycle của ứng dụng web (ví dụ: khởi động, shutdown).
- B. Lọc các request trước khi servlet xử lý.
- C. Chuyển hướng request đến servlet khác.
- D. Xử lý lỗi xảy ra trong servlet.
Câu 25: Để cấu hình Datasource (nguồn dữ liệu) trong ứng dụng web Java EE (Jakarta EE), file cấu hình nào thường được sử dụng?
- A. pom.xml
- B. web.xml
- C. server.xml
- D. context.xml hoặc deployment descriptor
Câu 26: Trong Spring Security, cơ chế Authentication (xác thực) và Authorization (ủy quyền) có vai trò gì?
- A. Mã hóa dữ liệu và chống tấn công XSS.
- B. Xác thực danh tính người dùng và kiểm soát quyền truy cập tài nguyên.
- C. Quản lý session và ngăn chặn CSRF.
- D. Ghi log các hoạt động của người dùng và phát hiện xâm nhập.
Câu 27: Cho tình huống: Ứng dụng web Java cần lưu trữ thông tin cấu hình (ví dụ: đường dẫn file log, thông số kết nối database) mà có thể thay đổi sau khi triển khai. Cách tốt nhất để quản lý cấu hình này là gì?
- A. Hardcode cấu hình trực tiếp trong code Java.
- B. Lưu cấu hình trong cơ sở dữ liệu.
- C. Sử dụng file cấu hình bên ngoài ứng dụng (ví dụ: properties files) hoặc biến môi trường.
- D. Sử dụng cookies để lưu trữ cấu hình.
Câu 28: Trong kiến trúc Microservices, mỗi microservice thường được triển khai như một…
- A. Module trong một ứng dụng web lớn duy nhất.
- B. Thư viện (library) được chia sẻ giữa các ứng dụng.
- C. Function trong một serverless platform.
- D. Ứng dụng web độc lập, có thể triển khai và scale riêng biệt.
Câu 29: Để kiểm thử (testing) các API RESTful trong ứng dụng web Java, công cụ nào sau đây thường được sử dụng?
- A. Postman, Swagger UI, curl
- B. JUnit, Mockito, Selenium
- C. Maven, Gradle, Ant
- D. Git, Docker, Jenkins
Câu 30: Giả sử bạn có một ứng dụng web Java sử dụng JPA và Hibernate. Bạn muốn tối ưu hiệu năng truy vấn cơ sở dữ liệu. Kỹ thuật nào sau đây có thể giúp giảm số lượng truy vấn database khi truy cập dữ liệu liên quan (related entities)?
- A. Sử dụng Prepared Statements cho tất cả truy vấn.
- B. Tăng kích thước connection pool.
- C. Sử dụng Eager Loading hoặc Fetch Join trong JPA queries.
- D. Vô hiệu hóa caching của Hibernate.