Đề ôn · SBA301

SBA301 Tích hợp ứng dụng trang đơn với Spring Boot – Bộ ôn tập cuối kỳ số 1 (48 câu)

48 câu · Cuối kỳ · Summer 2026

48câu trong đề
SBA301môn

Câu hỏi của đề

15/48 câuCòn 33
ASort
BPageable
CSlice
DList
Lời giải
Để xác định số trang và kích thước trang trong Spring Data JPA, bạn cần sử dụng đối tượng Pageable. Đối tượng này cho phép bạn sắp xếp và phân trang dữ liệu một cách linh hoạt. Bạn có thể sử dụng Pageable để chỉ định số trang và kích thước trang trong các phương thức tìm kiếm dữ liệu. Ví dụ, bạn có thể sử dụng Pageable để tìm kiếm 10 bản ghi trên trang thứ 2 của dữ liệu. Đối tượng Pageable cũng cho phép bạn sắp xếp dữ liệu theo các tiêu chí khác nhau, chẳng hạn như sắp xếp dữ liệu theo tên hoặc sắp xếp dữ liệu theo ngày tạo.
Mở trang câu hỏi này →
2What is the purpose of the JWT header?4 lựa chọnDễ100% trả lời đúng
ATo store user data.
BTo store the signing algorithm and token type.
CTo store the signature.
DTo store the expiration time.
Lời giải
JWT (JSON Web Token) là một loại token được sử dụng để xác thực và truyền thông tin giữa các ứng dụng. Header của JWT chứa thông tin về thuật toán ký và loại token. Nó được sử dụng để xác định cách thức ký token và loại token được sử dụng. Ví dụ, nếu header chứa thông tin về thuật toán HMAC SHA256 và loại token là JWT, thì ứng dụng nhận được token có thể xác định được cách thức ký token và loại token được sử dụng. Điều này giúp ứng dụng nhận được token có thể xác thực và giải mã token một cách chính xác. Ngoài ra, header còn chứa thông tin về phiên bản của JWT, giúp ứng dụng nhận được token có thể xác định được phiên bản của token và xử lý token một cách phù hợp.
Mở trang câu hỏi này →
3How are credentials transmitted in HTTP Basic authentication?4 lựa chọnDễ100% trả lời đúng
AEncrypted using a server-side public key.
BSent in plain text in the request body.
CBase64-encoded and sent in the Authorization header.
DHashed using a nonce and a server-side secret.
Lời giải
Trong HTTP Basic authentication, thông tin xác thực được truyền đi dưới dạng mã hóa Base64 và được gửi trong tiêu đề Authorization. Điều này có nghĩa là thông tin xác thực được mã hóa bằng một thuật toán mã hóa Base64, sau đó được gửi đến server trong tiêu đề Authorization. Server sẽ nhận được thông tin này và giải mã nó để xác thực người dùng. Việc truyền thông tin xác thực dưới dạng mã hóa Base64 giúp bảo vệ thông tin khỏi bị đọc hoặc truy cập trái phép trong quá trình truyền đi.
Mở trang câu hỏi này →
AUsing this.props.params.
BUsing useParams() Hook.
CUsing props.match.params.
DUsing context.params.
Lời giải
Để truy cập tham số đường dẫn trong một thành phần được rendered bởi React Router v6, bạn có thể sử dụng Hook useParams(). Hook này được sử dụng để lấy tham số đường dẫn từ URL. Ví dụ, nếu bạn có một đường dẫn như /users/:id, bạn có thể sử dụng useParams() để lấy giá trị của tham số :id. Bạn có thể sử dụng useParams() trong bất kỳ hàm nào của thành phần, chẳng hạn như hàm render hoặc hàm useEffect. Ngoài ra, bạn cũng có thể sử dụng useParams() để lấy tham số đường dẫn từ URL trong hàm useLocation().
Mở trang câu hỏi này →
A@RequestMapping
B@Autowired
C@RestController
D@Entity
Lời giải

Để inject một Spring Data JPA repository vào một service hoặc controller, chúng ta sử dụng annotation @Autowired. Annotation này cho phép Spring tự động inject các bean vào các field hoặc setter của class. Điều này giúp giảm thiểu sự phức tạp khi viết mã và tăng cường tính tái sử dụng của code. Ví dụ, nếu chúng ta có một interface được tạo bởi Spring Data JPA, như sau:

Lời giải
public interface UserRepository extends JpaRepository<User, Long> {
}

Thì chúng ta có thể inject nó vào một service như sau: @Service

Lời giải
public class UserService {
  @Autowired private UserRepository userRepository;
}

Trong ví dụ trên, Spring sẽ tự động inject UserRepository vào UserService.

