คำถามสัมภาษณ์ JSP (2025)
คำถามสัมภาษณ์ JSP สำหรับผู้เริ่มต้น
1) อธิบาย JSP และบอกการใช้งาน
เจเอสพี ย่อมาจาก Java หน้าเซิร์ฟเวอร์ เป็นเทคโนโลยีเลเยอร์การนำเสนอที่ไม่ขึ้นอยู่กับแพลตฟอร์ม มาพร้อมกับแพลตฟอร์ม J2EE ของ SUN พวกมันก็เหมือนกับหน้า HTML แต่มี Java ชิ้นส่วนโค้ดที่ฝังอยู่ในนั้น พวกเขาจะถูกบันทึกด้วยนามสกุล .jsp พวกมันถูกคอมไพล์โดยใช้คอมไพเลอร์ JSP ในเบื้องหลังและสร้าง Servlet จากเพจ
👉 ดาวน์โหลดไฟล์ PDF ฟรี: คำถามและคำตอบสัมภาษณ์ JSP
2) ข้อกำหนดของไลบรารีแท็กคืออะไร?
ชุดของแท็กที่กำหนดเองเรียกว่าไลบรารีแท็ก งานที่เกิดซ้ำจะได้รับการจัดการได้ง่ายขึ้นและนำกลับมาใช้ซ้ำในหลายแอปพลิเคชันเพื่อเพิ่มผลผลิต ถูกใช้โดยนักออกแบบแอปพลิเคชันเว็บที่เน้นการนำเสนอมากกว่าการเข้าถึงฐานข้อมูลหรือบริการอื่นๆ ไลบรารียอดนิยมบางแห่ง ได้แก่ ไลบรารีแท็ก String และไลบรารีแท็กแสดง Apache
3) อธิบายเทคโนโลยี JSP
JSP เป็นส่วนขยายมาตรฐานของ Java และถูกกำหนดไว้ด้านบนของส่วนขยาย Servlet เป้าหมายคือทำให้การจัดการและการสร้างหน้าเว็บแบบไดนามิกง่ายขึ้น ไม่ขึ้นอยู่กับแพลตฟอร์ม ปลอดภัย และใช้ประโยชน์ได้ Java เป็นภาษาสคริปต์ฝั่งเซิร์ฟเวอร์
4) อธิบายวัตถุโดยนัยใน JSP
ออบเจ็กต์ที่สร้างโดยเว็บคอนเทนเนอร์และมีข้อมูลเกี่ยวกับคำขอ แอปพลิเคชัน หรือเพจเฉพาะจะถูกเรียก วัตถุโดยนัย- พวกเขาคือ :
- คำตอบ
- ข้อยกเว้น
- ใบสมัคร
- ขอ
- เซสชั่น
- หน้า
- ออก
- การตั้งค่า
- บริบทของหน้า
5) สามารถป้องกันการส่งข้อมูลหลายครั้งเนื่องจากการคลิกปุ่มรีเฟรชได้อย่างไร
การใช้ Post/Redirect/Get หรือรูปแบบ PRG ปัญหานี้สามารถแก้ไขได้
1) แบบฟอร์มที่ผู้ใช้กรอกจะถูกส่งไปยังเซิร์ฟเวอร์โดยใช้วิธี POST หรือ GET สถานะในฐานข้อมูลและรูปแบบธุรกิจได้รับการอัปเดต
2) การตอบสนองการเปลี่ยนเส้นทางใช้เพื่อตอบกลับโดยเซิร์ฟเล็ตสำหรับหน้าดู
3) เบราว์เซอร์โหลดมุมมองโดยใช้คำสั่ง GET และไม่มีการส่งข้อมูลผู้ใช้ ปลอดภัยจากการส่งหลายครั้ง เนื่องจากเป็นหน้า JSP แยกต่างหาก
6) เทคโนโลยี JSP สามารถขยายได้หรือไม่?
ใช่ JSP สามารถขยายได้อย่างง่ายดายโดยการใช้และแก้ไขแท็ก หรือการดำเนินการแบบกำหนดเอง ซึ่งห่อหุ้มไว้ในไลบรารีแท็ก
7) แยกความแตกต่างระหว่าง response.sendRedirect(url) และ -
<jsp.forward>
องค์ประกอบส่งต่อวัตถุคำขอจากไฟล์ JSP 1 ไฟล์ไปยังอีกไฟล์หนึ่ง Target ไฟล์อาจเป็น HTML, servlet หรือไฟล์ JSP อื่น แต่ควรอยู่ในบริบทของแอปพลิเคชันเดียวกันกับไฟล์ JSP ที่ส่งต่อ
sendRedirect ส่งการตอบสนองการเปลี่ยนเส้นทาง HTTP ชั่วคราวไปยังเบราว์เซอร์ เบราว์เซอร์จะสร้างคำขอใหม่สำหรับเพจที่ถูกเปลี่ยนเส้นทาง มันฆ่าตัวแปรเซสชัน
8) สามารถเข้าถึงคำขอในภายหลังด้วยรหัสเซิร์ฟเล็ตของตนเองได้หรือไม่ หากแอตทริบิวต์คำขอถูกส่งไปใน JSP ของเขาแล้ว
คำขออยู่นอกขอบเขต จึงไม่สามารถเข้าถึงได้ อย่างไรก็ตาม หากมีการตั้งค่าแอ็ตทริบิวต์คำขอในเซิร์ฟเล็ตของตัวเอง ก็สามารถเข้าถึงได้ใน JSP ของเขา
JSP เป็นส่วนประกอบฝั่งเซิร์ฟเวอร์และเพจถูกแปลเป็น Java servlet แล้วดำเนินการ มีเพียงโค้ด HTML เท่านั้นที่ได้รับเป็นเอาต์พุต
9) จะรวมไฟล์คงที่ในหน้า JSP ได้อย่างไร
เพจแบบสแตติกจะถูกรวมไว้เสมอโดยใช้คำสั่งรวมของ JSP วิธีนี้จะทำให้การรวมดำเนินการในขั้นตอนการแปลหนึ่งครั้ง โปรดทราบว่าต้องระบุ URL ที่เกี่ยวข้องสำหรับแอตทริบิวต์ของไฟล์ แม้ว่าทรัพยากรคงที่อาจรวมอยู่ด้วย แต่ก็ไม่เป็นที่ต้องการ เนื่องจากแต่ละคำขอจำเป็นต้องรวมไว้ด้วย
10) เหตุใด JComponent จึงมีวิธี add() และ Remove() แต่ Component ไม่มี
JComponent เป็นคลาสย่อยของคอนเทนเนอร์ มันมีส่วนประกอบอื่น ๆ และ JComponents
คำถามสัมภาษณ์ JSP สำหรับมืออาชีพที่มีประสบการณ์
ด้านล่างนี้เป็นคำถามและคำตอบในการสัมภาษณ์ JSP สำหรับผู้สมัครที่มีประสบการณ์:
11) หน้า JSP ที่ปลอดภัยของเธรดสามารถนำไปใช้ได้อย่างไร?
สามารถทำได้โดยให้ใช้งานโดย SingleThreadModel Interface เพิ่มคำสั่ง <%@page isThreadSafe=”false” %> ในหน้า JSP
12) เบราว์เซอร์จะป้องกันไม่ให้เอาต์พุตของ JSP หรือหน้าเซิร์ฟเล็ตถูกแคชได้อย่างไร?
การใช้แอ็ตทริบิวต์ส่วนหัว HTTP ที่เหมาะสมเพื่อป้องกันไม่ให้เบราว์เซอร์แคชเอาต์พุตเนื้อหาแบบไดนามิกโดยเพจ JSP
13) จะจำกัดการแสดงข้อผิดพลาดของเพจในหน้า JSP ได้อย่างไร
โดยการตั้งค่าแอตทริบิวต์ “ErrorPage” ของไดเรกทอรี PAGE เป็นชื่อของหน้าข้อผิดพลาดในหน้า JSP จากนั้นตั้งค่าหน้าข้อผิดพลาด JSP เป็น “isErrorpage=”TRUE” ก็สามารถหยุดการแสดงข้อผิดพลาดได้
14) การดำเนินการ JSP คืออะไร?
เป็นแท็ก XML ซึ่งกำหนดให้เซิร์ฟเวอร์ใช้ส่วนประกอบที่มีอยู่หรือพฤติกรรมการควบคุมของ JSP Engine ประกอบด้วยคำนำหน้าทั่วไปของ "jsp:" และชื่อการดำเนินการ
<jsp:include/> <jsp:getProperty/> <jsp:forward/> <jsp:setProperty/> <jsp:usebean/> <jsp:plugin/>
15) แยกความแตกต่างระหว่าง และ <%@include file=…>
แท็กทั้งสองนี้มีข้อมูลจากหน้าหนึ่งไปอีกหน้าหนึ่ง
แท็กแรกทำหน้าที่เป็นการเรียกใช้ฟังก์ชันระหว่าง Jsp สองตัว จะถูกดำเนินการทุกครั้งที่ลูกค้าเข้าถึงหน้าเพจของลูกค้า มีประโยชน์ในการปรับเว็บแอปพลิเคชันให้เป็นโมดูล เนื้อหาใหม่จะรวมอยู่ในผลลัพธ์
เนื้อหาแท็กที่สองของไฟล์ถูกฝังอยู่ในข้อความโดยมีคำสั่งที่คล้ายกัน เนื้อหาที่เปลี่ยนแปลงไม่รวมอยู่ในผลลัพธ์ จะมีประโยชน์เมื่อหลาย ๆ jsp ต้องการโค้ดจาก jsp เดียว
16) สามารถใช้ตัวสร้างแทน init() เพื่อเริ่มต้นเซิร์ฟเล็ตได้หรือไม่?
ใช่มันเป็นไปได้ แต่มันไม่เหมาะเพราะ init() ได้รับการพัฒนาเพราะก่อนหน้านี้ Java เวอร์ชันไม่สามารถเรียกใช้คอนสตรัคเตอร์ที่มีอาร์กิวเมนต์แบบไดนามิกได้ ดังนั้นพวกเขาจึงไม่สามารถกำหนด servletConfig ได้ อย่างไรก็ตาม ในปัจจุบัน เซิร์ฟเล็ตคอนเทนเนอร์ยังคงเรียกเฉพาะตัวสร้าง no-arg เท่านั้น ดังนั้นจึงไม่มีการเข้าถึง servletContext หรือ servletConfig
17) อธิบายวิธีการวงจรชีวิต
1) jsplnit(): คอนเทนเนอร์เรียกสิ่งนี้เพื่อเริ่มต้นอินสแตนซ์เซิร์ฟเล็ต มันถูกเรียกเพียงครั้งเดียวสำหรับอินสแตนซ์เซิร์ฟเล็ตและอยู่ก่อนหน้าวิธีอื่นทั้งหมด
2) _jspบริการ(): คอนเทนเนอร์เรียกสิ่งนี้สำหรับแต่ละคำขอและส่งผ่านไปยังออบเจ็กต์
3) jspทำลาย(): มันถูกเรียกโดยคอนเทนเนอร์ก่อนที่อินสแตนซ์จะถูกทำลาย
18) อธิบายความคิดเห็นเอาต์พุต JSP หรือไม่
เป็นความคิดเห็นที่สามารถดูได้ในไฟล์ต้นฉบับ HTML
19) กำหนดนิพจน์
แท็กนิพจน์ใช้ในการแทรก Java ค่าในเอาต์พุตโดยตรง ไวยากรณ์ของมันคือ
<%=expression%>
ประกอบด้วยนิพจน์ภาษาสคริปต์ที่ถูกประเมิน จากนั้นแปลงเป็นสตริง จากนั้นแทรกในตำแหน่งที่นิพจน์มาในไฟล์ JSP
20) กำหนดองค์ประกอบ
องค์ประกอบมีความสัมพันธ์ที่แข็งแกร่งกับวัตถุมากกว่าการรวมกลุ่ม
21) กำหนด JSP Scriptlet
เป็นแท็ก JSP ที่ล้อมรอบ Java รหัสในหน้า JSP ไวยากรณ์ของพวกเขาคือ <% %> รหัสที่เขียนด้วยสคริปต์เล็ตจะดำเนินการทุกครั้งที่รันโปรแกรม
22) ข้อมูลจาก JSP หนึ่งสามารถส่งผ่านไปยัง JSP อื่นได้อย่างไร?
แท็ก ช่วยให้เราสามารถส่งข้อมูลระหว่าง Jsp หลายแห่งได้
23) อธิบายการใช้ของ แท็ก
<jsp:useBean> id="beanInstName" scope= "page | application" class="ABC.class" type="ABC.class" </jsp:useBean>
แท็กนี้จะสร้างอินสแตนซ์ของ Java Bean โดยจะพยายามค้นหาว่าอินสแตนซ์ของ Bean มีอยู่แล้วหรือไม่ จากนั้นจึงกำหนดร้านค้าที่มีการอ้างอิงในตัวแปร นอกจากนี้ยังระบุประเภทด้วย หากไม่ระบุ จะสร้างอินสแตนซ์จากคลาสที่ระบุเพื่อจัดเก็บการอ้างอิงในตัวแปรใหม่
24) อธิบายการจัดการข้อยกเว้นรันไทม์
แอตทริบิวต์ Errorpage ใช้เพื่อแยกข้อยกเว้นรันไทม์ที่ส่งต่อไปยังหน้าการประมวลผลข้อผิดพลาดโดยอัตโนมัติ
โดยจะเปลี่ยนเส้นทางเบราว์เซอร์ไปยังหน้า JSP error.jsp หากพบข้อยกเว้นที่ไม่ถูกตรวจจับในระหว่างการจัดการคำขอ เป็นหน้าการประมวลผลข้อผิดพลาด
25) ทำไม _jspService() ขึ้นต้นด้วย '_' แต่วิธีวงจรชีวิตอื่นไม่เริ่มต้นด้วย?
เนื้อหาใดก็ตามที่สร้างขึ้นในหน้า jsp จะอยู่ภายใน _jspService() วิธีการโดยคอนเทนเนอร์ หากมีการแทนที่ คอมไพเลอร์จะให้ข้อผิดพลาด แต่อีก 2 วงจรการใช้งานอื่น ๆ ก็สามารถแทนที่ได้อย่างง่ายดาย ดังนั้น '_' แสดงว่าเราไม่สามารถแทนที่วิธีนี้ได้
26) อธิบายค่าขอบเขตต่างๆ สำหรับ แท็ก
tag ใช้เพื่อใช้วัตถุ Java ใดๆ ในหน้า JSP ค่าขอบเขตบางส่วนคือ:
1) การสมัคร
2) คำขอ
3)หน้า
4)เซสชัน
27) แสดงความคิดเห็น 2 ประเภทใน JSP
2 ประเภทคือ:
<%–JSP Comment–%> <!–HTML comment–>
28) วิธีแบบคงที่สามารถแทนที่ได้หรือไม่?
เราสามารถประกาศวิธีการแบบสแตติกด้วยลายเซ็นเดียวกันในคลาสย่อยได้ แต่ไม่ถือว่าเป็นการแทนที่ เนื่องจากจะไม่มีความหลากหลายแบบรันไทม์ ดังนั้นคำตอบคือ 'ไม่'
29) อธิบายคำสั่ง JSP
คำสั่ง JSP เป็นข้อความถึง JSP Engine โดยทำหน้าที่เป็นข้อความจากเพจหนึ่งไปอีกคอนเทนเนอร์หนึ่งและควบคุมการประมวลผลของทั้งเพจ พวกเขาสามารถตั้งค่าส่วนกลางเช่นการประกาศคลาส พวกมันไม่สร้างเอาต์พุตและอยู่ใน <%@….%>
30) อธิบายคำสั่ง pge
Page Directives แจ้ง JSP Engine เกี่ยวกับส่วนหัวและสิ่งอำนวยความสะดวกที่เพจได้รับจากสภาพแวดล้อม พบได้ที่ด้านบนสุดของหน้า JSP ทั้งหมด ไวยากรณ์ของมันคือ <%@ page attribute=”value”>
31) แสดงคุณสมบัติของคำสั่งหน้า
- เซสชั่น: มันแสดงว่ามีข้อมูลเซสชันอยู่ในเพจหรือไม่
- นำเข้า: มันแสดงแพ็คเกจที่นำเข้า
- ถูกละเว้น: มันแสดงว่านิพจน์ EL ถูกละเว้นเมื่อ JSP แปลเป็น a เซิร์ฟเล็ต.
- ชนิดของเนื้อหา: อนุญาตให้ผู้ใช้ระบุประเภทเนื้อหาของเพจ
32) คำสั่งรวมคืออะไร?
คำสั่งรวมจะแทรกเนื้อหาของทรัพยากรลงใน JSP ปัจจุบันแบบคงที่ ช่วยในการนำโค้ดกลับมาใช้ใหม่โดยไม่ซ้ำซ้อน และรวมเนื้อหาของไฟล์ในขณะแปล ไวยากรณ์ของมันมีดังนี้ <%@ include file=”Filename”%>
.
33) การดำเนินการมาตรฐานใน JSP คืออะไร?
สิ่งเหล่านี้ส่งผลต่อพฤติกรรมรันไทม์โดยรวมของเพจและการตอบกลับที่ส่งไปยังไคลเอนต์ ใช้เพื่อรวมไฟล์ตามเวลาที่ร้องขอเพื่อสร้างอินสแตนซ์ Javaถั่วหรือหาอย่างใดอย่างหนึ่ง นอกจากนี้ยังใช้เพื่อสร้างโค้ดเฉพาะเบราว์เซอร์หรือส่งต่อคำขอไปยังหน้าใหม่
34) อธิบายการกระทำ jsp:setProperty
ใช้เพื่อระบุค่าคุณสมบัติของถั่วที่มีการอ้างอิงไว้ล่วงหน้า
-
<jsp:setProperty name=”ABC” property=”myProperty”…
jsp:setproperty จะถูกดำเนินการแม้ว่าจะมีการสร้างอินสแตนซ์ bean ใหม่หรือพบ bean ที่มีอยู่ก็ตาม
โดยการเพิ่ม ในตอนท้ายของโค้ด เงื่อนไขในการดำเนินการจะกลับด้าน กล่าวคือ จะไม่ถูกดำเนินการหากพบวัตถุที่มีอยู่ และเฉพาะในกรณีที่วัตถุใหม่ถูกสร้างอินสแตนซ์เท่านั้น
35) กำหนดบล็อกแบบคงที่
มันถูกใช้เพื่อเริ่มต้นสมาชิกข้อมูลคงที่ มันถูกดำเนินการก่อนที่จะโหลดคลาส
36) อธิบายการทำงานของ jsp:plugin
การดำเนินการนี้ช่วยในการแทรกวัตถุเฉพาะในเบราว์เซอร์หรือฝังองค์ประกอบที่จำเป็นเพื่อระบุการทำงานของแอปเพล็ตโดยใช้ Java ปลั๊กอิน
37) อธิบายการตรวจสอบฝั่งไคลเอ็นต์และเซิร์ฟเวอร์
Javascript ใช้สำหรับการตรวจสอบฝั่งไคลเอ็นต์ มันเกิดขึ้นภายในเบราว์เซอร์ Javascript ใช้เพื่อส่งข้อมูลแบบฟอร์มหากการตรวจสอบความถูกต้องสำเร็จ ข้อผิดพลาดในการตรวจสอบความถูกต้องไม่จำเป็นต้องเดินทางผ่านเครือข่ายเพิ่มเติมเนื่องจากไม่สามารถส่งแบบฟอร์มได้
การตรวจสอบความถูกต้องจะดำเนินการในเซิร์ฟเวอร์หลังจากส่งแล้ว หากการตรวจสอบล้มเหลว จำเป็นต้องมีการเดินทางผ่านเครือข่ายเพิ่มเติมเพื่อส่งแบบฟอร์มไปยังไคลเอนต์อีกครั้ง
38) ขั้นตอนการแปลคืออะไร?
เอ็นจิ้น JSP แปลและคอมไพล์ไฟล์ JSP เป็นเซิร์ฟเล็ต เซิร์ฟเล็ตนี้จะย้ายไปยังขั้นตอนการดำเนินการซึ่งมีการจัดการคำขอและการตอบกลับ มีการคอมไพล์เป็นครั้งแรกที่มีการเข้าถึง เว้นแต่จะคอมไพล์ด้วยตนเองล่วงหน้า การคอมไพล์ด้วยตนเองหรือแบบชัดแจ้งมีประโยชน์สำหรับโปรแกรมที่ยาวและซับซ้อน
39) ทำการเปลี่ยนเส้นทางเบราว์เซอร์จากหน้า JSP
<% response.sendRedirect(URL); %>
หรือเราสามารถเปลี่ยนตำแหน่งของแอตทริบิวต์ส่วนหัว HTTP ได้ดังนี้:
<% response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); response.setHeader(URL); %>
40) ให้ใช้ Object Cloning
การโคลนวัตถุใช้เพื่อสร้างสำเนาของวัตถุโดยการพิมพ์รหัสเดียวกันหรือใช้เทคนิคอื่นๆ
41) วิธีส่งต่อคำขอไปยังแหล่งอื่น
<jsp:forward page="/Page2.jsp" />
42) จะสามารถป้องกันการสร้างเซสชันอัตโนมัติในหน้า JSP ได้อย่างไร
หน้า JSP จะสร้างเซสชันสำหรับคำขอโดยอัตโนมัติ การพิมพ์ข้อความต่อไปนี้จะช่วยหลีกเลี่ยงได้
<%@ page session=”false” %>
43) คุณจะหลีกเลี่ยงโค้ดสคริปต์เล็ตใน JSP ได้อย่างไร
Javaสามารถใช้ Beans หรือแท็กแบบกำหนดเองแทนโค้ดสคริปต์เล็ตได้
44) อธิบายวิธีการ jspDestroy()
เมื่อใดก็ตามที่หน้า JSP กำลังจะถูกทำลาย คอนเทนเนอร์จะเรียกใช้เมธอด jspDestroy() จากอินเทอร์เฟซ javax.servlet.jsp.JspPage เมธอดการทำลายเซิร์ฟเล็ตก็คล้ายกัน สามารถเขียนทับได้อย่างง่ายดายเพื่อดำเนินการล้างข้อมูล เช่น เมื่อปิดการเชื่อมต่อฐานข้อมูล
45) อธิบาย การกระทำ.
เป็นการดำเนินการที่ใช้กับการรวมหรือส่งต่อการดำเนินการมาตรฐาน ช่วยในการส่งชื่อพารามิเตอร์และค่าไปยังทรัพยากร
46) อธิบายวิธีการคงที่
วิธีการคงที่เป็นของคลาสและไม่ใช่วัตถุของคลาส สามารถเรียกใช้ได้โดยไม่ต้องมีคลาส สมาชิกแบบคงที่ยังสามารถเข้าถึงข้อมูลแบบคงที่และเปลี่ยนค่าของมันได้
47) จะปิดการใช้งานการเขียนสคริปต์ได้อย่างไร?
การเขียนสคริปต์สามารถปิดใช้งานได้อย่างง่ายดายโดยการตั้งค่าองค์ประกอบการเขียนสคริปต์ที่ไม่ถูกต้องของตัวอธิบายการปรับใช้ให้เป็นจริง เป็นองค์ประกอบย่อยของกลุ่มทรัพย์สิน มันอาจเป็นเท็จได้เช่นกัน
48) กำหนดคำประกาศ JSP
การประกาศ JSP เป็นแท็กที่ใช้ในการประกาศตัวแปร พวกมันอยู่ในแท็ก <%!%> ใช้ในการประกาศฟังก์ชันและตัวแปร
<%@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) HTML Output สามารถป้องกันไม่ให้ถูกแคชได้อย่างไร?
<% response.setHeader("Cache-Control", "no=store"); response.setDateHeader("Expires", 0); %>
50) JSP ดีกว่าเทคโนโลยี Servlet อย่างไร
JSP เป็นเทคโนโลยีทางฝั่งเซิร์ฟเวอร์ที่ทำให้การสร้างเนื้อหาเป็นเรื่องง่าย เป็นศูนย์กลางของเอกสาร ในขณะที่เซิร์ฟเล็ตเป็นโปรแกรม ก Java หน้าเซิร์ฟเวอร์สามารถมีส่วนของ Java โครงการซึ่งดำเนินการและสร้างอินสแตนซ์ Java ชั้นเรียน อย่างไรก็ตาม สิ่งเหล่านี้เกิดขึ้นภายในไฟล์เทมเพลต HTML เป็นกรอบสำหรับการพัฒนาเว็บแอปพลิเคชัน
คำถามสัมภาษณ์เหล่านี้จะช่วยในวีว่าของคุณ (วาจา)