Java Servlet & JSP day 1

Phai Panda
3 min readMar 25, 2020

--

มีโอกาสได้เรียนรู้พื้นฐานตั้งแต่แรกเริ่มกับเพื่อนๆที่ทำงาน จากนั้นเราอธิบายต่อไปว่า จะใช้ภาษาจาวาเขียนเว็บได้อย่างไร จาวาที่ทำเรื่องเว็บได้เรียกว่า servlet ครับ

ปัจจุบันนี้คงน้อยแล้วสำหรับใครที่จะมาฝึกภาษาจาวาเพื่อเขียนเว็บโดยใช้ servlet นอกเสียจากว่ามีโปรเจกต์เดิมต้องไปดูแล อาจจะแก้ bug หรือเพิ่ม feature เล็กๆน้อยๆ

เอ๊! หรือว่ายังคงเริ่มต้นโปรเจกต์ใหม่ด้วย servlet กันอยู่อีก?

จะด้วยเหตุผลใดก็แล้วแต่ครับ การฝึกฝนความคิดโดยเรียนความคิด OOP จากภาษาจาวาก็ไม่ได้เชยจนเกินไป ตรงกันข้ามมันกลับเป็นความคิดที่แข็งแรงมาก

ดังนั้นจึงถือโอกาสที่ได้รับนี้มาบอกเล่าการเรียนรู้พื้นฐานกระทั่งเราสามารถสร้างเว็บจากภาษาจาวาได้

การประกาศตัวแปร

ทุกสิ่งอย่างที่ทำบนเครื่องคอมพิวเตอร์นั้นล้วนต้องใช้หน่วยความจำครับ เรียกว่าการจองหน่วยความจำ การจองหน่วยความจำสามารถทำได้ด้วยการประกาศตัวแปร

การประกาศตัวแปรจำนวนเต็มและทศนิยม

int x = 100;

ตัวอย่างนี้เป็นการจองหน่วยความจำขนาด 4 bytes ชื่อ x เก็บค่าเป็นจำนวนเต็ม 100 เอาไว้

double y = 99.9;

ตัวอย่างนี้เป็นการจองหน่วยความจำขนาด 8 bytes ชื่อ y เก็บค่าเป็นเลขเทศนิยม 99.9 เอาไว้

ถ้าถามว่า แล้วมีการจองหน่วยความจำหรือประกาศตัวแปรแบบไหนบ้าง ให้ดูตารางนี้

จำนวนเต็ม
ทศนิยม

ประกาศตัวแปรแบบ character

char z = 'P';

ตัวอย่างนี้เป็นการจองหน่วยความจำขนาด 2 bytes (โดย default) ในระบบ unicode มีช่วงตั้งแต่ u0000 ถึง uffff

ประกาศตัวแปรแบบ boolean

boolean a = true;
boolean b = false;

เป็นได้เพียง 2 ค่าเท่านั้น ได้แก่ จริง true กับ เท็จ false

การประกาศตัวแปรแบบ String

การจองหน่วยความจำสำหรับ String จะถูกจัดการต่างจากการจองหน่วยความจำที่ผ่านมา เนื่องจาก String อยู่ในรูปของคลาส

String nickName = "Phai";

โปรดสังเกตว่า String จะใช้ S เป็นพิมพ์ใหญ่นำ ภาษาจาวาหมายถึง (meaning) คลาส จากตัวอย่างตัวแปร nickName ได้ชี้ไปยังค่า “Phai”

โจทย์ความคิด

นาย John มาเปิดบัญชี

ถ้ามีลูกค้าเดินทางมาที่แบงก์ขอเปิดบัญชีชื่อนาย John จะเขียนโปรแกรมด้วยภาษาจาวาง่ายๆได้อย่างไร

String customerName = "John";
String accountNumber = "0123456789";
String accountName = "John";
double balance = 500;

โค้ดข้างต้นอธิบายได้ว่าลูกค้าชื่อ John มาเปิดบัญชีหมายเลข 0123456789 ชื่อบัญชีเดียวกับชื่อลูกค้าเองคือ John และฝากเงินไว้ 500 บาท

นางสาว Bee มาเปิดบัญชี

