Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Phát Triển Ứng Dụng Web Với Java - Đề 01
Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Phát Triển Ứng Dụng Web Với Java - Đề 01 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 phát triển ứng dụng web Java, Servlet đóng vai trò chính yếu nào trong mô hình MVC (Model-View-Controller)?
- A. Lưu trữ và quản lý dữ liệu ứng dụng (Model)
- B. Xử lý yêu cầu từ người dùng và điều phối tương tác giữa Model và View (Controller)
- C. Hiển thị giao diện người dùng và trình bày dữ liệu (View)
- D. Định nghĩa cấu trúc và nội dung tĩnh của trang web
Câu 2: Vòng đời (lifecycle) của một Servlet trong Java Web Application bao gồm những giai đoạn chính nào theo thứ tự?
- A. service(), init(), destroy()
- B. destroy(), service(), init()
- C. init(), service(), destroy()
- D. start(), process(), end()
Câu 3: Phương thức `doGet()` và `doPost()` trong Servlet được sử dụng để xử lý các loại HTTP request nào tương ứng?
- A. `doGet()` cho GET request và `doPost()` cho POST request
- B. `doGet()` cho POST request và `doPost()` cho GET request
- C. Cả hai phương thức đều xử lý cả GET và POST request
- D. `doGet()` cho request có header và `doPost()` cho request không header
Câu 4: Để chia sẻ dữ liệu giữa các Servlet khác nhau trong cùng một ứng dụng web Java, đối tượng nào sau đây thường được sử dụng?
- A. HttpServletRequest
- B. HttpServletResponse
- C. HttpSession
- D. ServletContext
Câu 5: JSP (JavaServer Pages) khác biệt so với Servlet chủ yếu ở điểm nào trong quá trình phát triển ứng dụng web?
- A. JSP có hiệu năng cao hơn Servlet trong xử lý request
- B. JSP dễ dàng hơn cho việc thiết kế giao diện người dùng, trong khi Servlet tập trung vào logic nghiệp vụ
- C. Servlet hỗ trợ tốt hơn cho việc quản lý session so với JSP
- D. Servlet có thể trực tiếp truy cập cơ sở dữ liệu, còn JSP thì không
Câu 6: Trong JSP, "implicit objects" (đối tượng ngầm định) như `request`, `response`, `session`, `application`... được cung cấp nhằm mục đích gì?
- A. Thay thế cho việc sử dụng các biến và đối tượng tự định nghĩa trong JSP
- B. Tăng cường tính bảo mật cho ứng dụng web
- C. Cung cấp các phương tiện truy cập đến thông tin về request, response, session, application context và các dịch vụ khác của container
- D. Giảm thiểu sự phụ thuộc vào Servlet trong ứng dụng web Java
Câu 7: Chỉ thị (directive) `<%@ include file=
- A. Chèn nội dung của file "header.jsp" vào trang JSP hiện tại trong quá trình biên dịch
- B. Tạo liên kết đến file "header.jsp" khi trang JSP được yêu cầu
- C. Tải file "header.jsp" lên server
- D. Định nghĩa header cho trang JSP
Câu 8: Sự khác biệt chính giữa `
A. Không có sự khác biệt, cả hai đều thực hiện cùng một chức năng
B. `` chỉ dùng cho file HTML, còn `<%@ include>` dùng cho file JSP
C. `<%@ include>` cho phép truyền tham số, còn `` thì không
D. `<%@ include>` thực hiện include tại thời điểm biên dịch (static), còn `` thực hiện tại thời điểm runtime (dynamic)
Câu 9: Session tracking (theo dõi phiên) trong ứng dụng web Java thường được sử dụng để giải quyết vấn đề nào?
- A. Tăng tốc độ tải trang web
- B. Duy trì trạng thái và thông tin của người dùng giữa các request trong môi trường HTTP stateless
- C. Bảo vệ ứng dụng web khỏi tấn công CSRF
- D. Quản lý bộ nhớ server hiệu quả hơn
Câu 10: Cookies và HttpSession là hai cơ chế phổ biến cho session tracking. Điểm khác biệt quan trọng giữa chúng là gì?
- A. Cookies bảo mật hơn HttpSession
- B. HttpSession chỉ có thể được sử dụng trong JSP, còn Cookies thì không
- C. Cookies lưu trữ thông tin trên client (browser), còn HttpSession lưu trữ thông tin trên server
- D. HttpSession có thể lưu trữ dữ liệu phức tạp hơn Cookies
Câu 11: Để thiết lập một cookie trong Servlet và gửi nó về cho trình duyệt client, bạn sử dụng đối tượng nào?
- A. HttpServletRequest
- B. HttpServletResponse
- C. HttpSession
- D. ServletContext
Câu 12: Filter trong Java Web Application được sử dụng để làm gì?
- A. Thay thế Servlet để xử lý request
- B. Tạo giao diện người dùng động
- C. Quản lý session của người dùng
- D. Thực hiện các tác vụ tiền xử lý (preprocessing) request và hậu xử lý (postprocessing) response, ví dụ: logging, authentication, encoding
Câu 13: Listener trong Java Web Application có vai trò gì?
- A. Lắng nghe và phản ứng với các sự kiện (events) xảy ra trong lifecycle của ứng dụng web hoặc session, ví dụ: context initialization, session creation
- B. Lọc các request không hợp lệ
- C. Điều hướng request đến Servlet phù hợp
- D. Tối ưu hóa hiệu năng ứng dụng web
Câu 14: Để cấu hình Servlet, Filter hoặc Listener trong ứng dụng web Java, phương thức cấu hình truyền thống nào thường được sử dụng?
- A. Annotation trực tiếp trong code Java
- B. File cấu hình properties
- C. File `web.xml` (Deployment Descriptor)
- D. Cấu hình thông qua giao diện dòng lệnh của web server
Câu 15: Ưu điểm chính của việc sử dụng framework MVC (Model-View-Controller) trong phát triển ứng dụng web Java là gì?
- A. Tăng hiệu năng xử lý của ứng dụng web
- B. Tách biệt rõ ràng các thành phần logic nghiệp vụ, giao diện người dùng và quản lý dữ liệu, giúp code dễ bảo trì, mở rộng và kiểm thử hơn
- C. Giảm thiểu việc sử dụng Java code trong ứng dụng web
- D. Tự động tạo giao diện người dùng từ cơ sở dữ liệu
Câu 16: Trong ngữ cảnh bảo mật ứng dụng web Java, CSRF (Cross-Site Request Forgery) là loại tấn công nào?
- A. Tấn công từ chối dịch vụ (Denial of Service)
- B. Tấn công chèn mã SQL (SQL Injection)
- C. Tấn công giả mạo request, lợi dụng phiên đăng nhập của người dùng để thực hiện hành động không mong muốn
- D. Tấn công XSS (Cross-Site Scripting)
Câu 17: Để ngăn chặn tấn công CSRF, một trong những biện pháp phòng ngừa phổ biến là sử dụng...
- A. CSRF token (Synchronizer Token)
- B. Mã hóa dữ liệu trên đường truyền HTTPS
- C. Xác thực hai yếu tố
- D. Giới hạn số lượng request từ một địa chỉ IP
Câu 18: JPA (Java Persistence API) được sử dụng để giải quyết vấn đề gì trong phát triển ứng dụng web Java?
- A. Xây dựng giao diện người dùng động
- B. Quản lý và thao tác dữ liệu trong cơ sở dữ liệu quan hệ một cách dễ dàng hơn thông qua ORM (Object-Relational Mapping)
- C. Xử lý request và response trong Servlet
- D. Quản lý session và cookies
Câu 19: Entity trong JPA đại diện cho khái niệm nào?
- A. Một phương thức trong Servlet để xử lý request
- B. Một thành phần giao diện người dùng trong JSP
- C. Một bảng (table) trong cơ sở dữ liệu quan hệ
- D. Một phiên làm việc của người dùng (session)
Câu 20: Dependency Injection (DI) là một pattern quan trọng trong phát triển ứng dụng Java, đặc biệt trong các framework như Spring. Lợi ích chính của DI là gì?
- A. Tăng hiệu năng ứng dụng bằng cách giảm số lượng đối tượng được tạo ra
- B. Đơn giản hóa việc quản lý session và cookies
- C. Tự động tạo code boilerplate
- D. Giảm sự phụ thuộc (coupling) giữa các thành phần, giúp ứng dụng dễ kiểm thử, bảo trì và mở rộng hơn
Câu 21: RESTful API là gì và tại sao nó trở nên phổ biến trong phát triển ứng dụng web?
- A. Một loại cơ sở dữ liệu NoSQL
- B. Một kiến trúc thiết kế API cho web services, tuân theo các nguyên tắc như stateless, client-server, cacheable, layered system, uniform interface; phổ biến vì tính đơn giản, dễ mở rộng và khả năng tương tác tốt giữa các hệ thống
- C. Một framework phát triển giao diện người dùng
- D. Một giao thức bảo mật cho truyền dữ liệu web
Câu 22: Phương thức HTTP nào thường được sử dụng để lấy dữ liệu từ server trong RESTful API?
- A. GET
- B. POST
- C. PUT
- D. DELETE
Câu 23: JSON (JavaScript Object Notation) thường được sử dụng làm gì trong phát triển RESTful API?
- A. Ngôn ngữ lập trình server-side
- B. Công cụ quản lý cơ sở dữ liệu
- C. Định dạng dữ liệu trao đổi (data-interchange format) giữa client và server trong request và response
- D. Framework phát triển RESTful API
Câu 24: Web server (ví dụ: Tomcat, Jetty) có vai trò gì trong kiến trúc ứng dụng web Java?
- A. Phát triển giao diện người dùng
- B. Quản lý cơ sở dữ liệu
- C. Viết logic nghiệp vụ cho ứng dụng
- D. Cung cấp môi trường runtime (container) cho các ứng dụng web Java, xử lý request từ client, quản lý lifecycle của Servlet và JSP
Câu 25: WAR file (Web Application Archive) là gì và dùng để làm gì?
- A. File cấu hình cơ sở dữ liệu
- B. Một dạng file archive (zip) chứa toàn bộ ứng dụng web Java (code, resources, cấu hình) để triển khai (deploy) lên web server
- C. File chứa mã nguồn Java của ứng dụng web
- D. File chứa thư viện (libraries) Java dùng chung cho nhiều ứng dụng web
Câu 26: JDBC (Java Database Connectivity) được sử dụng để làm gì trong ứng dụng web Java?
- A. Xây dựng giao diện người dùng tương tác với cơ sở dữ liệu
- B. Tối ưu hóa truy vấn cơ sở dữ liệu
- C. Kết nối và tương tác với các hệ quản trị cơ sở dữ liệu (RDBMS) từ code Java
- D. Quản lý schema cơ sở dữ liệu
Câu 27: Statement và PreparedStatement trong JDBC khác nhau chủ yếu ở điểm nào?
- A. Statement nhanh hơn PreparedStatement
- B. PreparedStatement chỉ dùng cho câu lệnh SELECT, Statement dùng cho tất cả các loại câu lệnh SQL
- C. Statement dễ sử dụng hơn PreparedStatement
- D. PreparedStatement giúp ngăn ngừa tấn công SQL Injection và có hiệu năng tốt hơn cho các truy vấn lặp đi lặp lại
Câu 28: Transaction management (quản lý giao dịch) quan trọng như thế nào trong ứng dụng web Java, đặc biệt khi làm việc với cơ sở dữ liệu?
- A. Chỉ quan trọng đối với các ứng dụng web lớn và phức tạp
- B. Giúp tăng tốc độ truy cập cơ sở dữ liệu
- C. Đảm bảo tính toàn vẹn và nhất quán của dữ liệu khi thực hiện các thao tác phức tạp trên cơ sở dữ liệu (ACID properties)
- D. Chỉ cần thiết khi ứng dụng web xử lý thanh toán trực tuyến
Câu 29: ORM (Object-Relational Mapping) framework như Hibernate giúp ích gì cho lập trình viên Java khi làm việc với cơ sở dữ liệu?
- A. Tăng hiệu năng truy vấn cơ sở dữ liệu
- B. Giảm thiểu code boilerplate liên quan đến thao tác cơ sở dữ liệu, cho phép lập trình viên làm việc với cơ sở dữ liệu ở mức độ object (đối tượng) thay vì SQL thuần túy, tăng năng suất phát triển
- C. Tự động tạo giao diện người dùng từ dữ liệu trong cơ sở dữ liệu
- D. Đảm bảo bảo mật cho cơ sở dữ liệu
Câu 30: Trong ngữ cảnh kiểm thử ứng dụng web Java, Unit test và Integration test khác nhau như thế nào?
- A. Unit test kiểm tra giao diện người dùng, Integration test kiểm tra logic nghiệp vụ
- B. Integration test được thực hiện trước Unit test
- C. Unit test chỉ dùng cho backend, Integration test chỉ dùng cho frontend
- D. Unit test tập trung kiểm tra các thành phần (components) riêng lẻ, độc lập, còn Integration test kiểm tra sự tương tác và làm việc cùng nhau của các thành phần khác nhau trong hệ thống