ฉันมีคำถาม เหล่านี้คือ:
- JSP และ Servlet สัมพันธ์กันอย่างไร
- JSP เป็น Servlet บางประเภทหรือไม่
- JSP และ JSF เกี่ยวข้องกันอย่างไร
- JSF เป็นJSP พื้นฐาน Pre-Build UIบางประเภทเช่น ASP.NET-MVC หรือไม่
ฉันมีคำถาม เหล่านี้คือ:
คำตอบ:
JSP เป็นเทคโนโลยีมุมมอง Java ที่ทำงานบนเครื่องเซิร์ฟเวอร์ซึ่งช่วยให้คุณสามารถเขียนข้อความเทมเพลตในภาษาฝั่งไคลเอ็นต์ (เช่น HTML, CSS, JavaScript, ect) JSP รองรับtaglibsซึ่งมีการสำรองข้อมูลโดยส่วนต่าง ๆ ของรหัส Java ที่ให้คุณควบคุมการไหลของหน้าหรือเอาท์พุทแบบไดนามิก taglib-ที่รู้จักกันดีคือJSTL JSP ยังรองรับภาษา Expressionซึ่งสามารถใช้ในการเข้าถึงข้อมูลส่วนหลัง (ผ่านแอททริบิวที่มีให้ในหน้าคำขอเซสชันและขอบเขตแอปพลิเคชัน) ส่วนใหญ่ใช้ร่วมกับแท็ก
เมื่อมีการร้องขอ JSP เป็นครั้งแรกหรือเมื่อเว็บแอปเริ่มต้นขึ้นเซิร์ฟเล็ตคอนเทนเนอร์จะรวบรวมมันเป็นคลาสที่ขยายHttpServlet
และใช้ในช่วงอายุการใช้งานของเว็บแอป คุณสามารถค้นหาซอร์สโค้ดที่สร้างขึ้นในไดเรกทอรีงานของเซิร์ฟเวอร์ ในตัวอย่างTomcatเป็น/work
ไดเรกทอรี ในการร้องขอ JSP คอนเทนเนอร์ servlet จะดำเนินการคลาส JSP ที่คอมไพล์แล้วส่งเอาต์พุตที่สร้างขึ้น (โดยปกติจะเป็นเพียง HTML / CSS / JS) ผ่านเว็บเซิร์ฟเวอร์ผ่านเครือข่ายไปยังฝั่งไคลเอ็นต์ซึ่งจะแสดงในเว็บเบราว์เซอร์
Servlet เป็นJava application programming interface (API) ที่ทำงานบนเครื่องเซิร์ฟเวอร์ซึ่งสกัดการร้องขอจากไคลเอนต์และสร้าง / ส่งการตอบสนอง ตัวอย่างที่รู้จักกันดีคือHttpServlet
ซึ่งมีวิธีการที่จะขอในHTTPคำขอใช้เป็นที่นิยมวิธี HTTPเช่นและGET
POST
คุณสามารถกำหนดค่าHttpServlet
s เพื่อฟังรูปแบบ HTTP URL ที่แน่นอนซึ่งสามารถกำหนดค่าได้web.xml
หรือมากกว่าเมื่อเร็ว ๆ นี้ด้วยJava EE 6พร้อม@WebServlet
หมายเหตุประกอบ
เมื่อมีการร้องขอ Servlet เป็นครั้งแรกหรือในระหว่างการเริ่มต้นใช้งานเว็บแอป servlet คอนเทนเนอร์จะสร้างอินสแตนซ์ของมันและเก็บไว้ในหน่วยความจำตลอดอายุการใช้งานของเว็บแอป อินสแตนซ์เดียวกันจะถูกนำมาใช้ซ้ำสำหรับคำขอที่เข้ามาทุกครั้งที่มี URL ตรงกับรูปแบบ URL ของเซิร์ฟเล็ต คุณสามารถเข้าถึงข้อมูลการร้องขอโดยการและจัดการกับการตอบสนองโดยHttpServletRequest
HttpServletResponse
วัตถุทั้งสองมีอยู่เป็นข้อโต้แย้งวิธีการภายในใด ๆ ของวิธีการแทนที่ของHttpServlet
เช่นและdoGet()
doPost()
JSF เป็นส่วนประกอบตามกรอบ MVCซึ่งถูกสร้างขึ้นที่ด้านบนของ Servlet API และยังมีส่วนประกอบทาง taglibs ซึ่งสามารถใช้ใน JSP หรือเทคโนโลยีอื่น ๆ มุมมองใด ๆ Java ตามเช่นFacelets Facelets นั้นเหมาะสมกับ JSF มากกว่า JSP มันให้ความสามารถในการสร้างเทมเพอร์เมนต์ที่ยอดเยี่ยมเช่นคอมโพสิตคอมโพเนนต์ขณะที่ JSP นั้นเสนอ<jsp:include>
เทมเพลตใน JSF เท่านั้นดังนั้นคุณจึงถูกบังคับให้สร้างคอมโพเนนต์ที่กำหนดเองด้วยโค้ด Java ดิบ (ซึ่งค่อนข้างทึบและทำงานน่าเบื่อมาก) เมื่อ คุณต้องการแทนที่กลุ่มส่วนประกอบซ้ำด้วยองค์ประกอบเดียว ตั้งแต่ JSF 2.0, JSP ถูกเลิกใช้ในฐานะที่เป็นเทคโนโลยีมุมมองเพื่อสนับสนุน Facelets
หมายเหตุ : JSP เองไม่ได้รับการสนับสนุนเพียงแค่การรวมกันของ JSF กับ JSP จะถูกคัดค้าน
หมายเหตุ : JSP มีความสามารถในการสร้างเทมเพลตที่ยอดเยี่ยมโดยใช้ Taglibs โดยเฉพาะตัวแปร( ไฟล์แท็ก ) JSP templating ร่วมกับ JSF คือสิ่งที่ขาด
ในฐานะที่เป็น MVC ( Model-View-Controllerกรอบ) JSF ให้FacesServlet
เป็นคนเดียวที่ตอบสนองการร้องขอควบคุม ใช้การร้องขอ / ตอบกลับ HTTP มาตรฐานและน่าเบื่อทั้งหมดจากมือของคุณเช่นการรวบรวมอินพุตของผู้ใช้การตรวจสอบ / แปลงพวกเขาวางไว้ในวัตถุแบบจำลองการเรียกการกระทำและการตอบสนอง วิธีนี้คุณจะจบลงด้วยพื้น JSP หรือ Facelets (XHTML) หน้าสำหรับดูและชั้น JavaBean เป็นรุ่น คอมโพเนนต์ JSF ใช้เพื่อเชื่อมโยงมุมมองกับโมเดล (เช่นการควบคุมเว็บ ASP.NET ของคุณ) และFacesServlet
ใช้โครงสร้างองค์ประกอบ JSFเพื่อทำงานทั้งหมด
<c:forEach>
แท็กเท่านั้นจาก JSTL ดูstackoverflow.com/tags/jstl/info
<mytag:doesSomething/>
ดูเหมือนแท็กที่กำหนดเองและ<jsp:attribute>
แท็ก jsp
ดูhttp://www.oracle.com/technetwork/java/faq-137059.html
เทคโนโลยี JSP เป็นส่วนหนึ่งของตระกูลเทคโนโลยี Java เพจ JSP ถูกคอมไพล์ลงในเซิร์ฟเล็ตและอาจเรียกคอมโพเนนต์ JavaBeans (beans) หรือคอมโพเนนต์ Enterprise JavaBeans (enterprise beans) เพื่อดำเนินการประมวลผลบนเซิร์ฟเวอร์ ดังนั้นเทคโนโลยี JSP จึงเป็นองค์ประกอบสำคัญในสถาปัตยกรรมที่ปรับขนาดได้สูงสำหรับแอปพลิเคชันบนเว็บ
ดูhttps://jcp.org/en/introduction/faq
ตอบ: เทคโนโลยี JavaServer Faces เป็นเฟรมเวิร์กสำหรับการสร้างส่วนต่อประสานผู้ใช้สำหรับเว็บแอปพลิเคชัน เทคโนโลยี JavaServer Faces ประกอบด้วย:
ชุด API สำหรับ: แสดงถึงส่วนประกอบของ UI และการจัดการสถานะการจัดการเหตุการณ์และการตรวจสอบความถูกต้องของอินพุตกำหนดการนำทางหน้าและสนับสนุนสากลและการเข้าถึง
ไลบรารีแท็กที่กำหนดเองของ JavaServer Pages (JSP) สำหรับแสดงอินเตอร์เฟส JavaServer Faces ภายในเพจ JSP
JSP เป็น servlet ชนิดพิเศษ
JSF เป็นชุดของแท็กที่คุณสามารถใช้กับ JSP
จากมุมมองเบราว์เซอร์ / ไคลเอ็นต์
JSP และ JSF ทั้งสองดูเหมือนกันตามความต้องการของแอปพลิเคชันไป JSP เหมาะสำหรับคำขอ - แอปพลิเคชันที่ใช้การตอบสนอง
JSF ได้รับการกำหนดเป้าหมายสำหรับเว็บแอพพลิเคชั่นที่สมบูรณ์ยิ่งขึ้น ฉันเห็นเหตุการณ์ละเอียดมากกว่าคำขอ / ตอบกลับ
จากมุมมองเซิร์ฟเวอร์
หน้า JSP ถูกแปลงเป็น servlet และมีลักษณะการทำงานเพียงเล็กน้อยเท่านั้น
หน้า JSF ถูกแปลงเป็นโครงสร้างส่วนประกอบ (โดย FacesServlet พิเศษ) และติดตามวงจรชีวิตส่วนประกอบที่กำหนดโดยข้อมูลจำเพาะ
Servlets:
Java Servlet API ช่วยให้นักพัฒนา Java สามารถเขียนโค้ดฝั่งเซิร์ฟเวอร์สำหรับนำเสนอเนื้อหาเว็บแบบไดนามิก เช่นเดียวกับเว็บเซิร์ฟเวอร์ API ที่เป็นกรรมสิทธิ์อื่น ๆ Java Servlet API ให้ประสิทธิภาพที่เหนือกว่า CGI อย่างไรก็ตามมีข้อดีเพิ่มเติมที่สำคัญบางประการ เนื่องจากเซิร์ฟเล็ตถูกเข้ารหัสใน Java จึงมีวิธีการออกแบบเชิงวัตถุ (OO) และที่สำคัญกว่านั้นสามารถรันบนแพลตฟอร์มใด ๆ ดังนั้นรหัสเดียวกันนี้สามารถพกพาไปยังโฮสต์ใด ๆ ที่รองรับ Java Servlets มีส่วนอย่างมากต่อความนิยมของ Java เนื่องจากเป็นเทคโนโลยีที่ใช้กันอย่างแพร่หลายสำหรับการพัฒนาแอปพลิเคชันบนเว็บเซิร์ฟเวอร์
JSP:
JSP ถูกสร้างขึ้นบนเซิร์ฟเล็ตและจัดเตรียมโซลูชันบนเพจที่ง่ายขึ้นเพื่อสร้างเนื้อหา HTML แบบไดนามิกจำนวนมากสำหรับส่วนต่อประสานผู้ใช้เว็บ JavaServer Pages ช่วยให้นักพัฒนาเว็บและนักออกแบบสามารถแก้ไขหน้า HTML ด้วยแท็กพิเศษสำหรับส่วน Java แบบไดนามิก JavaServer Pages ทำงานโดยให้มีเซิร์ฟเล็ตพิเศษที่เรียกว่าคอนเทนเนอร์ JSP ซึ่งติดตั้งบนเว็บเซิร์ฟเวอร์และจัดการการร้องขอการดูเพจ JSP ทั้งหมด คอนเทนเนอร์ JSP แปล JSP ที่ร้องขอเป็นโค้ด servlet ที่รวบรวมและดำเนินการทันที การร้องขอที่ตามมาในหน้าเดียวกันเพียงแค่เรียกใช้เซิร์ฟเล็ตแบบรันไทม์สำหรับหน้า หากทำการเปลี่ยนแปลงกับ JSP บนเซิร์ฟเวอร์คำร้องขอเพื่อดูจะทริกเกอร์การแปลการคอมไพล์และรีสตาร์ทของ runtime servlet อีกครั้ง
JSF:
JavaServer Faces เป็นเฟรมเวิร์ก Java มาตรฐานสำหรับการสร้างส่วนต่อประสานผู้ใช้สำหรับเว็บแอปพลิเคชัน สิ่งสำคัญที่สุดคือช่วยให้การพัฒนาส่วนต่อประสานผู้ใช้ง่ายขึ้นซึ่งมักจะเป็นส่วนที่ยากและน่าเบื่อของการพัฒนาโปรแกรมประยุกต์บนเว็บ
แม้ว่ามันจะเป็นไปได้ที่จะสร้างส่วนต่อประสานกับผู้ใช้โดยใช้เทคโนโลยี Java Web พื้นฐาน (เช่น Java servlets และ JavaServer Pages) โดยไม่มีกรอบการทำงานที่ครอบคลุมสำหรับการพัฒนาเว็บแอปพลิเคชันระดับองค์กรเทคโนโลยีหลักเหล่านี้มักจะนำไปสู่ ที่สำคัญกว่านั้นในเวลาที่นักพัฒนาประสบความสำเร็จในการแก้ปัญหาคุณภาพการผลิตปัญหาชุดเดียวกันที่แก้ไขโดย JSF จะได้รับการแก้ไขในลักษณะที่ไม่เป็นมาตรฐาน JavaServer Faces ได้รับการออกแบบมาเพื่อลดความซับซ้อนของการพัฒนาส่วนต่อประสานผู้ใช้สำหรับ Java Web Applications ด้วยวิธีการดังต่อไปนี้:
•ให้แนวทางการพัฒนาที่ไม่ขึ้นกับส่วนประกอบของลูกค้าเป็นศูนย์กลางในการสร้างส่วนต่อประสานผู้ใช้บนเว็บ
•ช่วยให้การเข้าถึงและการจัดการข้อมูลแอปพลิเคชันง่ายขึ้นจากส่วนต่อประสานผู้ใช้บนเว็บ
•จะจัดการสถานะส่วนติดต่อผู้ใช้โดยอัตโนมัติระหว่างการร้องขอหลายครั้งและหลายไคลเอนต์ในลักษณะที่เรียบง่ายและไม่เป็นการรบกวน
•ให้กรอบการพัฒนาที่เป็นมิตรกับผู้ชมนักพัฒนาที่หลากหลายพร้อมชุดทักษะที่แตกต่างกัน
•อธิบายชุดรูปแบบสถาปัตยกรรมมาตรฐานสำหรับโปรแกรมประยุกต์บนเว็บ
[ แหล่งที่มา: การอ้างอิงที่สมบูรณ์: JSF ]
นอกจากนี้ยังมีสถานการณ์ที่คุณสามารถใช้ JSP แทน JSF ได้ ลักษณะการใช้งานควรเป็นปัจจัยในการตัดสินใจเลือกเทคโนโลยี
หากคุณมีการโต้ตอบกับ GUI ที่หลากหลายและการเขียนสคริปต์ Java จำนวนมากจำเป็นต้องใช้ JSF โดยพื้นฐานแล้วหากสถาปัตยกรรมแอป GUI ของคุณเป็นแบบเชิงส่วนประกอบและขับเคลื่อนได้เหมือน Swing แล้ว JSF นั้นดีที่สุด
หากแอปพลิเคชันเป็นเพียงการส่งแบบฟอร์มธรรมดาไม่จำเป็นต้องมีการโต้ตอบกับ GUI มากนัก JSP สามารถทำได้ดีหากการเรียนรู้เทคโนโลยีใหม่เป็นค่าใช้จ่ายและยังมีกรอบงานที่ซับซ้อนไม่จำเป็น
Servlet - เป็นเลเยอร์เซิร์ฟเวอร์ Java
นั่นเป็นความจริงที่ JSP ถูกแปลงเป็น servlet ในเวลาที่ดำเนินการและ JSF นั้นเป็นสิ่งใหม่ทั้งหมดเพื่อให้หน้าเว็บอ่านง่ายขึ้นเนื่องจาก JSF อนุญาตให้เขียนโครงสร้างการเขียนโปรแกรมทั้งหมดในรูปแบบของแท็ก
ความแตกต่างพื้นฐานระหว่าง Servlets และ JSP คือใน Servlets เราเขียนโค้ดจาวาและที่เราฝังโค้ด HTML และมีเพียงตัวพิมพ์เล็กกับ JSP ใน JSP เราเขียนโค้ด HTML และเราฝังโค้ด java โดยใช้แท็กที่จัดทำโดย JSP
Java Server Pages (JSP)เป็นเทคโนโลยีจาวาที่ช่วยให้นักพัฒนาเว็บและนักออกแบบสามารถพัฒนาและบำรุงรักษาหน้าเว็บแบบไดนามิกที่มีข้อมูลจำนวนมากได้อย่างง่ายดายซึ่งใช้ประโยชน์จากระบบธุรกิจที่มีอยู่ เทคโนโลยี JSP แยกส่วนติดต่อผู้ใช้จากการสร้างเนื้อหาทำให้นักออกแบบสามารถเปลี่ยนเค้าโครงหน้าโดยรวมได้โดยไม่ต้องเปลี่ยนเนื้อหาแบบไดนามิกพื้นฐาน
Faceletsเป็นภาษาประกาศหน้าไม่ใช่ JSP แรกที่ออกแบบมาสำหรับJSF (Java Server Faces)ซึ่งให้รูปแบบการเขียนโปรแกรมที่ง่ายและมีประสิทธิภาพมากขึ้นสำหรับนักพัฒนา JSF เมื่อเทียบกับ JSP จะช่วยแก้ไขปัญหาต่าง ๆ ที่เกิดขึ้นใน JSP สำหรับการพัฒนาเว็บแอปพลิเคชัน
นี่คือตารางที่เปรียบเทียบคุณสมบัติของ scriplets และ facelets:
JSP:means HTML+Java Code:
JSP มีวงจรชีวิตเป็นของตัวเอง jsp_init () jsp_service () jsp_destroy
หลังจากคำร้องขอ JSP แรกแปลงเป็นไฟล์. java แท็กสามประเภทที่เราใช้อยู่
1) สคริปต์
<% %>
ผู้พัฒนาที่นี่สามารถประกาศทุกสิ่งที่ผู้พัฒนาต้องการนำข้อมูลไปใช้
2. ) แท็กนิพจน์
<%= %>
นักพัฒนาที่นี่สามารถใช้ข้อมูลที่เกี่ยวข้องกับการพิมพ์
3. ) การประกาศ
<!% %>
นักพัฒนาที่นี่สามารถประกาศข้อมูลที่เกี่ยวข้องกับวิธีการบางอย่าง
Servlet:
Servlet มีวงจรชีวิตเป็นของตัวเอง
init()
service()
destroy()
หลังจากคอนเทนเนอร์คำขอแรกจะอ่านข้อมูลจากไฟล์ web.xml หลังจากนั้นหลังจากเติมคำต้อนรับจะปรากฏขึ้น
ตอนนี้เป็นต้นไปหลังจากทำการกระทำมันจะค้นหา URL และหลังจากกระบวนการนี้มันจะค้นหา servlet เฉพาะที่มีมันด้วยตนเอง การบริการจะดำเนินการ
JSF:
JSF มี ui เป็นของตัวเองและเป็นวงจรชีวิตที่สามารถแสดงได้หกวิธี
A)Restore view phase
B)Apply request values phase
C)Process validations phase
D)Update model values phase
E)Invoke application phase
F)Render response phase
สำหรับ UI ที่นี่สำหรับตารางที่นี่เรากำลังใช้แผงกริดและมีใบหน้าที่แตกต่างกันสำหรับเรื่องนี้
Rich Faces
Prime Faces.
JSPs เป็นองค์ประกอบมุมมองของ MVC (Model View Controller) คอนโทรลเลอร์ใช้การร้องขอที่เข้ามาและส่งผ่านไปยัง Model ซึ่งอาจเป็น bean ที่เข้าถึงฐานข้อมูล จากนั้น JSP จะจัดรูปแบบเอาต์พุตโดยใช้ HTML, CSS และ JavaScript จากนั้นเอาต์พุตจะถูกส่งกลับไปยังผู้ร้องขอ
JSF เป็นเฟรมเวิร์กขั้นสูงที่ง่ายต่อการใช้สถาปัตยกรรมตาม Model-View-Controller (MVC) สำหรับโครงการ ข้อได้เปรียบหลักของ JSF บน JSP คือการเรนเดอร์แบบไดนามิกอย่างง่ายของส่วนประกอบบนเบราว์เซอร์ตามเงื่อนไขและการรวมเหตุการณ์ ajax ได้ง่าย
ส่วนหน้าของแอปพลิเคชัน JSF เช่นไฟล์ xhtml คือส่วนที่แสดงต่อผู้ใช้ผ่านเบราว์เซอร์ ไฟล์ xhtml เหล่านี้เรียกใช้ถั่วที่มีการจัดการภายในเช่นตัวควบคุมที่เขียนตรรกะของแอปพลิเคชันจริง
ตัวควบคุมเรียกใช้บริการต่าง ๆ ภายในซึ่งสื่อสารกับฐานข้อมูลภายใน (โดยใช้ Hibernate หรือ JPA API) นี่คือการไหลที่เกิดขึ้นในระยะสั้น
JSF ยังใช้ร่วมกับ RichFaces ซึ่งเป็นเฟรมเวิร์กสำหรับมอบรูปลักษณ์ที่สมบูรณ์ให้กับเว็บแอปพลิเคชันของคุณ
JSF + RichFaces + Hibernate / JPA เป็นเทคโนโลยีที่ดีที่จะเรียนรู้อย่างแน่นอน!
Jsp ยังมีรหัส servlet ในตัวซึ่งไม่ต้องการการคอมไพล์ภายนอกที่สามารถรันได้โดยตรง การเปลี่ยนแปลงจะมีผลใน jsp โดยตรงในเบราว์เซอร์
จำเป็นต้องรวบรวม servlet (เช่นมันจะมีการสร้างชั้นเรียนเฉพาะ)
Jsf เป็นองค์ประกอบมุมมองของ MVC Framework
JSP ย่อมาจาก JAVA SERVER PAGE ........ jsp ไม่ใช่ servlet Jsp ใช้รหัสและแท็ก HTML ทั้งในตัวคุณเองคุณไม่จำเป็นต้องสร้าง HTML และ servlet อย่างแยกต่างหาก Jsp กำลังมีบทบาทที่ยอดเยี่ยมในเว็บแอปพลิเคชัน Servlet เป็นคลาส java ที่มีบทบาทในการสร้างหน้า HTML ของคุณจากคงที่เป็นแบบไดนามิก
Servletsเป็นโปรแกรมจาวาฝั่งเซิร์ฟเวอร์ที่ทำงานภายในเว็บคอนเทนเนอร์ เป้าหมายหลักของเซิร์ฟเล็ตคือการประมวลผลคำขอที่ได้รับจากลูกค้า
Java Server Pagesใช้เพื่อสร้างเว็บเพจแบบไดนามิก Jsp's ถูกแนะนำให้เขียนโค้ด java plus html ในไฟล์เดียวซึ่งไม่ใช่เรื่องง่ายที่จะทำในโปรแกรม servlets และไฟล์ jsp จะถูกแปลงเป็น java servlet เมื่อทำการแปล
Java Server Facesเป็นกรอบงานเว็บ MVC ซึ่งช่วยให้การพัฒนา UI ง่ายขึ้น