วันเสาร์ที่ 20 มิถุนายน พ.ศ. 2558

Servlet part 1

โครงการ servlet ปันน้ำใจจากพี่สู่น้อง

>> จากโครงการเรียน servlet ช่วยน้องที่ผ่านมา ต้องขอบคุณพี่แม็กมากๆที่ช่วยถ่ายทอดความรู้ให้ตลอดจนแนะนำวิธีการดีๆผ่านประสบการณ์จริง และเพื่อให้มันคงอยู่ต่อไป ผมจึงใคร่บันทึกมันไว้ตามความเข้าใจของตัวเอง โดยขออนุญาตนำ project เล็กๆที่พี่แม็กแสดงเป็นตัวอย่างมาเล่าสู่เพื่อนๆที่สนใจครับ

>> servlet คืออะไร? มันคือโปรแกรมที่เขียนด้วยภาษาจาวา หรือก็คือจาวาคลาสซึ่งมีหน้าที่ประมวลผลคำร้องขอจาก client

>> client คืออะไร? คือเครื่องคอมพิวเตอร์ที่ร้องขอบริการและรับบริการอย่างหนึ่งอย่างใดจาก server

>> server คืออะไร? คือเครื่องคอมพิวเตอร์ที่อาศัยโปแกรม web server ทำหน้าที่รับคำร้องและส่งคำร้องขอนั้นกลับไปยัง client (ความหมายของ server มีมากกว่านี้ แต่ยกมาเท่าที่อยากจะเล่าให้ฟังนะ อิอิ)

>> web server คืออะไร? คือโปรแกรมคอมพิวเตอร์ซึ่งทำหน้าที่ให้บริการข้อมูลแก่ client, พูดให้ชัดๆในเรื่องนี้ web server คือผู้จัดการกับ HTTP request และ HTTP response ครับ เช่น Apache, IIS เป็นต้น

>> HTTP request และ HTTP response คืออะไร? ก่อนอื่นต้องทราบว่า HTTP ย่อมาจาก Hyper Text Transfer Protocol ฟังแล้วง่วงมาก มันถูกประดิษฐ์ขึ้นมาเพื่อขนส่งข้อมูล (ชนิด text) บนระบบโปรโตคอล TCP อีกทีหนึ่ง (ลึกกว่านี้ไม่ทราบแระครับ) ซึ่งโปรโตคอลตัวนี้คือพื้นฐานของระบบเครือข่ายใยแมงมุมที่เรียกกันว่า World Wide Web หรือก็คือระบบ client / server ขนาดโอฬารนั่นเอง ดังนั้น HTTP request ก็คือคำร้องขอผ่านโปรโตคอล HTTP ส่วน HTTP response คือผลลัพธ์ที่ส่งกลับออกไปผ่านโปรโตคอล HTTP ครับผม

>> กลับมาที่ servlet สืบเนื่องจากมันเป็นไฟล์ที่มีนามสกุลเป็น .java ดังนั้นมันจึงต้องถูกคอมไพล์เป็น .class ผ่าน JDK เสมอ คำถามคือ JDK คืออะไร? (ไม่รู้จริงอะ)

>> JDK ย่อมาจาก Java Development Kit ประกอบด้วย JRE, โปรแกรม compiler ภาษาจาวาและ debugger ครับ

>> จะเรียก servlet ให้ทำงานได้อย่างไรล่ะ (java web application)? ได้โดยส่ง HTTP request ไปยัง web server ครับ

>> web server ในศึกนี้ใช้ตัวไหน? เราใช้ Apache Tomcat หรือเจ้าแมวเหลือง นั่นเพราะมันเป็น web container ที่มี web server เล็กๆผูกติดมาให้พร้อมใช้ ก็ถ้าไม่ใช้ Apache Tomcat เราอาจต้องไปหาโปรแกรม web server อื่นมาติดตั้งลงไป อย่างที่บอกไป เช่น IIS web server หรือ Apache web server เป็นต้น

>> แล้ว web container คืออะไร? คือโปรแกรมที่ช่วยประมวลผลไฟล์สคริปต์ใดๆ ไม่ว่าจะเป็น JSP, PHP, ASP.NET และอื่นๆอีกมากมายให้สามารถทำงานตามคำร้องขอที่ส่งเข้ามา และเมื่อพูดถึง Apache Tomcat web container มันจะทำหน้าที่ประมวลผลไฟล์ .jsp หรือพูดให้ชัดๆคือแปลงไฟล์ .jsp ไปเป็น .java ซึ่งไฟล์ .java นี้ก็คือ servlet อิอิอิ

>> ตกลงต้องเขียน JSP (ไฟล์นามสกุล .jsp) ด้วยเหรอ? คำตอบตรงๆคือไม่ครับ หากเราต้องการเพียงสร้าง URL เพื่อเรียก servlet ให้ทำงานแค่นั้น

>> แล้วถ้าต้องการส่งข้อมูลให้ servlet ล่ะ? ก็สร้าง form ขึ้นมาจากภาษา HTML หรือภาษาสคริปต์อื่นๆเช่น JSP, PHP, ASP.NET เป็นต้น ส่วนรายละเอียดจะกล่าว ณ part ต่อๆไป (หรือลืมไปเลย)

>> สรุปว่าจะได้รู้ JSP ด้วยไหม? ตอบว่าแน่นอน แต่เนื้อหาส่วนใหญ่จะเป็น servlet มากกว่า หรือกล่าวว่าเรียน servlet ก็จะได้เรียน JSP ควบคู่กันไป อย่างที่บอกไปแล้ว .jsp ท้ายสุดจะถูกแปลงเป็น .java ที่เรียกว่า servlet

>> และในเมื่อ web container ที่เราพูดถึงจะเปลี่ยน .jsp เป็น servlet ฉะนั้นตัวจัดการ servlet จึงไม่ใช่ web container จริงไหมพี่น้อง ใช่แล้วล่ะ เรามีโปรแกรมที่จัดการ servlet เป็นการเฉพาะซึ่งเราเรียกมันว่า servlet container อิอิอิ

>> ศัพท์เยอะชักเริ่มมึนก็ไม่แปลก คนที่เริ่มเรียน servlet จึงมักงงเป็นไก่ตาเขียวแทบทุกคน เพราะกว่าจะได้ Hello World สมองก็บวมไปหมดแว้ว เจอกัน part หน้าครับ ผิดพลาดตรงไหนบอกด้วยนะครับ ขอบคุณครับผม

ไม่มีความคิดเห็น:

แสดงความคิดเห็น