Mở trang câu hỏi này →
6Where is the session ID typically stored in Session-Based Security?4 lựa chọnTrung bình60% trả lời đúng
AIn the request header.
BIn the request body.
CIn a cookie or URL.
DIn the server's database.
Lời giải
Trong bảo mật dựa trên phiên (Session-Based Security), ID phiên thường được lưu trữ ở đâu? ID phiên là một chuỗi ngẫu nhiên được tạo ra khi người dùng đăng nhập vào hệ thống. Nó được sử dụng để xác thực và theo dõi hoạt động của người dùng trong phiên hiện tại. ID phiên thường được lưu trữ trong một cookie hoặc URL. Cookie là một loại dữ liệu được lưu trữ trên trình duyệt của người dùng, trong khi URL là địa chỉ web được sử dụng để truy cập vào một trang web cụ thể. Khi người dùng đăng nhập vào hệ thống, ID phiên sẽ được lưu trữ trong cookie hoặc URL và được gửi lại cho server mỗi khi người dùng thực hiện một yêu cầu. Điều này cho phép server xác thực và theo dõi hoạt động của người dùng một cách hiệu quả.
Mở trang câu hỏi này →
7When should you use the Slice interface in Spring Data JPA?4 lựa chọnDễ100% trả lời đúng
AWhen you need the total number of elements and total pages.
BWhen you want to avoid counting all elements and improve performance.
CWhen you need to sort the results with detailed page information.
DWhen you only need the data and a "previous" indicator.
Lời giải
Khi sử dụng Slice interface trong Spring Data JPA, bạn nên lưu ý rằng nó không phải là một cách thay thế cho Page interface. Slice interface được thiết kế để trả về một phần của dữ liệu, không bao gồm thông tin tổng số phần tử và tổng số trang. Điều này giúp cải thiện hiệu suất khi bạn không cần phải đếm tất cả các phần tử. Slice interface phù hợp khi bạn cần trả về một phần dữ liệu và chỉ cần biết có phần tử trước đó hay không. Ví dụ, khi bạn muốn trả về 10 phần tử đầu tiên và chỉ cần biết có phần tử trước đó hay không, bạn có thể sử dụng Slice interface. Tuy nhiên, nếu bạn cần biết tổng số phần tử và tổng số trang, bạn nên sử dụng Page interface.
Mở trang câu hỏi này →
AThe database connection URL.
BThe database dialect.
CThe location of a Hibernate mapping file that defines how a Java class is mapped to a database table.
DThe location of the Hibernate configuration file.
Lời giải

Dòng <mapping resource="User.hbm.xml"> trong file hibernate.cfg.xml chỉ định vị trí của một tệp định nghĩa ánh xạ Hibernate (Hibernate mapping file) mà định nghĩa cách ánh xạ một lớp Java sang một bảng trong cơ sở dữ liệu. Tệp này thường được gọi là tệp định nghĩa ánh xạ (mapping file) và thường có định dạng .hbm.xml. Mục đích chính của tệp này là định nghĩa cách ánh xạ các trường trong lớp Java sang các cột trong bảng cơ sở dữ liệu, cũng như các mối quan hệ giữa các bảng.

