Câu hỏi phỏng vấn JSP (2025)

câu hỏi phỏng vấn jsp

Bạn đang chuẩn bị cho một cuộc phỏng vấn JSP và đang tìm kiếm sự tự tin hơn nữa? Hướng dẫn này sẽ giúp bạn! Chúng tôi đã chọn lọc những câu hỏi và câu trả lời phỏng vấn JSP quan trọng nhất, được thiết kế để nâng cao kiến ​​thức của bạn và mang lại cho bạn lợi thế cạnh tranh. Cho dù bạn đang ôn lại các khái niệm cốt lõi hay khám phá những hiểu biết mới, hướng dẫn này sẽ giúp bạn chuẩn bị để xử lý các thách thức phỏng vấn một cách dễ dàng. Hãy cùng bắt đầu và biến những lo lắng khi phỏng vấn thành sự tự tin!

Câu hỏi phỏng vấn JSP dành cho người mới

1) Giải thích JSP và cho biết công dụng của nó.

JSP là viết tắt của Java Các trang máy chủ. Nó là một công nghệ lớp trình bày độc lập với nền tảng. Nó đi kèm với nền tảng J2EE của SUN. Chúng giống như các trang HTML nhưng có Java đoạn mã được nhúng trong chúng. Chúng được lưu với phần mở rộng .jsp. Chúng được biên dịch bằng trình biên dịch JSP ở chế độ nền và tạo ra một Servlet từ trang.

👉 Tải xuống bản PDF miễn phí: Câu hỏi và câu trả lời phỏng vấn JSP


2) Yêu cầu của thư viện thẻ là gì?

Bộ sưu tập các thẻ tùy chỉnh được gọi là Thư viện thẻ. Các tác vụ định kỳ được xử lý dễ dàng hơn và được tái sử dụng trên nhiều ứng dụng để tăng năng suất. Chúng được sử dụng bởi các nhà thiết kế Ứng dụng Web, những người tập trung vào việc trình bày hơn là truy cập cơ sở dữ liệu hoặc các dịch vụ khác. Một số thư viện phổ biến là thư viện thẻ String và thư viện thẻ hiển thị Apache.


3) Giải thích Công nghệ JSP.

JSP là một phần mở rộng tiêu chuẩn của Java và được xác định trên phần mở rộng của Servlet. Mục tiêu của nó là đơn giản hóa việc quản lý và tạo các trang web động. Nó độc lập với nền tảng, an toàn và sử dụng Java như một ngôn ngữ kịch bản phía máy chủ.


4) Giải thích các đối tượng ngầm định trong JSP.

Các đối tượng được tạo bởi bộ chứa web và chứa thông tin liên quan đến một yêu cầu, ứng dụng hoặc trang cụ thể được gọi là Đối tượng tiềm ẩn. Họ đang :

  • phản ứng
  • ngoại lệ
  • ứng dụng
  • yêu cầu
  • Phiên
  • trang
  • ra
  • cấu hình
  • trangBối cảnh
Câu hỏi phỏng vấn JSP
Câu hỏi phỏng vấn JSP

5) Làm cách nào để ngăn chặn nhiều lần gửi do nhấp vào nút làm mới?

Sử dụng mẫu Đăng/Chuyển hướng/Nhận hoặc mẫu PRG, vấn đề này có thể được giải quyết.

1) Biểu mẫu do người dùng điền sẽ được gửi đến máy chủ bằng phương thức POST hoặc GET. Trạng thái trong cơ sở dữ liệu và mô hình kinh doanh được cập nhật.

2) Phản hồi chuyển hướng được sử dụng để trả lời bởi servlet cho một trang xem.

3) Chế độ xem được trình duyệt tải bằng lệnh GET và không có dữ liệu người dùng nào được gửi. Điều này an toàn khi gửi nhiều lần vì đây là một trang JSP riêng biệt.


6) Công nghệ JSP có thể mở rộng được không?

Có, JSP có thể mở rộng dễ dàng bằng cách sử dụng và sửa đổi thẻ hoặc hành động tùy chỉnh, được gói gọn trong thư viện thẻ.