โปรแกรมเดียวกันนี้เพิ่มนางสาว Bee มาขอเปิด 2 บัญชี บัญชีแรกฝาก 500 บาท บัญชีที่สองฝาก 800.50 บาท

String customerName2 = "Bee";
String accountNumber2 = "0123456780";
String accountName2 = "Bee";
double balance2 = 500;

String accountNumber3 = "0123456781";
String accountName3 = "Bee Joo Boo";
double balance3 = 800.50;

โค้ดข้างต้นอธิบายได้ว่าลูกค้าชื่อ Bee มาเปิดบัญชีหมายเลข 0123456780 ชื่อบัญชี Bee และ 0123456781 ชื่อบัญชี Bee Joo Boo ตามลำดับ

เราจะเห็นว่าชื่อตัวแปรที่ใช้มีหมายเลขมาต่อท้ายเพื่อทำให้โปรแกรมนี้รันได้ ไม่อย่างนั้นแล้วชื่อตัวแปรจะซ้ำกันซึ่งถือว่าเป็น error ในภาษาจาวา มันก็จะไม่ทำงานนี้ให้

ลองจินตนาการดูว่าหากมีลูกค้ามาเปิดบัญชีมากกว่านี้โปรแกรมนี้จะไปในทิศทางไหน?

คงมีชื่อตัวแปรที่ใช้หมายเลขมาต่อท้ายเพิ่มขึ้นแน่ๆใช่ไหมครับ

พิมพ์ค่าออกทางจอภาพ

คราวนี้อยากให้ลองพิมพ์ชื่อลูกค้า หมายเลขบัญชี ชื่อบัญชีและยอดคงเหลือออกทางจอภาพ โค้ดน่าจะได้ประมาณนี้

System.out.println("Customer Name: " + customerName);
System.out.println("Account Number: " + accountNumber);
System.out.println("Account Name: " + accountName);
System.out.println("Account Balance: " + balance);

System.out.println("==========");
System.out.println("Customer Name: " + customerName2);
System.out.println("Account Number: " + accountNumber2);
System.out.println("Account Name: " + accountName2);
System.out.println("Account Balance: " + balance2);

System.out.println("==========");
System.out.println("Customer Name: " + customerName2);
System.out.println("Account Number: " + accountNumber3);
System.out.println("Account Name: " + accountName3);
System.out.println("Account Balance: " + balance3);

เมื่อคำสั่ง System.out.println จะนำสตริงแสดงผลที่จอภาพ จอภาพในที่นี้คือ Command Line หรือ Terminal นั่นเอง

ผลที่ได้

show all customer accounts

ดูเยอะแยะอ่านยากไปนิด เรามารู้จักกับเมธอดแล้วสร้างสัก 1 เมธอดเพื่อทำงานนี้ดีกว่า

ปกติเมธอด main จะเขียนในรูป static method แบบนี้ถูกไหม public static void main(String[] args) { ... }

ให้เราสร้างเมธอดใหม่ชื่อ print ไว้ถัดจากเมธอด main หน้าตาแบบนี้

static void print(String customerName, String accountNumber, String accountName, double balance) {
System.out.println("==========");
System.out.println("Customer Name: " + customerName);
System.out.println("Account Number: " + accountNumber);
System.out.println("Account Name: " + accountName);
System.out.println("Account Balance: " + balance);
}

เมธอดใหม่นี้จะรับค่า 3 ค่า ได้แก่ customerName, accountNumber, accountName และ balance แล้วนำค่าเหล่านี้ไปพิมพ์ออกทางจอภาพ เวลาเรียกใช้มันในเมธอด main เราจะเรียกแบบนี้

print(customerName, accountNumber, accountName, balance);
print(customerName2, accountNumber2, accountName2, balance2);
print(customerName2, accountNumber3, accountName3, balance3);

ดังนั้น System.out.println ที่ดูเยอะๆนั่นก็ลบออกไปได้ เหลือแค่นี้

สำหรับ day1 พอเท่านี้ก่อนครับ ให้ทบทวนแล้วก็อ่านภาษาจาวาพื้นฐานนะครับ

อ้างอิง

https://www.sitepoint.com/beginning-java-data-types-variables-and-arrays/

--

--

No responses yet