ก่อนอื่นก็ต้องพูดถึงการเขียน
Web ก่อนนะครับ ในการทำ web site สักเว็บนึง
ก็ต้องมีหลาย web page ครับ
ซึ่งก็ต้องมีวิธีการส่งค่าระหว่าง web page ครับ อย่างเช่น
อยากส่ง username , password ไปให้อีกหน้าหนึ่งเพื่อเช็คว่ามีในฐานข้อมูลหรือไม่
อะไรประมาณนี้
ถ้าลองสังเกตกันดีๆ
เวลาเราเล่นเว็บปกติ อาจจะมีอะไรที่ยืดๆยาวๆในช่อง URL ของเรา เช่น ..../loginAction.do?username=boonoom&title=bloggerหรืออะไรทำนองนี้ เครื่องหมาย "?" เป็นการบอกว่าข้างหลังมันคือ
parameter นั่นเอง ในที่นี้มี parameter ชื่อ username ที่มีค่า boonoomและ title มีค่า blogger
การที่เราจะสามารถส่งค่าในลักษณะนี้ได้ สำหรับ HTML แล้ว เราสามารถทำได้โดยการ submit ที่อยู่ภายใต้แท็ก form มา ดังนี้
การที่เราจะสามารถส่งค่าในลักษณะนี้ได้ สำหรับ HTML แล้ว เราสามารถทำได้โดยการ submit ที่อยู่ภายใต้แท็ก form มา ดังนี้
<form action="webpage2.php"
method="GET">
<input name="ID"
type="text">
<input name="submit"
type="submit" value="Submit Query">
</form>
จากโค้ดตัวอย่างนี้
เมื่อกด submit แล้ว จะมีการเรียก webpage2.php โดยมี parameter
ชื่อ ID พร้อมค่าที่ส่งลงไป [สมมุติว่าใส่
"aaaaa" url ของเราก็จะเป็น ..../webpage2.php?ID=aaaaa
ครับ ซึ่งการกำหนด method ใน form ดังตัวอย่างนี้เป็นแบบ GET คือแสดงให้เป็นกับ url
ครับ ถ้าเราเปลี่ยนเป็น
การแสดงพารามิเตอร์ที่ url จะไม่แสดงครับ คือแสดงแค่ .../webpage2.php แต่เราก็สามารถเรียกใช้ได้เหมือนเดิม สำหรับการเรียกใช้ parameter ในภาษา PHP จะสามารถเรียกได้โดยใช้ตัวแปร GET หรือ POST ขึ้นอยู่กับการกำหนด method ใน HTML ก่อนหน้านี้ครับ
หรือ
จะเห็นว่าในภาษา PHP นั้นจะดึงค่า parameter มาเห็นตัวๆ ต่างจาก Java Servlet ซึ่งเป็นการทำโดยใช้ function เมื่อมีการส่งค่ามา จะมี function ชื่อ doGet() และ doPost() ซึ่งถ้ามีการส่งค่ามาแบบ GET ก็จะเข้า function doGet() ถ้าส่งแบบ POST ก็เข้า doPost() ซึ่งอาจให้ทั้ง 2 ฟังก์ชันนี้ทำงานเหมือนกันหรือต่างกันก็ได้ เยิ่นเย้อซะนาน มาถึงช่วงคำตอบว่า Java Servlet คืออะไร?? จะว่าง่ายๆ มันก็คือ การทำ Web Application ด้วยภาษา Java ซึ่ง Java Servlet มักจะทำงานร่วมกับ JSP (Java Server Pages) ที่เป็นภาษา HTML+JAVA มักจะใช้ในส่วนการแสดงผล และหากต้องการคำนวณอะไรบางอย่าง ก็จะส่งค่าไปยัง Java Servlet ให้ทำให้และส่งค่ามาแสดงผลอีกครั้ง ส่วนของ JSP แสดง textbox และปุ่ม submit
ส่วนของ Servlet ผมตั้งชื่อไฟล์ว่า Servlet.java แต่ตอนเราเรียกไม่ต้องใส่ .java ตามเพราะ code ของเราจะถูก compile ไป ถ้าใครใช้ Editor พวก Eclipse หรือ Netbeans จะมีการ generate source code ส่วนอื่นๆให้เอง ซึ่งส่วนมากจะสร้างให้ doGet(),doPost() เรียกใช้อีก Function หนึ่ง ทำให้เราง่ายต่อการแก้ไข ในตัวอย่างนี้ทำงานเหมือนโค้ดก่อนหน้า คือรับพารามิเตอร์และแสดงผล
แล้วมันต่างจาก PHP ยังไง? การทำงานของ Java Servlet จะดูเป็นสัดส่วนมากกว่า ถ้าเป็น php การเขียนโปรแกรมก็จะเป็น php <-> php โดยโปรแกรมเมอร์ก็ต้องจำเองว่าไฟล์ไหนคืออะไร อย่างดีก็คือสร้าง folder เพื่อช่วยจำ แต่ Java Servlet จะเป็นการส่งค่าระหว่าง jsp <-> java ซึ่งแยกส่วนแสดงผลและส่วนการทำงานชัดเจน ประกอบกับความ Security ที่สูงกว่า php องค์กรใหญ่ๆมักจะใช้กัน แต่ถ้าในวงการเว็บ ส่วนมากก็จะใช้ php มากกว่าเพราะทำงานได้ง่ายกว่าและเร็วกว่า และ php ก็เช่า web hosting ได้ในราคาถูกกว่า servlet มาก |
ไม่มีความคิดเห็น:
แสดงความคิดเห็น