1. Thẻ `` trong JSP được dùng để làm gì?
A. Khai báo một biến JSP
B. Tạo hoặc truy cập một Java Bean
C. Nhúng mã JavaScript
D. Thực hiện truy vấn database
2. JSP (JavaServer Pages) được biên dịch thành loại nào trước khi thực thi trên máy chủ web?
A. Java Applets
B. Java Beans
C. Java Servlets
D. Java RMI
3. HTTP method nào thường được sử dụng để gửi dữ liệu từ client lên server để tạo mới tài nguyên?
A. GET
B. POST
C. PUT
D. DELETE
4. Filter trong Servlet được sử dụng để làm gì?
A. Tạo giao diện người dùng
B. Xử lý yêu cầu và phản hồi trước hoặc sau khi Servlet xử lý
C. Quản lý database connection
D. Thực hiện logic nghiệp vụ chính
5. Đối tượng `HttpServletResponse` trong Servlet dùng để làm gì?
A. Đọc dữ liệu từ yêu cầu HTTP
B. Gửi phản hồi HTTP về cho client
C. Quản lý session
D. Xử lý lỗi
6. Ưu điểm chính của việc sử dụng framework Spring Boot trong phát triển ứng dụng web Java là gì?
A. Cung cấp khả năng bảo mật mạnh mẽ hơn
B. Đơn giản hóa cấu hình và triển khai ứng dụng
C. Tăng hiệu suất thực thi ứng dụng
D. Hỗ trợ phát triển ứng dụng mobile
7. EL (Expression Language) trong JSP được sử dụng để làm gì?
A. Viết mã Java trực tiếp trong JSP
B. Truy cập và hiển thị dữ liệu từ các đối tượng Java
C. Xử lý sự kiện phía client
D. Định nghĩa CSS styles
8. HTTP status code `404 Not Found` có ý nghĩa gì?
A. Yêu cầu thành công
B. Lỗi server
C. Tài nguyên không tìm thấy
D. Yêu cầu bị từ chối (Forbidden)
9. Annotation `@WebServlet` trong Java Servlet được sử dụng để làm gì?
A. Khai báo một class là EJB
B. Khai báo một class là Servlet và ánh xạ URL đến Servlet đó
C. Khai báo một class là JSP
D. Khai báo một class là Filter
10. Đối tượng `HttpServletRequest` trong Servlet chứa thông tin gì?
A. Thông tin về phản hồi HTTP gửi về client
B. Thông tin về cấu hình Servlet
C. Thông tin về yêu cầu HTTP từ client
D. Thông tin về session hiện tại
11. Công cụ build và quản lý dependencies phổ biến cho dự án Java là gì?
A. Ant
B. Maven và Gradle
C. Java Compiler (javac)
D. Java Virtual Machine (JVM)
12. WAR file (Web Application Archive) là gì?
A. Một loại file cấu hình database
B. Một định dạng đóng gói ứng dụng web Java để triển khai lên server
C. Một file chứa mã nguồn Java
D. Một loại thư viện Java
13. Container web (ví dụ Tomcat, Jetty) cung cấp môi trường runtime cho thành phần nào của ứng dụng web Java?
A. Java Beans
B. Servlets và JSPs
C. Applets
D. Java RMI objects
14. Dependency Injection (DI) là gì trong ngữ cảnh Spring Framework?
A. Một kỹ thuật để tối ưu hóa hiệu suất ứng dụng
B. Một design pattern giúp quản lý dependencies giữa các components
C. Một cơ chế bảo mật của Spring
D. Một cách để cấu hình database connection
15. XSS (Cross-Site Scripting) là loại tấn công web như thế nào?
A. Tấn công từ chối dịch vụ
B. Tấn công chèn mã script độc hại vào trang web
C. Tấn công giả mạo yêu cầu
D. Tấn công khai thác lỗ hổng cấu hình server
16. Trong JSP, implicit object `${param}` được sử dụng để truy cập:
A. Thuộc tính của session
B. Tham số từ yêu cầu HTTP
C. Cookies
D. Biến ứng dụng (application scope)
17. Annotation `@Controller` trong Spring MVC dùng để đánh dấu class nào?
A. Class chứa logic nghiệp vụ (Model)
B. Class chịu trách nhiệm xử lý yêu cầu HTTP (Controller)
C. Class đại diện cho View
D. Class cấu hình database
18. Để bảo vệ ứng dụng web Java khỏi tấn công SQL Injection, biện pháp quan trọng nhất là gì?
A. Sử dụng HTTPS
B. Sử dụng Prepared Statements hoặc ORM
C. Cấu hình tường lửa (Firewall)
D. Kiểm tra input phía client
19. Framework Spring MVC trong Java giúp phát triển ứng dụng web theo mô hình kiến trúc nào?
A. Client-Server
B. MVC (Model-View-Controller)
C. Layered Architecture
D. Microservices
20. CSRF (Cross-Site Request Forgery) là loại tấn công web như thế nào?
A. Tấn công chèn mã độc vào database
B. Tấn công giả mạo yêu cầu từ người dùng đã xác thực
C. Tấn công từ chối dịch vụ
D. Tấn công khai thác lỗ hổng bảo mật server
21. Trong phát triển ứng dụng Web với Java, công nghệ nào sau đây chịu trách nhiệm xử lý các yêu cầu HTTP và tạo phản hồi động?
A. Java Applets
B. Java Servlets
C. Java Beans
D. Java RMI
22. CORS (Cross-Origin Resource Sharing) là cơ chế bảo mật trình duyệt web để làm gì?
A. Ngăn chặn tấn công SQL Injection
B. Kiểm soát việc tài nguyên web từ domain này có được phép truy cập bởi domain khác hay không
C. Mã hóa dữ liệu truyền trên mạng
D. Xác thực người dùng
23. ORM (Object-Relational Mapping) framework nào phổ biến trong Java để tương tác với database?
A. JDBC Template
B. JPA (Java Persistence API) và Hibernate
C. Spring Data JDBC
D. MyBatis
24. RESTful API là gì?
A. Một loại database quan hệ
B. Một kiến trúc thiết kế API cho ứng dụng web, tuân theo các nguyên tắc REST
C. Một framework phát triển front-end
D. Một giao thức mạng
25. Phương thức nào của Servlet được gọi đầu tiên khi Servlet được khởi tạo bởi container web?
A. service()
B. init()
C. doGet()
D. destroy()
26. Để duy trì trạng thái phiên (session) giữa các yêu cầu HTTP trong ứng dụng web Java, cơ chế phổ biến nhất là sử dụng:
A. Applets
B. Cookies
C. Java Beans
D. RMI
27. Listener trong Servlet context được sử dụng để làm gì?
A. Lắng nghe sự kiện từ client
B. Lắng nghe sự kiện lifecycle của Servlet context, session, request
C. Xử lý lỗi
D. Định tuyến yêu cầu
28. HTTP status code `200 OK` có ý nghĩa gì?
A. Yêu cầu bị lỗi
B. Yêu cầu thành công
C. Tài nguyên không tìm thấy
D. Lỗi server
29. JSON (JavaScript Object Notation) thường được sử dụng để làm gì trong ứng dụng web Java?
A. Định nghĩa giao diện người dùng
B. Trao đổi dữ liệu giữa server và client (ví dụ trong REST API)
C. Cấu hình server
D. Viết logic nghiệp vụ
30. Thành phần nào trong kiến trúc MVC (Model-View-Controller) chịu trách nhiệm xử lý logic nghiệp vụ và tương tác với dữ liệu?
A. View
B. Controller
C. Model
D. Servlet