Mở trang câu hỏi này →
ALayered System
BCode on Demand
CStateless
DCacheable
Lời giải
Mô hình REST có nguyên tắc đảm bảo rằng mỗi yêu cầu từ client đến server phải chứa tất cả thông tin cần thiết để hiểu và xử lý yêu cầu. Nguyên tắc này được gọi là 'Stateless'. Điều này có nghĩa là server không lưu trữ trạng thái của client và không dựa vào trạng thái đó để xử lý yêu cầu. Thay vào đó, mỗi yêu cầu phải chứa thông tin cần thiết để server có thể xử lý nó một cách độc lập. Điều này giúp tăng tính linh hoạt và khả năng mở rộng của hệ thống.
Mở trang câu hỏi này →
10What is a key advantage of client-side routing?4 lựa chọnDễ100% trả lời đúng
AImproved SEO.
BFaster initial page load times.
CSmoother user experience due to reduced server requests.
DEnhanced server security.
Lời giải
Routing trên phía client là một kỹ thuật giúp cải thiện hiệu suất của ứng dụng web. Một trong những lợi ích chính của client-side routing là nó giúp giảm số lượng yêu cầu đến server. Khi sử dụng client-side routing, ứng dụng web sẽ không cần phải gửi yêu cầu đến server để tải lại trang mới mỗi khi người dùng chuyển đổi giữa các trang. Thay vào đó, ứng dụng sẽ xử lý chuyển đổi trang trên phía client, giảm thiểu số lượng yêu cầu đến server. Điều này giúp cải thiện tốc độ tải trang và mang lại trải nghiệm người dùng mượt mà hơn.
Mở trang câu hỏi này →
11What is a key advantage of using MongoTemplate?4 lựa chọnDễ75% trả lời đúng
AAutomatic generation of CRUD methods.
BFlexibility for complex queries and operations.
CSimplified data model definition.
DBuilt-in transaction management.
Lời giải
MongoTemplate là một công cụ mạnh mẽ trong Spring Data MongoDB, cung cấp nhiều lợi ích khi sử dụng. Một trong những lợi ích chính của MongoTemplate là tính linh hoạt trong việc thực hiện các truy vấn phức tạp và các hoạt động khác. Với MongoTemplate, bạn có thể dễ dàng tạo ra các truy vấn phức tạp bằng cách sử dụng các phương thức như find, update, remove và nhiều hơn nữa. Điều này giúp bạn có thể thực hiện các truy vấn và các hoạt động phức tạp mà không cần phải viết mã thủ công. Ngoài ra, MongoTemplate cũng cung cấp các tính năng như hỗ trợ các loại dữ liệu phức tạp, hỗ trợ các loại dữ liệu không xác định và hỗ trợ các tính năng khác của MongoDB. Tính linh hoạt của MongoTemplate giúp bạn có thể dễ dàng thích nghi với các yêu cầu phức tạp của dự án và tăng hiệu suất của ứng dụng.
Mở trang câu hỏi này →
12Which method in MongoTemplate is used to insert a single document?4 lựa chọnTrung bình50% trả lời đúng
Asave()
Binsert()
Ccreate()
Dadd()
Lời giải
Để thêm một bản ghi đơn (single document) vào cơ sở dữ liệu MongoDB bằng cách sử dụng MongoTemplate, bạn cần sử dụng phương thức phù hợp. Trong các phương thức được đề cập, phương thức "insert()" là lựa chọn chính xác.
Mở trang câu hỏi này →
13Which code snippet correctly creates a React-Bootstrap form select control?4 lựa chọnTrung bình67% trả lời đúng
A<Form.Select> <option>1</option> <option>2</option> </Form.Select>
B<Select> <option>1</option> <option>2</option> </Select>
C<Form.Dropdown> <option>1</option> <option>2</option> </Form.Dropdown>
D<Dropdown> <option>1</option> <option>2</option> </Dropdown>
Lời giải

Để tạo một form select control trong React-Bootstrap, bạn cần sử dụng thẻ <Form.Select>. Thẻ này sẽ tạo một lựa chọn dropdown cho người dùng. Ví dụ, bạn muốn tạo một form select với các lựa chọn là 1 và 2, bạn có thể sử dụng mã sau:

Lời giải
<Form.Select>
  <option>1</option>
  <option>2</option>
</Form.Select>

. Điều này sẽ tạo một form select với hai lựa chọn là 1 và 2. Ngoài ra, bạn cũng có thể sử dụng các thẻ khác như <Select>, <Form.Dropdown>, <Dropdown> nhưng chúng không phải là thẻ chính thức để tạo form select control trong React-Bootstrap.

Mở trang câu hỏi này →
14How do you create navigation links in a React-Bootstrap Navbar?4 lựa chọnDễ100% trả lời đúng
A<NavLink>
B<Nav Link>
C<Link>
D<Anchor>
Lời giải

Để tạo liên kết điều hướng trong Navbar của React-Bootstrap, bạn cần sử dụng thẻ <NavLink>. Thẻ này cho phép bạn tạo liên kết điều hướng với các thuộc tính như href, active, exact, và nhiều thuộc tính khác. Ví dụ, bạn có thể sử dụng <NavLink> như sau: import { NavLink } from 'react-bootstrap'; <NavLink to="/home">Trang chủ</NavLink> Trong ví dụ trên, <NavLink> được sử dụng để tạo liên kết điều hướng đến trang chủ với đường dẫn /home. Ngoài ra, bạn cũng có thể sử dụng thuộc tính active để chỉ định liên kết hiện tại. <NavLink active to="/home">Trang chủ</NavLink> Tóm lại, <NavLink> là một phần quan trọng trong việc tạo liên kết điều hướng trong Navbar của React-Bootstrap.

Mở trang câu hỏi này →
15Which authentication method sends credentials with every request in RESTful APIs?4 lựa chọnTrung bình57% trả lời đúng
ASession-based authentication
BToken-based authentication (JWT)
COAuth 2.0
DBasic Authentication
Lời giải
Trong RESTful APIs, phương thức xác thực gửi thông tin xác thực với mỗi yêu cầu là Basic Authentication. Phương thức này gửi thông tin xác thực của người dùng, bao gồm tên người dùng và mật khẩu, trong mỗi yêu cầu HTTP. Điều này có thể không an toàn vì thông tin xác thực được gửi qua đường truyền không bảo mật. Token-based authentication (JWT) và OAuth 2.0 cũng là các phương thức xác thực phổ biến trong RESTful APIs, nhưng chúng không gửi thông tin xác thực với mỗi yêu cầu. Thay vào đó, chúng sử dụng token hoặc mã xác thực để xác thực người dùng.
Mở trang câu hỏi này →