Dưới đây là danh sách các câu hỏi phỏng vấn JSP. Nếu bạn biết bất kỳ câu hỏi phỏng vấn hay về servlet, vui lòng đăng nó trong phần bình luận để chia sẻ cho mọi người nhé.
1. JSP là gì?
Công nghệ Java Server Pages (JSP) được sử dụng để tạo ra trang web động. Nó là một phần mở rộng cho công nghệ servlet. Một trang JSP được chuyển đổi nội bộ thành servlet.
2. Các phương thức trong một vòng đời của JSP là gì?
Method | Description |
---|---|
public void jspInit() | Nó được gọi chỉ một lần, giống như phương thức init của servlet. |
public void _jspService(ServletRequest request, ServletResponse) throws ServletException, IOException | Nó được gọi ra ở mỗi yêu cầu, giống như phương thức service() của servlet. |
public void jspDestroy() | Nó được gọi chỉ một lần, giống như phương thức destroy() của servlet. |
3. Sự khác nhau giữa comment ẩn và comment đầu ra trong JSP là gì?
Các comment jsp được gọi là comment ẩn trong khi comment html được gọi là comment đầu ra. Nếu người dùng xem nguồn của trang, comment jsp sẽ không hiển thị trong khi commnet html sẽ được hiển thị.
4. Các đối tượng ẩn trong JSP là gì?
JSP cung cấp 9 đối tượng ẩn theo mặc định:
Đối tượng | Kiểu |
---|---|
1) out | JspWriter |
2) request | HttpServletRequest |
3) response | HttpServletResponse |
4) config | ServletConfig |
5) session | HttpSession |
6) application | ServletContext |
7) pageContext | PageContext |
8) page | Object |
9) exception | Throwable |
5. Sự khác nhau giữa include directive và include action là gì?
include directive | include action |
---|---|
1) include directive bao gồm nội dung tại thời điểm dịch trang. | 1) include action bao gồm nội dung tại thời điểm request. |
2) include directive bao gồm nội dung gốc của trang, do vậy kích thước của trang sẽ tăng lúc runtime. | 2) include action không bao gồm nội dung gốc của trang thay vì gọi phương thức include() của lớp nhà cung cấp. |
3) Nó tốt hơn cho trang tĩnh. | 3) Nó tốt hơn cho trang động. |
6. Công nghệ JSP có thể mở rộng không?
Có. Công nghệ JSP mở rộng thông qua việc phát triển các action tùy chỉnh, hoặc các thẻ được đóng gói trong thư viện thẻ.
7. Làm thế nào tôi có thể thực hiện một trang JSP an toàn cho thread? Những ưu và nhược điểm của việc sử dụng nó là gì?
Bạn có thể làm cho JSP của bạn thành thread-safe bằng cách cho implements giao diện SingleThreadModel. Điều này được thực hiện bằng cách thêm chỉ thị <%@ page isThreadSafe = "false"%> trong trang JSP của bạn.
8. Làm thế nào vô hiệu hóa trình duyệt cache trang web?
<% response.setHeader("Cache-Control","no-store"); response.setHeader("Pragma","no-cache"); response.setHeader ("Expires", "0"); %>
9. Làm thế nào để xử lý ngoại lệ trong JSP?
Có hai cách để thực hiện xử lý ngoại lệ, một là bởi phần tử errorPage của chỉ thị trang, và thứ hai là do phần tử error-page của tệp web.xml.
10. Hai cách để bao gồm kết quả của một trang khác là gì?
Có hai cách để bao gồm kết quả của một trang khác:
-
Sử dụng include directive.
Ví dụ:
<%@ include file="header.jsp" %>
-
Sử dụng include action.
Ví dụ:
<jsp:include page="printdate.jsp" />
11. Chúng ta có thể sử dụng đối tượng ẩn exception trong bất kỳ trang jsp nào không?
Không. Đối tượng ngoại lệ ẩn chỉ có thể được sử dụng trong trang lỗi định nghĩa nó với thuộc tính isErrorPage của chỉ thị của trang.
12. Sự khác nhau giữa ServletContext và PageContext là gì?
ServletContext cung cấp thông tin về vùng chứa trong khi PageContext cung cấp thông tin về request.
13. Sự khác biệt trong việc sử dụng request.getRequestDispatcher () và context.getRequestDispatcher () là gì?
request.getRequestDispatcher(path) được sử dụng để tạo nó, chúng ta cần cung cấp cho đường dẫn tương đối của tài nguyên. Trong khi context.getRequestDispatcher(path) để tạo ra nó, cần phải cung cấp cho đường dẫn tuyệt đối của tài nguyên.
14. Một giao diện có thể được thực hiện trong file jsp không?
Không.
15. JSTL là gì?
JSTL là thư viện thẻ tiêu chuẩn JSP được sử dụng để xác định trước giúp đơn giản hóa khi phát triển trang JSP.
16. Cách vô hiệu hoá session trong JSP?
<%@ page session = "false"%>