Font size
WorksheetsJAVA6
Total questions: 151
Worksheet time: 37hrs 16mins
Chon interface
@FunctionalInterface
public interface Demo4Inter{
void m1(int x);
}
Hãy chọn mã đúng khi tạo đối tượng
Demo4Inter o4 = x - > System.out.println(x);
Demo4Inter o3 = x - > {};
Demo4Inter o1 = new Demo4Inter() { @Override public void m1(int x) {} };
Demo4Inter o2 = new Demo4Inter() { @Override public void m1(int x) {} public void m2() {} };
Chon interface
@FunctionalInterface
public interface Demo4Inter{
void m1(int x);
}
Hãy chọn mã đúng khi tạo đối tượng
Demo4Inter o3 = x - > {};
Demo4Inter o4 = x - > System.out.println(x);
Demo4Inter o1 = new Demo4Inter() { @Override public void m1(int x) {} };
Demo4Inter o2 = new Demo4Inter() { @Override public void m1(int x) {} @Override public void m2() {} };
Đâu là cú pháp đúng của phương thức readValue() trong ObjectMapper
1. readValue(source, Class < T > ): T
2. readValue(source, TypeReference < T > ): T
1 sai, 2 đúng
1 đúng, 2 đúng
1 sai, 2 sai
1 đúng, 2 sai
Đâu là phương thức trung gian trong Stream API?
filter()
map()
sorted()
forEach()
Đâu là phương thức trung gian trong Stream API?
count()
min()
mapToDouble()
max()
Cho lớp Student:
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student {
String name;
Boolean gender = false;
Double marks = 0.0;
}
Hãy điền mã đúng vào chỗ trống:
List < Student > list = Arrays.asList(
new Student("Nguyễn Văn Tèo", true, 7.5)
...
);
Collections.sort(list, _____);
(sv1, sv2) - > sv1.getName().compareTo(sv2.getName())
(sv1, sv2) - > { return sv1.getName().compareTo(sv2.getName());}
(sv1, sv2) - > sv1.getName().compareTo(sv2.getName());
(sv1, sv2) - > { return sv1.getName().compareTo(sv2.getName())}
Đâu là các phương thức của ObjectMapper được sử dụng để đọc nguồn dữ liệu JSON và cho kết quả là JSonNode
readTree()
readValue()
writeValueAsString()
writeValue()
Phương thức nào có các Stream của đầu vào và đầu ra chứa các phần tử cùng kiểu?
limit()
map()
peek()
filter()
Đâu là phương thức kết thúc trong Stream API?
peek()
sum()
reduce()
collect()
Lệnh nào được sử dụng để duyệt các key trong đối tượng JavaScript?
for(var key: object)
for(var key in object)
foreach(var key in object)
foreach(var key: object)
Đâu là các phương thức của JsonNode được sử dụng để chuyển đổi sang Iterator < JsonNode > ?
node(key)
get(key)
iterator()
iterator(key)
Đâu là phương thức kết thúc trong Stream API?
filter()
sorted()
forEach()
map()
Cho lớp Student:
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student {
String name;
Boolean gender = false;
Double marks = 0.0;
}
Hãy điền mã đúng vào chỗ trống:
List < Student > list = Arrays.asList(
new Student("Nguyễn Văn Tèo", true, 7.5)
...
);
Collections.sort(list, _____);
(sv1, sv2) - > -sv1.getMarks().compareTo(sv2.getMarks());
(sv1, sv2) - > { return -sv1.getMarks().compareTo(sv2.getMarks())}
(sv1, sv2) - > { return -sv1.getMarks().compareTo(sv2.getMarks());}
(sv1, sv2) - > -sv1.getMarks().compareTo(sv2.getMarks())
Đâu là phương thức trung gian trong Stream API?
mapToInt()
average()
anyMatch()
allMatch()
Hãy chọn lệnh đúng duyệt Map sau
Map < String, Double > map = new HashMap < > ();
map.forEach((k, v) - > System.out.printf("%s=%.2f", k, v));
map.forEach(k, v - > System.out.printf("%s=%.2f", k, v));
map.forEach(k, v - > {System.out.printf("%s=%.2f", k, v);});
map.forEach(k, v - > {System.out.printf("%s=%.2f", k, v)});
Đâu là các thuộc tính do Thymeleaf định nghĩa mới dựa vào thuộc tính có sẵn của HTML?
th:text
th:with
th:title
th:object
Đâu là phương thức trung gian trong Stream API?
Chọn mã cho kết quả tương đương với thẻ sau
< span th:utext="${message}" > < /span >
< span > [(${message})] < /span >
< span > [[${message}]] < /span >
< span > ((${message})) < /span >
< span > ([${message}]) < /span >
Cho 2 phát biểu về dự án Spring Boot sử dụng Thymeleaf như sau:
1. Thymeleaf là một động cơ tạo mẫu (template engine) chạy phía server có khả năng xử lý việc tạo ra HTML, XML, CSS, JS và TEXT.
2. Thymeleaf dựa vào các nguyên mẫu (HTML, CSS…) và bổ sung các quy luật cần thiết để sản sinh ra template hoàn thiện với dữ liệu động.
1 đúng, 2 sai
1 sai, 2 sai
1 đúng, 2 đúng
1 sai, 2 đúng
Đâu là các thuộc tính do Thymeleaf định nghĩa mới mà không dựa vào các thuộc tính của HTML?
th:fragment
th:utext
th:remove
th:href
Giả sử x là biến trong Model có kiểu là Integer. Nếu x có giá trị là 10 thì đâu là kết quả của đoạn mã sau?
< ul th:switch="${x}" >
< li th:case="1" > Một < /li >
< li th:case="2" > Hai < /li >
< li th:case="3" > Ba < /li >
< li th:case="*" > Bốn < /li >
< /ul >
Một
Ba
Bốn
Hai
Đâu là các toán tử số học được sử dụng trong Thymeleaf
x
:
-
+
Đâu là các toán tử so sánh trong Thymeleaf?
lt
gt
>
<
Giả sử x là biến trong Model có kiểu là Double. Đâu là biểu thức hiển thị x có dạng #,###.## (2 số lẻ, tách nhóm phần nguyên bởi dấu phẩy)
${#numbers.formatDecimal(x, 0, 'COMMA', 2, 'POINT')}
${#numbers.formatDecimal(x, 0, 'COMMA', 3, 'POINT')}
${#numbers.formatDecimal(0, 'COMMA', 2, 'POINT', x)}
${#numbers.formatDecimal(x, 0, 'POINT', 2, 'COMMA')}
Đâu là các thuộc tính do Thymeleaf định nghĩa mới dựa vào thuộc tính có sẵn của HTML?
th:block
th:replace
th:insert
th:src
Giải sử p.html có chứa một fragment x. Hãy chọn mã đúng để thay thế thẻ < div > bằng fragment x.
< div th:replace="~{/p :: x}" > < /div >
< div th:replace="~{/p.html}" > < /div >
< div th:replace="~{/p.html :: x}" > < /div >
< div th:replace="~{/p}" > < /div >
Đâu là các thuộc tính do Thymeleaf định nghĩa mới dựa vào thuộc tính có sẵn của HTML?
th:if
th:switch
th:each
th:action
Đâu là biểu được sử dụng để truy xuất dữ liệu trong file tài nguyên (.properties)
*{}
~{}
#{}
${}
Giả sử list là biến trong Model có kiểu là List < String > . Hãy chọn mã lệnh đúng hiển thị các phần tử của list.
< b th:each="item, state: list" th:text="${item}" > < /b >
< b th:each="item: list" th:text="${item}" > < /b >
< b th:each="item: ${list}" th:text="${item}" > < /b >
< b th:each="item, state: ${list}" th:text="${item}" > < /b >
Đâu là biểu được sử dụng để làm đúng đường dẫn url?
${}
~{}
@{}
*{}
Giả sử list là biến trong Model có kiểu là List < String > . Hãy điền vào chỗ trống để hiển thị thứ tự và giá trị các phần tử của list.
< li th:each="item, state: ${list}" >
< b th:text="_____" > < /b >
< b th:text="_____" > < /b >
< /li >
${state}, ${item}
${state.index}, ${item}
${state.index}, ${state.item}
${index}, ${item}
@NotEmpty có thể được sử dụng để kiểm lỗi cho trường có kiểu dữ liệu nào?
Map
String
Array
Collection
@NotBlank có thể được sử dụng để kiểm lỗi cho trường có kiểu dữ liệu nào?
Collection
Array
Map
String
Hãy điền vào chỗ trống biểu thức thích hợp để buộc thuộc tính p của bean b trong Model
< form th:action="@{/save}" >
< input th:field="_____" >
< /form >
*{b.p}
*{p}
${p}
${b.p}
Đâu là cú pháp chọn fragment có tên là myfrag được khai báo trong file frags.html cùng thư mục?
< div th:replace=“frags.html :: myfrag" > … < /div >
< div th:replace=“frags :: myfrag" > … < /div >
< div th:replace=“frags :: myfrag.html" > … < /div >
< div th:replace=“frags(myfrag)" > … < /div >
Đâu là biểu thức lựa chọn fragment đúng?
~{frags.html :: myfrag}
~{frags.html :: .myclass}
~{frags.html :: body}
~{frags.html :: #myid}
Chọn phát biểu đúng về @DecimalMax() và @Max().
@Max() và @DecimalMax() là tương đương
@DecimalMax() chỉ áp dụng cho số thực @Max() chỉ áp dụng cho số nguyên
@Max() áp dụng cho cả số thực và số nguyên trong khi @DecimalMax() chỉ áp dụng cho số nguyên
@DecimalMax() áp dụng cho cả số thực và số nguyên trong khi @Max() chỉ áp dụng cho số nguyên
Đâu là các annotation kiểm lỗi số?
@Size()
@FutureOrPresent()
@Future()
@Min()
Đâu là cú pháp đúng của phương thức trong controller được sử dụng để validate dữ liệu trong đối số sv?
public String validate(@Valid Student sv, Errors errors){}
public String validate(@Validated Student sv, BindingResult errors){}
public String validate(@Validated Student sv, Errors errors){}
public String validate(@Valid Student sv, Errors errors){}
Annotation nào được sử dụng để yêu cầu Spring kiểm lỗi bean?
@Check
@Validated
@Valid
@Error
Đâu là các annotation kiểm lỗi thời gian?
@Past()
@PastOrPresent()
@Max()
@DecimalMax()
Cho 2 phát biểu về annotation kiểm lỗi sau:
1. Tất cả annotation kiểm lỗi đều có thuộc tính message
2. Nếu không cung cấp thông báo lỗi cho thuộc tính message thì hệ thống sẽ hiển thị lỗi mặc định khi có lỗi
1 đúng, 2 sai
1 đúng, 2 đúng
1 sai, 2 sai
1 sai, 2 đúng
File tài nguyên đa ngôn ngữ phải đặt thao nguyên tắc nào.
< tên > - < mã quốc gia > .properties
< tên > - < mã ngôn ngữ > .properties
< tên > _ < mã quốc gia > .properties
< tên > _ < mã ngôn ngữ > .properties
Đâu là cú pháp đúng của phương thức trong controller được sử dụng để validate dữ liệu trong đối số sv?
public String validate(Errors errors, @Valid Student sv){}
public String validate(@Valid Student sv, Errors errors){}
public String validate(@Validated Student sv, BindingResult errors){}
public String validate(@Validated Student sv, Errors errors){}
Biểu thức ~{/frags :: dynamic(~{::#main})} được hiểu là gì?
1. Chọn fragment dynamic khai báo trong frags.html và truyền thẻ main ở trang web hiện tại cho tham số của fragment dynamic trong frags.html
2. Chọn fragment dynamic khai báo trong frags.html và truyền fragment main ở trang web hiện tại cho tham số của fragment dynamic trong frags.html
1 đúng, 2 sai
1 sai, 2 sai
1 sai, 2 đúng
1 đúng, 2 đúng
Giả sử trong cấu hình java có khai báo bean để nạp các file tài nguyên đa ngôn ngữ như sau
@Bean("messageSource")
public MessageSource getMessageSource() {
ReloadableResourceBundleMessageSource ms = new ReloadableResourceBundleMessageSource();
ms.setBasenames("classpath:i18n/layout", "classpath:i18n/home");
ms.setDefaultEncoding("utf-8");
return ms;
}
Hãy cho biết các file tài nguyên đa ngôn ngữ đặt ở thư mục nào của dự án?
src/main/java/i18n
src/i18n
src/main/i18n
src/main/resources/i18n
URL url = new URL("...");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("Accept", "_____");
conn.setRequestMethod("_____");
application/json, PUT
application/json, GET
application/json, POST
application/json, DELETE
Hãy điền vào chỗ trống tên phương thức thích hợp của AngularJS để truy vấn dữ liệu.
$http._____(url).then(response = > {}).catch(error = > {}))
put
post
get
delete
Hãy điền vào các chỗ trống để tạo thành câu lệnh đúng cú pháp trong AngularJS.
$http._____(url, data)._____(response = > {})._____(error = > {}))
get/then/catch
post/then/catch
delete/then/catch
put/then/catch
Khi thực hiện POST, Firebase REST API sẽ trả về dữ liệu gì?
Đối tượng vừa thêm mới thành công
Đối tượng rỗng
Chuỗi chứa key được sinh tự động
Đối tượng chứa thuộc tính name là key được sinh tự động
Với RestTemplate API, HttpEntity < T > được sử dụng để làm nhiệm vụ gì?
Thực hiện DELETE
Thực hiện GET
Không có nhiệm vụ quan trọng
Đóng gói dữ liệu gửi đến REST API
Trong REST, POST đại diện cho hoạt động nào?
Truy vấn dữ liệu
Xóa dữ liệu
Thêm mới dữ liệu
Cập nhật dữ liệu
Hãy điền vào chỗ trống tên phương thức thích hợp của AngularJS.
$http._____(url).then(response = > {}).catch(error = > {}))
delete
put
post
get
Cho 2 phát biểu:
1. RESTful Web Service và RESTful API là một
2. REST API khác RESTful Web Service
1 sai, 2 sai
1 đúng, 2 sai
1 sai, 2 đúng
1 đúng, 2 đúng
Đối số thứ 2 (x) của phương thức RestTemplate.getForObject(url, x) có ý nghĩa gì?
1. Quy định kiểu dữ liệu trả về
2. Quy định kiểu dữ liệu gửi đi
1 sai, 2 đúng
1 đúng, 2 đúng
1 đúng, 2 sai
1 sai, 2 sai
Thuật ngữ API trong REST API viết tắt của?
Application Programming Interface
Application Programming Integration
Apply Programming Interface
Apply Program Integration
Cho 2 phát biểu sau:
1. Với SOAP, dữ liệu truyền thông cồng kềnh hơn REST
2. Với SOAP, dữ liệu truyền thông nhẹ hơn REST
1 sai, 2 đúng
1 sai, 2 sai
1 đúng, 2 sai
1 đúng, 2 đúng
Cho 2 phát biểu:
1. REST API và RESTful API là một
2. REST API khác RESTful API
1 đúng, 2 đúng
1 đúng, 2 sai
1 sai, 2 sai
1 sai, 2 đúng
Đâu là các phương thức của RestTemplate?
postForObject(url, httpEntity, responseType < T > ): T
delete(url)
put(url, httpEntity)
getForObject(url, responseType < T > ): T
Với Firebase REST API, entrypoint được quy định kết thúc là gì?
.html
không quy định kết thúc
.json
.jsp
Cho Realtime Database của firebase như hình trên, Để cập nhật thông tin liên lạc của Nguyễn Thị Diễm Phương bạn cần?
Key: PS09013
URL: https://poly-java-6-d4e0b-default-rtdb.firebaseio.com/users/PS09013/contact.json
Data: { email: "?", address: "?"}
Operation: PUT
Hãy viết phương thức DSL tương đương với truy vấn sau:
@Query(“SELECT p FROM Product p WHERE p.available=true AND p.price=?1 OR p.name LIKE ?2 ORDER BY createDate”)
List < Product > findByAvailableTrueAndPriceEqualOrNameLikeOrderByCreateDate(double price, String name);
List < Product > findByAvailableTrueAndPriceIsOrNameLikeOrderByCreateDate(double price, String name);
List < Product > findByAvailableTrueAndPriceOrNameLikeOrderByCreateDate(double price, String name);
List < Product > findByAvailableAndPriceOrNameLikeOrderByCreateDate(double price, String name);
Trong interface JpaRepository < T, ID > thì
1. T là kiểu của Entity
2. ID là kiểu của field @Id của Entity
1 đúng, 2 sai
1 sai, 2 sai
1 sai, 2 đúng
1 đúng, 2 đúng
Hãy điền vào chỗ trống để thực hiện tổng hợp số lượng sản phẩm từng loại
@Query("SELECT o.category, count(o) FROM Product o GROUP BY o.category")
List < _____ > getReport();
Category
Object[]
Category, Long
Object, Object
Đâu là các phương thức của ResponseEntity có mã trạng thái là 404?
notFound()
ok()
badRequest()
noContent()
Đâu là cú pháp đúng khi tạo một DAO
1. public class MyDAO extends JpaRepository < T, ID > {}
2. public interface MyDAO extends JpaRepository < T, ID > {}
1 đúng, 2 sai
1 sai, 2 sai
1 sai, 2 đúng
1 đúng, 2 đúng
Thông số nào chỉ ra JDBC Driver cần nạp vào để làm việc với hệ quản trị CSDL?
spring.datasource.url
spring.datasource.password
spring.datasource.driverClassName
spring.datasource.username
Hãy điền vào chỗ trống để cho phép phương thức sau đây được sử dụng như hoạt động GET của REST API
_____
@GetMapping("/rest/find-all")
public List < T > findAll() {…}
@Data
@RequestBody
@RestController
@ResponseBody
spring.jpa.hibernate.ddl-auto có những giá trị hợp lệ nào?
delete
create
none
create-drop
Tại sao nên sử dụng ResponseEntity trong các RestController method?
1. Có nhiều lựa chọn trả về với mã trạng thái khác nhau
2. Tránh được lỗi
1 đúng, 2 đúng
1 đúng, 2 sai
1 sai, 2 sai
1 sai, 2 đúng
Đâu là các phương thức được khai báo trong CrudRepository?
Iterable < T > findAll()
Page < T > findAll(Pageable pageable)
boolean exists(ID id)
Long count()
Đâu là các phương thức được khai báo trong PagingAndSortingRepository?
Page < T > findAll(Pageable pageable)
List < T > findAll(Sort sort)
Iterable < T > findAll(Sort sort)
List < T > findAll()
Với Spring Data JPA, trong entity class khi khai báo thực thể kết hợp là @JoinColumn(name="UserId") sẽ ánh xạ với cột khóa ngoại có tên như thế nào?
1. UserId
2. User_Id
1 sai, 2 sai
1 đúng, 2 đúng
1 đúng, 2 sai
1 sai, 2 đúng
spring.jpa.hibernate.ddl-auto=none
Khai báo trên có ý nghĩa gì?
Chỉ cập nhật lại thông số các cột và các bảng đúng như khai báo trong các entity class (không xóa cột, bảng thừa)
Không kiểm tra các ràng buộc trong entity với CSDL
Xóa các bảng hiện có và tạo lại dựa trên các entity class
Xóa CSDL hiện có, tạo lại CSDL đúng như các entity class, xóa CSDL khi shutdown ứng dụng
Đâu là khai báo phương thức truy vấn đùng cú pháp DSL?
Page < Product > findByNameLike(String name, Pageable pageable);
Page < Product > findAllByNameLike(String name, Pageable pageable);
Page < Product > findByNameLikeAndPage(String name, Pageable pageable);
Page < Product > findAllByNameLikeAndPage(String name, Pageable pageable);
Đâu là annotation được sử dụng để chú thích đọc dữ liệu JSON từ đối số của phương thức REST API?
@RequestBody
@DeleteMapping
@RestController
@ResponseBody
Với http là HttpSecurity, đâu là những URL đã được bảo vệ với lệnh sau
http.authorizeRequests().antMatchers("/a/**").authenticated()
/a/b
/a/b/c/d
/a/b/c
/a
Trong bảo mật, XSS (Cross-Site Scripting) là kỹ thuật dùng để?
Ngăn chặn thực hiện của script được nhập từ người sử dụng
Ngăn chặn chia sẻ tài nguyên
Ngăn chặn các request giả lập
Ngăn chặn thực hiện khi chưa đăng nhập
Với http là HttpSecurity và bạn có cấu hình đăng nhập và đăng xuất như sau:
http.formLogin().loginPage("url1")
Thì
1. Bạn cần viết phương thức ánh xạ với các url1 trong controller để chuyển đến giao diện đăng nhập
2. Không cần viết mã trong controller, hệ thống sẽ tự nhận biết form đăng nhập
1 đúng, 2 đúng
1 sai, 2 sai
1 sai, 2 đúng
1 đúng, 2 sai
Với http là HttpSecurity, đâu là những url cần được khai báo xử lý trong controller?
http.formLogin()
.loginPage("/security/login/form")
.loginProcessingUrl("/security/login")
.defaultSuccessUrl("/security/login/success", false)
.failureUrl("/security/login/error")
/security/login/error
/security/login/success
/security/login
/security/login/form
Trong Authentication phương thức nào cho phép lấy username của người đăng nhập?
getDetails()
getName()
getAuthorities()
getPrincipal()
Trong Authentication phương thức nào cho phép lấy UserDetails chứa thông tin của người đăng nhập?
getPrincipal()
getDetails()
getName()
getAuthorities()
Spring Security sẵn có
1. Mô hình dữ liệu người sử dụng được chuẩn hóa
2. Phương pháp mã hóa mật khẩu
1 sai, 2 sai
1 sai, 2 đúng
1 đúng, 2 đúng
1 đúng, 2 sai
Với Thymeleaf Extras Spring Security, đâu là các thẻ sử dụng security thích hợp?
< div sec:authorize="isAuthenticated()" > < /div >
< div sec:authorize="hasAnyRole('ADMIN')" > < /div >
< div sec:authentication="isAuthenticated()" > < /div >
< div sec:authentication="hasAnyRole('ADMIN')" > < /div >
Với http là HttpSecurity, hãy điền vào chỗ trống tên phương thức phân quyền không cần đăng nhập cũng được phép truy xuất
http.authorizeRequests().antMatchers("/**")._____
permitAll()
hasAnyRole("ADMIN", "STAFF")
hasRole("ADMIN")
authenticated()
Với http là HttpSecurity, hãy điền vào chỗ trống tên các phương thức phân quyền hợp lệ
http.authorizeRequests().antMatchers("/**")._____
authenticated()
permitAll()
hasAnyRole("ADMIN", "STAFF")
hasRole("ADMIN")
Trong Thymeleaf, biểu thức nào cho phép truy xuất username của người đăng nhập
${#authentication.principal.getUsername()}
${#authentication.getName()}
${#authentication.principal.username}
${#authentication.name}
Trong bảo mật, CORS (Cross-Site Resource Sharing) là kỹ thuật dùng để ngăn chặn?
Ngăn chặn thực hiện của script được nhập từ người sử dụng
Ngăn chặn các request giả lập
Ngăn chặn chia sẻ tài nguyên
Ngăn chặn thực hiện khi chưa đăng nhập
Với http là HttpSecurity, hãy điền vào chỗ trống tên các phương thức phân quyền yêu cầu phải đăng nhập với vai trò ADMIN hoặc STAFF thì mới được phép truy xuất
http.authorizeRequests().antMatchers("/**")._____
authenticated()
hasAnyRole("ADMIN", "STAFF")
hasRole("ADMIN")
permitAll()
Đâu là sự thể hiện của trang web được bảo mật?
1. Trang web trước và sau khi đăng nhập có thể khác nhau
2. Không thể thực hiện một số hành vi nếu chưa đăng nhập
1 đúng, 2 sai
1 sai, 2 sai
1 đúng, 2 đúng
1 sai, 2 đúng
Trong file cấu hình Security, bạn cần viết mã phân quyền sử dụng trong phương thức nào?
configure(WebSecurity web)
configure(HttpSecurity http)
getPasswordEncoder()
configure(AuthenticationManagerBuilder auth)
Lệnh nào sau đây tạo đối tượng UserDetails có username là "A", password là "B" và vai trò là "C"?
1. User.password("B").withUsername("A").roles("C").build();
2. User.withUsername("A").roles("C").password("B").build();
1 sai, 2 đúng
1 đúng, 2 sai
1 đúng, 2 đúng
1 sai, 2 sai
Đâu là phương thức được khai báo trong UserDetails có thể truy xuất đến vai trò của người sử dụng?
getUsername()
isEnable()
getAuthorities()
getRole()
Đâu là lệnh được sử dụng để tạo đối tượng Authentication từ UserDetails (user)?
new UsernamePasswordAuthenticationToken(user, user.getAuthorities())
new UsernamePasswordAuthenticationToken(user, null, user.getRoles())
new UsernamePasswordAuthenticationToken(user, null, user.getAuthorities())
new UsernamePasswordAuthenticationToken(user)
Đâu là khai báo đúng địa chỉ chuyển hướng sau khi đăng nhập (Authorized Redirect URL) trong google?
http://localhost:8080/login
http://localhost:8080/login/oauth2/code/google
http://localhost:8080/login/oauth2
http://localhost:8080/login/oauth2/code
Đâu là lệnh tạo UserDetails hợp lệ?
User.withUsername().roles().password().build();
User.password().withUsername().roles().build();
User.withUsername().password().roles().build();
User.withUsername().password().authorities().build();
UserDetailsService khai báo bao nhiêu phương thức trừu tượng? Có thể sử dụng biểu thức Lambda để tạo đối tượng UserDetailsService được hay không?
1. 1 phương thức, hoàn toàn được
1. 1 phương thức, không thể được
1 sai, 2 sai
1 đúng, 2 sai
1 đúng, 2 đúng
1 sai, 2 đúng
UserDetailsService khai báo phương thức nào?
isEnable()
loadUserByUsername(String)
getUsername()
getAuthorities()
Cách nào sau đây cung cấp UserDetailsService cho auth (AuthenticationManagerBuilder)?
1. auth.userDetailsService(new UserDetailsService() {
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
return null;
}
});
2. auth.userDetailsService( username - > {
return null;
});
1 sai, 2 sai
1 đúng, 2 sai
1 sai, 2 đúng
1 đúng, 2 đúng
Để đăng nhập được từ tài khoản Gmail, bạn cần thực hiện nhưng công việc nào?
Đăng ký tài khoản developer của Google và khai báo đầy đủ thông tin, lấy mã ứng dụng (app id) và mã bí mật (secret code)
Cấu hình đăng nhập
Khai báo thư viện Oauth2 cần thiết vào pom.xml
Khai báo mã ứng dụng và mã bí mật vào application.properties
Lệnh nào sau đây tạo đối tượng UserDetails có username là "A", password là "B" và vai trò là "C"?
1. User.withUsername("A").password("B").roles("ROLE_C").build();
2. User.withUsername("A").password("B").authorities("C").build();
1 đúng, 2 sai
1 sai, 2 đúng
1 đúng, 2 đúng
1 sai, 2 sai
Đâu là khai báo các thư viện cần thiết trong Spring Boot để có thể đăng nhập từ mạng xã hội?
< dependency > < groupId > org.springframework.boot < /groupId > < artifactId > spring-boot-starter-oauth2-client < /artifactId > < /dependency >
< dependency > < groupId > org.thymeleaf.extras < /groupId > < artifactId > thymeleaf-extras-springsecurity5 < /artifactId > < /dependency >
< dependency > < groupId > org.springframework.boot < /groupId > < artifactId > spring-boot-starter-thymeleaf < /artifactId > < /dependency >
< dependency > < groupId > org.springframework.boot < /groupId > < artifactId > spring-boot-starter-security < /artifactId > < /dependency >
Phương thức loadUserByUsername() của UserDetailsService trả về kiểu gì?
Authentication
UserDetailsService
User
UserDetails
Đâu là phương thức được khai báo trong UserDetails?
getUsername()
getName()
getAuthorities()
isEnable()
Trong AngularJS, đâu là lệnh thiết lập header Authorization chung cho mọi request?
$httpProvider.defaults.headers.common['Authorization'] = "Basic < token > "
$httpProvider.defaults['Authorization'] = "Basic < token > "
$httpProvider.defaults.headers['Authorization'] = "Basic < token > "
$httpProvider.headers.common['Authorization'] = "Basic < token > "
Đâu là khai báo đúng địa chỉ chuyển hướng sau khi đăng nhập (Valid Oauth Redirect URL) trong facebook?
http://localhost:8080/login/oauth2
http://localhost:8080/login/oauth2/code/facebook
http://localhost:8080/login/oauth2/code
http://localhost:8080/login
spring.jpa.hibernate.ddl-auto=create
Khai báo trên có ý nghĩa gì?
Chỉ cập nhật lại thông số các cột và các bảng đúng như khai báo trong các entity class (không xóa cột, bảng thừa)
Xóa các bảng hiện có và tạo lại dựa trên các entity class
Không kiểm tra các ràng buộc trong entity với CSDL
Xóa CSDL hiện có, tạo lại CSDL đúng như các entity class, xóa CSDL khi shutdown ứng dụng
spring.jpa.hibernate.ddl-auto=create-drop
Khai báo trên có ý nghĩa gì?
Chỉ cập nhật lại thông số các cột và các bảng đúng như khai báo trong các entity class (không xóa cột, bảng thừa)
Xóa các bảng hiện có và tạo lại dựa trên các entity class
Không kiểm tra các ràng buộc trong entity với CSDL
Xóa CSDL hiện có, tạo lại CSDL đúng như các entity class, xóa CSDL khi shutdown ứng dụng
Đâu là các phương thức của JsonNode được sử dụng để lấy tham chiếu đến JsonNode của một key?
node(key)
get(key)
key(key)
getNode(key)
Với Spring Data JPA khi khai báo với entity class là @Table(name="UserRoles") sẽ ánh xạ với bảng có tên như thế nào?
1. UserRoles
2. User_Roles
1 sai, 2 đúng
1 đúng, 2 sai
1 đúng, 2 đúng
1 sai, 2 sai
Thông số nào phụ thuộc vào hệ quản trị CSDL?
spring.jpa.hibernate.dialect
spring.datasource.username
spring.datasource.driverClassName
spring.jpa.hibernate.ddl-auto
spring.jpa.hibernate.ddl-auto=validate
Khai báo trên có ý nghĩa gì?
Chỉ cập nhật lại thông số các cột và các bảng đúng như khai báo trong các entity class (không xóa cột, bảng thừa)
Không kiểm tra các ràng buộc trong entity với CSDL
Xóa các bảng hiện có và tạo lại dựa trên các entity class
Kiểm tra tính hợp lệ của CSDL so với ràng buộc trong các entity class
Hãy chọn biểu thức đúng?
${#request.getParameter('x')}
${#request.requestURI}
${#servletContext.contextPath}
${#request.getRequestURI()}
Với Spring Data JPA khi khai báo trong entity class là @Column(name="FirstName") sẽ ánh xạ với cột có tên như thế nào?
1. FirstName
2. First_Name
1 đúng, 2 sai
1 sai, 2 sai
1 đúng, 2 đúng
1 sai, 2 đúng
Đâu là các phương thức của ObjectMapper
readTree()
writeValue()
writeValueAsString()
readValue()
Cho 2 phát biểu sau:
1. UserDetails là interface mô tả mô hình dữ liệu của người đăng nhập
2. User là class implements UserDetails đồng thời bổ sung các hàm tiện ích giúp bạn dễ dàng tạo ra đối tượng UserDetails
1 đúng, 2 đúng
1 đúng, 2 sai
1 sai, 2 đúng
1 sai, 2 sai
Đâu là cú pháp đúng của phương thức trong controller được sử dụng để validate dữ liệu trong đối số sv?
public String validate(@Validated Student sv, Errors errors){}
public String validate(@Valid Student sv, Errors errors){}
public String validate(BindingResult errors, @Validated Student sv){}
public String validate(Errors errors, @Valid Student sv){}
Giả sử x là biến trong Model có kiểu là String. Đâu là biểu thức hiển thị x có dạng viết hoa tất cả các ký tự đầu tiên của các từ?
${#strings.capitalizeWords(x)}
${#strings.capitalize(x)}
${#strings.toUpperCaseWords(x)}
${#strings.toUpperCase(x)}
Để tổ chức được giao diện đa ngôn ngữ trong Spring Boot, bạn cần phải thực hiện những công việc nào?
Cấu hình interceptor xử lý thay đổi ngôn ngữ
Lập trình lựa chọn ngôn ngữ
Cấu hình phương pháp duy trì ngôn ngữ được chọn
Thiết kế giao diện Spring Form
Hãy điền vào chỗ trống để hoàn thiện câu lệnh JPQL
@Query("SELECT o FROM Product o WHERE o.category.id=_____")
List < Product > findByCategoryId(@Param("id") String id);
:id
id
categoryId
:categoryId
Đâu là các phương thức của ResponseEntity có mã trạng thái là 200?
badRequest()
noContent()
notFound()
ok()
Page chứa kết quả truy vấn phân trang. Gọi phương thức nào để lấy tổng số trang truy vấn được?
getContent()
getNumber()
getSize()
getTotalPages()
Hãy chọn lệnh đúng duyệt Map sau
Map < String, Double > map = new HashMap < > ();
map.forEach((k, v) - > System.out.printf("%s=%.2f", k, v));
map.forEach(k, v - > System.out.printf("%s=%.2f", k, v));
map.forEach((k, v) - > {System.out.printf("%s=%.2f", k, v);});
map.forEach((k, v) - > {System.out.printf("%s=%.2f", k, v)});
Hãy điền vào chỗ trống hiển thị giá trị của biến x trong ServletContext
< b th:text="_____" > < /b?
${application.x}
${servletContext.x}
${context.x}
${#session.x}
Biểu thức nào cho phép hiển thị giá trị của key trong tài nguyên đa ngôn ngữ?
#{key}
${key}
@{key}
~{key}
Theo cú pháp của JSON, các cặp key=value phải thỏa mãn
1. Key phải là chuỗi
2. Value có thể là chuỗi
1 đúng, 2 đúng
1 đúng, 2 sai
1 sai, 2 đúng
1 sai, 2 sai
Đâu là các phương thức được khai báo trong JpaRepository?
Page < T > findAll(Pageable pageable)
List < T > findAll()
List < T > findAll(Sort sort)
List < T > save(Iterable < ? extends T > entities)
Với http là HttpSecurity, đâu là những phương thức của http.formLogin() xác định địa chỉ URL xử lý sau khi đăng nhập thành công?
loginPage(url)
loginProcessingUrl(url)
defaultSuccessUrl(url, always)
failureUrl(url)
Với oauth là OAuth2AuthenticationToken, đâu là phương thức để lấy email của tài khoản?
oauth.getPrincipal().getAttribute("email")
oauth.getAttribute("email")
oauth.getPrincipal("email")
oauth.getEmail()
Đâu là các key được sử dụng để khai báo thông tin đã đăng ký với google developer trong application.properties?
spring.security.oauth2.client.registration.google.client-id= < app-id >
spring.security.oauth2.client.registration.google.client-secret= < secret-code >
spring.security.oauth2.client.registration.facebook.client-id= < app-id >
spring.security.oauth2.client.registration.facebook.client-secret= < secret-code >
Đâu là các annotation được sử dụng để ánh xạ các hoạt động của REST API với các phương thức của RestController?
@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
Điền vào chỗ trống để bóc lấy dữ liệu trả về từ REST API trong AngularJS?
$http.get(url).then(response = > {
var data = _____;
})
response
response.data
response.json
response.object
Đâu là annotation được sử dụng để ánh xạ các hoạt động của REST API với các phương thức của RestController
@GetMapping
@ResponseBody
@RequestBody
@RestController
Đâu là biểu được sử dụng để truy xuất các fragment từ các template khác?
#{}
${}
~{}
*{}
Cho 2 phát biểu về vị trí của đối số tích lũy lỗi:
1. Đối số BindingResult hoặc Errors bắt buộc phải đặt ngay sau bean được kiểm lỗi
2. Đối số BindingResult hoặc Errors không bắt buộc phải đặt ngay sau bean được kiểm lỗi
1 đúng, 2 đúng
1 đúng, 2 sai
1 sai, 2 đúng
1 sai, 2 sai
Đâu là phương thức trung gian trong Stream API?
peek()
collect()
reduce()
sum()
Chọn các đoạn mã lệnh đúng
new Thread(new Runnable() { @Override public void run() {} }).start();
new Thread(() - > {}).start();
ActionListener listener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) {} };
ActionListener listener = e - > {};
Cho 2 phát biểu sau:
1. UserDetailsService là interface mô tả mô hình dữ liệu của người đăng nhập
2. UserDetails là interface cung cấp phương thức giúp tải dữ liệu người sử dụng theo tên đăng nhập để xác thực
1 đúng, 2 đúng
1 đúng, 2 sai
1 sai, 2 đúng
1 sai, 2 sai
Với conn là đối tượng HttpURLConnection, hãy điền vào chỗ trống tên các phương thức để thực hiện việc đọc dữ liệu trả về từ REST API?
int responseCode = conn._____;
if (responseCode == 200) {
return mapper.readTree(conn._____);
}
getResponseCode()/getInputStream()
setResponseCode()/getInputStream()
getResponseCode()/setInputStream()
setResponseCode()/setInputStream()
Đâu là annotation hợp lệ để phân quyền sử dụng cho các phương thức trong controller
@PreAuthorize(“isAuthenticated()”)
@PreAuthorize(“hasAnyRole('ADMIN', 'USER')”)
@PreAuthorize(“hasRole('ADMIN')”)
@PreAuthorize(“authenticated()”)
Trong Authentication phương thức nào cho phép lấy List < GrantedAuthority > để từ đó có thể kiểm tra vai trò?
getName()
getPrincipal()
getAuthorities()
getDetails()
Lệnh nào sau đây tạo đối tượng UserDetails có username là "A", password là "B" và vai trò là "C"?
1. User.withUsername("A").password("B").roles("C").build();
2. User.withUsername("A").password("B").authorities("C").build();
1 đúng, 2 đúng
1 đúng, 2 sai
1 sai, 2 đúng
1 sai, 2 sai
Trong Thymeleaf, biểu thức nào cho phép truy xuất danh sách authority?
${#authentication.authorities}
${#authentication.getAuthorities()}
${#request.userPrincipal.authorities}
${#request.userPrincipal.getAuthorities()}
Đâu là khai báo fragment hợp lệ?
< div th:fragment="myfrag" > … < /div >
< div th:fragment="myfrag(x, y)" > … < /div >
< div th:fragment="myfrag x, y" > … < /div >
< div th:fragment="myfrag(x)" > … < /div >
Hãy điền vào chỗ trống để thay thế thẻ sau đây bằng nội dung của menu.html
< nav th:replace="_____" > < /nav >
~{/menu.html}
${/menu.html}
@{/menu.html}
#{/menu.html}
Hãy điền mã đúng vào chỗ trống
List < Integer > list = Arrays.asList(1, 9, 4, 7, 5, 2);
list.forEach(_____);
n - > System.out.println(n)
(n) - > System.out.println(n);
n - > {System.out.println(n)}
(n) - > {System.out.println(n);}
Hãy điền tên thực thể còn thiếu vào ô trống vào ô trống
@Query("SELECT o FROM ___ o")
List < Product > findByX();
Product
Category
Order
Account
Lệnh nào sau đây tạo đối tượng UserDetails có username là "A", password là "B" và vai trò là "C"?
1. User.withUsername("A").password("B").roles("C").build();
2. User.withUsername("A").password("B").authorities("ROLE_C").build();
1 đúng, 2 đúng
1 đúng, 2 sai
1 sai, 2 đúng
1 sai, 2 sai
Với http là HttpSecurity, hãy điền vào chỗ trống tên các phương thức phân quyền yêu cầu phải đăng nhập với vai trò ADMIN thì mới được phép truy xuất
http.authorizeRequests().antMatchers("/**")._____
authenticated()
permitAll()
hasRole("ADMIN")
hasAnyRole("ADMIN", "STAFF")
Đâu là các toán tử so sánh trong Thymeleaf?
==
eq
!=
ne
Hãy điền vào chỗ trống tên phương thức thích hợp của AngularJS để thêm mới dữ liệu.
$http._____(url, data).then(response = > {}).catch(error = > {}))
put
post
delete
get
Mục đích của web service là gì?
1. Xây dựng các operation trên nền internet chỉ để phục vụ cho các ứng dụng web
2. Xây dựng các operation trên nền internet để phục vụ cho mọi thể loại ứng dụng
1 đúng, 2 đúng
1 đúng, 2 sai
1 sai, 2 đúng
1 sai, 2 sai