7) Phân biệt giữa reply.sendRedirect(url) và .

<jsp.forward> phần tử chuyển tiếp đối tượng yêu cầu từ tệp JSP này sang tệp khác. Target tệp có thể là HTML, servlet hoặc tệp JSP khác, nhưng nó phải ở trong cùng ngữ cảnh ứng dụng với việc chuyển tiếp tệp JSP.

sendRedirect gửi phản hồi chuyển hướng tạm thời HTTP tới trình duyệt. Trình duyệt sau đó tạo một yêu cầu mới cho trang được chuyển hướng. Nó giết chết các biến phiên.


8) Yêu cầu tiếp theo có thể được truy cập bằng mã servlet của một người không, nếu thuộc tính yêu cầu đã được gửi trong JSP của anh ta?

Yêu cầu vượt quá phạm vi nên không thể truy cập được. Tuy nhiên, nếu một thuộc tính yêu cầu được đặt trong servlet của một người thì nó có thể được truy cập trong JSP của anh ta.

JSP là một thành phần phía máy chủ và trang được dịch sang một Java servlet và sau đó được thực thi. Chỉ có mã HTML được đưa ra làm đầu ra.


9) Làm cách nào để đưa các tệp tĩnh vào trang JSP?

Các trang tĩnh luôn được bao gồm bằng cách sử dụng chỉ thị JSP include. Bằng cách này, việc đưa vào được thực hiện trong giai đoạn dịch thuật một lần. Lưu ý rằng phải cung cấp URL tương đối cho thuộc tính tệp. Mặc dù tài nguyên tĩnh có thể được đưa vào nhưng nó không được ưu tiên vì mỗi yêu cầu đều yêu cầu đưa vào.


10) Tại sao JComponent có các phương thức add() và Remove() còn Component thì không?

JComponent là một lớp con của Container. Nó chứa các Thành phần và JComponents khác.


Câu hỏi phỏng vấn JSP dành cho các chuyên gia có kinh nghiệm

Dưới đây là các câu hỏi và câu trả lời phỏng vấn JSP dành cho các ứng viên có kinh nghiệm:

11) Làm cách nào để triển khai một trang JSP an toàn theo luồng?

Điều này có thể được thực hiện bằng cách triển khai chúng bằng Giao diện SingleThreadModel. Thêm chỉ thị <%@page isThreadSafe=”false” %> vào trang JSP.


12) Làm cách nào để ngăn chặn việc trình duyệt lưu vào bộ đệm của trình duyệt để ngăn chặn đầu ra của trang JSP hoặc trang servlet?

Sử dụng các thuộc tính tiêu đề HTTP thích hợp để ngăn chặn nội dung động đầu ra của trang JSP bị trình duyệt lưu vào bộ nhớ đệm.


13) Làm thế nào để hạn chế lỗi trang hiển thị trong trang JSP?

Bằng cách thiết lập thuộc tính “ErrorPage” của thư mục PAGE thành tên của trang lỗi trong trang JSP, sau đó trong trang jsp lỗi đặt “isErrorpage=”TRUE”, lỗi có thể bị dừng hiển thị.


14) Hành động JSP là gì?

Chúng là các thẻ XML, hướng dẫn máy chủ sử dụng các thành phần hiện có hoặc hành vi điều khiển của JSP Engine. Chúng bao gồm tiền tố điển hình là “jsp:” và tên hành động.

<jsp:include/>
<jsp:getProperty/>	 	
<jsp:forward/>
<jsp:setProperty/>
<jsp:usebean/>
<jsp:plugin/>

15) Phân biệt giữa và <%@include file=…>.

Cả hai thẻ này đều bao gồm thông tin từ trang này sang trang khác.

Thẻ đầu tiên hoạt động như một lệnh gọi hàm giữa hai Jsp. Nó được thực thi mỗi khi trang client được client truy cập. Việc mô-đun hóa ứng dụng web rất hữu ích. Nội dung mới được bao gồm trong đầu ra.

Nội dung thẻ thứ hai của tệp được nhúng văn bản có chỉ thị tương tự. Nội dung thay đổi không được bao gồm trong đầu ra. Sẽ rất hữu ích khi mã từ một jsp được yêu cầu bởi một số jsp.


16) Có thể sử dụng hàm tạo thay cho init() để khởi tạo servlet không?

Vâng, điều đó là có thể. Nhưng nó không được ưa thích vì init() đã được phát triển vì trước đó Java các phiên bản không thể gọi các hàm tạo có đối số một cách linh hoạt. Vì vậy, họ không thể chỉ định servletConfig. Tuy nhiên, ngày nay, các thùng chứa servlet vẫn chỉ gọi hàm tạo không có đối số. Vì vậy không có quyền truy cập vào servletContext hoặc servletConfig.


17) Giải thích các phương pháp vòng đời.

1) jsplnit(): Vùng chứa gọi điều này để khởi tạo phiên bản servlet. Nó chỉ được gọi một lần cho phiên bản servlet và đứng trước mọi phương thức khác.

2) _jspService(): Vùng chứa gọi điều này cho mỗi yêu cầu và chuyển nó đến các đối tượng.

3) jspDestroy(): Nó được gọi bởi container ngay trước khi hủy instance.


18) Giải thích các chú thích đầu ra của JSP?

Chúng là những nhận xét có thể được xem trong Tệp nguồn HTML.


19) Xác định biểu thức

Thẻ biểu thức được sử dụng để chèn Java giá trị trực tiếp trong đầu ra. Cú pháp của nó là

<%=expression%>

Nó chứa một biểu thức ngôn ngữ kịch bản được đánh giá, sau đó được chuyển đổi thành một chuỗi và sau đó được chèn vào nơi biểu thức có trong tệp JSP.


20) Xác định thành phần.

Thành phần có mối quan hệ chặt chẽ hơn với đối tượng so với Tập hợp.


21) Xác định tập lệnh JSP.

Đó là một thẻ JSP bao quanh Java mã trong các trang JSP. Cú pháp của họ là <% %>. Mã được viết bằng scriptlet sẽ thực thi mỗi khi chương trình được chạy.


22) Làm thế nào thông tin từ một JSP có thể được chuyển sang một JSP khác?

Tag cho phép chúng tôi chuyển thông tin giữa nhiều Jsp.


23) Giải thích công dụng của nhãn.

<jsp:useBean>

id="beanInstName"

scope= "page | application"

class="ABC.class"  type="ABC.class"

</jsp:useBean>

Thẻ này tạo ra một thể hiện của java bean. Đầu tiên nó cố gắng tìm xem thể hiện bean đã tồn tại chưa và gán lưu trữ một tham chiếu trong biến. Type cũng được chỉ định; nếu không nó sẽ khởi tạo từ lớp được chỉ định lưu trữ một tham chiếu trong biến mới.


24) Giải thích cách xử lý các ngoại lệ trong thời gian chạy.

Thuộc tính Errorpage được sử dụng để giải quyết các ngoại lệ trong thời gian chạy được tự động chuyển tiếp đến trang xử lý lỗi.

Nó chuyển hướng trình duyệt đến trang JSP error.jsp nếu có bất kỳ ngoại lệ nào chưa được phát hiện trong quá trình xử lý yêu cầu. Đây là một trang xử lý lỗi.


25) Tại sao _jspService() bắt đầu bằng '_' nhưng các phương thức vòng đời khác thì không?

Bất kỳ nội dung nào được tạo trong trang jsp đều nằm trong phương thức _jspService() của vùng chứa. Nếu nó bị ghi đè, trình biên dịch sẽ báo lỗi, nhưng 2 vòng đời còn lại có thể dễ dàng ghi đè. Vì vậy '_' cho thấy chúng ta không thể ghi đè phương thức này.


26) Giải thích các giá trị phạm vi khác nhau cho nhãn.

thẻ được sử dụng để sử dụng bất kỳ đối tượng java nào trong trang jsp. Một số giá trị phạm vi là:

1) ứng dụng

2) yêu cầu

3) trang

4) phiên


27) Hiển thị 2 loại chú thích trong JSP.

2 loại đó là:

<%–JSP Comment–%>
<!–HTML comment–>

28) Phương thức tĩnh có thể được ghi đè không?

Chúng ta có thể khai báo các phương thức tĩnh có cùng chữ ký trong lớp con, nhưng nó không được coi là ghi đè vì sẽ không có bất kỳ đa hình nào trong thời gian chạy. Do đó câu trả lời là 'Không'.


29) Giải thích các chỉ thị của JSP.

Chỉ thị JSP là những thông điệp tới JSP Engine. Chúng phục vụ như một thông báo từ trang này sang vùng chứa khác và kiểm soát việc xử lý toàn bộ trang. Họ có thể đặt các giá trị toàn cục như khai báo lớp. Chúng không tạo ra đầu ra và được đặt trong <%@….%>


30) Giải thích trang Chỉ thị.

Chỉ thị Trang thông báo cho Công cụ JSP về các tiêu đề và tiện ích mà trang nhận được từ môi trường. Nó được tìm thấy ở đầu tất cả các trang JSP. Cú pháp của nó là <%@ page attribute=”value”>


31) Hiển thị thuộc tính của chỉ thị trang.

  1. Phiên: Nó hiển thị liệu dữ liệu phiên có sẵn cho trang hay không.
  2. Nhập khẩu: nó hiển thị các gói được nhập.
  3. isELIgnored: Nó cho thấy liệu các biểu thức EL có bị bỏ qua hay không khi JSP dịch sang một Servlet.
  4. loại nội dung: nó cho phép người dùng chỉ định loại nội dung của trang.

32) Chỉ thị Bao gồm là gì?

Lệnh include chèn tĩnh nội dung của tài nguyên vào JSP hiện tại. Nó giúp tái sử dụng mã mà không bị trùng lặp. và bao gồm nội dung của tập tin tại thời điểm dịch. Cú pháp của nó như sau <%@ include file=”Filename”%>.


33) Hành động tiêu chuẩn trong JSP là gì?

Chúng ảnh hưởng đến hành vi thời gian chạy tổng thể của một trang và phản hồi được gửi tới máy khách. Chúng được sử dụng để bao gồm một tập tin vào thời điểm được yêu cầu, để khởi tạo một JavaBean hoặc tìm một cái. Chúng cũng được sử dụng để tạo mã dành riêng cho trình duyệt hoặc chuyển tiếp yêu cầu đến một trang mới.


34) Giải thích hành động jsp:setProperty.

Nó được sử dụng để đưa ra các giá trị cho các thuộc tính của đậu đã được tham chiếu trước đó.


<jsp:setProperty name=”ABC” property=”myProperty”…

jsp:setproperty được thực thi ngay cả khi một Bean mới được khởi tạo hoặc Bean hiện có được tìm thấy.

Bằng cách thêm ở cuối mã, điều kiện thực thi bị đảo ngược, tức là Nó không được thực thi nếu tìm thấy đối tượng hiện có và chỉ khi một đối tượng mới được khởi tạo.


35) Xác định khối tĩnh.

Nó được sử dụng để khởi động thành viên dữ liệu tĩnh. Nó được thực thi trước khi nạp lớp.


36) Giải thích hoạt động của jsp:plugin.

Hành động này giúp chèn một đối tượng cụ thể vào trình duyệt hoặc nhúng phần tử cần thiết để chỉ định việc chạy applet bằng cách sử dụng Java plugin.


37) Giải thích xác thực phía máy khách và máy chủ.

Javascript được sử dụng để xác nhận phía máy khách. Nó diễn ra trong trình duyệt. Javascript được sử dụng để gửi dữ liệu biểu mẫu nếu xác thực thành công. Lỗi xác thực không yêu cầu phải ngắt mạng thêm vì không thể gửi biểu mẫu.

Việc xác thực cũng được thực hiện trên máy chủ sau khi gửi. Nếu xác thực không thành công, cần phải thực hiện thêm chuyến đi mạng để gửi lại biểu mẫu cho khách hàng.


38) Giai đoạn dịch thuật là gì?

Công cụ JSP dịch và biên dịch tệp JSP thành một servlet. Servlet này chuyển sang giai đoạn thực thi nơi các yêu cầu và phản hồi được xử lý. Chúng được biên dịch lần đầu tiên khi được truy cập trừ khi được biên dịch thủ công trước thời hạn. Việc biên dịch thủ công hoặc rõ ràng rất hữu ích cho các chương trình dài và phức tạp.


39) Thực hiện chuyển hướng trình duyệt từ trang JSP.

<% response.sendRedirect(URL); %>

hoặc chúng ta có thể thay đổi vị trí của thuộc tính HTTP header như sau:

<% response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); response.setHeader(URL); %>

40) Đưa ra cách sử dụng Nhân bản đối tượng.

Nhân bản đối tượng được sử dụng để tạo một bản sao chính xác của một đối tượng bằng cách nhập cùng một mã hoặc sử dụng nhiều kỹ thuật khác.


41) Cách chuyển tiếp yêu cầu đến nguồn khác.

<jsp:forward page="/Page2.jsp" />

42) Làm cách nào để ngăn chặn việc tự động tạo phiên trong trang JSP?

Trang JSP tự động tạo phiên cho các yêu cầu. Bằng cách nhập lệnh sau, có thể tránh được.

<%@ page session=”false”  %>

43) Làm thế nào bạn có thể tránh được mã scriptlet trong JSP?

JavaĐậu hoặc Thẻ tùy chỉnh có thể được sử dụng thay cho mã scriptlet.


44) Giải thích phương thức jspDestroy().

Bất cứ khi nào một trang JSP sắp bị hủy, vùng chứa sẽ gọi phương thức jspDestroy() từ giao diện javax.servlet.jsp.JspPage. Các phương thức hủy servlet cũng tương tự như vậy. Nó có thể dễ dàng bị ghi đè để thực hiện dọn dẹp, như khi đóng kết nối cơ sở dữ liệu.


45) Giải thích hoạt động.

Đó là một hành động được sử dụng cùng với các hành động tiêu chuẩn bao gồm hoặc chuyển tiếp. Nó giúp chuyển tên và giá trị tham số tới tài nguyên.


46) Giải thích phương pháp tĩnh.

Phương thức tĩnh là của lớp chứ không phải là đối tượng của lớp. Nó có thể được gọi mà không cần thể hiện của một lớp. Thành viên tĩnh cũng có thể truy cập dữ liệu tĩnh và thay đổi giá trị của nó.


47) Làm thế nào để tắt tập lệnh?

Có thể dễ dàng vô hiệu hóa tập lệnh bằng cách đặt phần tử không hợp lệ tập lệnh của bộ mô tả triển khai thành true. Nó là một phần tử con của nhóm tài sản. Nó cũng có thể sai.


48) Xác định khai báo JSP.

Khai báo JSP là các thẻ được sử dụng để khai báo các biến. Chúng được đặt trong thẻ <%!%>. Chúng được sử dụng trong việc khai báo hàm và biến.

<%@page contentType=”text/html” %>

<html>
<body>
<%!
	int a=0;
	private int getCount(){
	a++;
return a;
}%>
<p>Values of a are:</p>
<p><%=getCount()%></p>
</body>
</html>

49) Làm cách nào để ngăn đầu ra HTML khỏi bị lưu vào bộ nhớ đệm?

<%
response.setHeader("Cache-Control", "no=store");
response.setDateHeader("Expires", 0);
%>

50) JSP tốt hơn công nghệ Servlet như thế nào?

JSP là một công nghệ phía máy chủ giúp việc tạo nội dung trở nên đơn giản. Chúng lấy tài liệu làm trung tâm, trong khi servlet là các chương trình. MỘT Java trang máy chủ có thể chứa các đoạn của Java chương trình, thực thi và khởi tạo Java các lớp học. Tuy nhiên, chúng xảy ra bên trong tệp mẫu HTML. Nó cung cấp khuôn khổ để phát triển Ứng dụng Web.

Những câu hỏi phỏng vấn này cũng sẽ giúp ích cho bài thi viva(orals) của bạn