กำหนดค่าเริ่มต้นให้แก่ Tomcat (Server Configuration)
เมื่อเข้าไปดูที่โฟลเดอร์ tomcat7 จะพบว่ามีโฟลเดอร์ย่อย ดังนี้โฟลเดอร์ ย่อยต่าง ๆ สำหรับเก็บไฟล์แต่ละชนิดดังนี้
- bin เป็นที่เก็บ binary executable files ต่าง ๆ
- conf เป็นที่เก็บไฟล์กำหนดค่าต่าง ๆ (configuration files) ของ Tomcat เช่นกำหนด port ที่ใช้ในการเชื่อมต่อ กำหนดโฟลเดอร์ที่เก็บ web application กำหนด password
- lib เก็บไฟล์ชนิด class และ jar (Java Archive)
- log เก็บ log file ที่รวบรวมข้อผิดพลาดและคำเตือนต่าง ๆ ระหว่างใช้งาน server
- temp ใช้เก็บไฟล์ชั่วคราว (temporary file)
- webapps เป็นโฟลเดอร์ที่เก็บ web application ต่าง ๆ ไฟล์ hmtl และ jsp จะถูกเก็บอยู่ภายใต้โฟลเดอร์นี้
- work เป็นโฟลเดอร์ทำหน้าที่คล้ายกระดาษทด ใช้เก็บไฟล์ชั่วคราวต่าง ๆ ขณะที่ server ทำงาน ไฟล์ชั่วคราวจะถูกลบทิ้งไป เมื่อ server ประมวลผลงานนั้นเสร็จสิ้น
การกำหนดค่าให้ server.xml
ใช้ text editor อาจจะเป็น notepad หรือ editplus หรือ notepad++ หรือ textPad เปิดไฟล์ server.xml กรณีที่ต้องการแก้ไข TCP port : เราสามารถ เปลี่ยนตัวเลขพอร์ต ที่ใข้ในการเชื่อมต่อกับ server เป็นเลขอื่น โดยปกติโปรแกรมจะเซตค่าไว้ที่พอร์ต 8080 เราอาจเปลี่ยนเป็น พอร์ต 80 ถ้า web server ของเรามีแค่ tomcat เพียง server เดียว ปกติพอร์ต 80 นี้ใช้กับ Apache web server หรือ IIS ของไมโครซอฟต์ ซึ่งจะเป็น web server หลักตัวเลขพอร์ต จะต้องไม่ไปชนกับพอร์ตของอุปกรณ์อื่น ๆ ยึดครองใช้อยู่ เพื่อความปลอดภัย เรามักจะใช้เลขพอร์ตที่มีค่าระหว่าง 1024 ถึง 65535 ซึ่งรับประกันได้ว่าไม่ไปชนกับพอร์ตของอุปกรณ์ใด (ในการติดตั้งครั้งนี้ เราจะยังคงใช้พอร์ต 8080 ตามที่ค่าที่กำหนดไว้ เพราะจะติดตั้ง Apache web server ซึ่งใช้พอร์ต 80 ด้วย จึงไม่ต้องแก้ไขสิ่งใดในไฟล์ server.xml นี้)
กรณีที่ต้องการเปลี่ยน web application directory:
To do another time
กำหนดค่าให้ web.xml
กรณีต้องการให้ แสดง รายการของ directory เป็นแบบ list ถ้าโฟลเดอร์นั้นไม่มี welcome fie (index.html, index.jsp) server จะแสดงชื่อไฟล์ต่าง ๆ ที่มีอยู่ในไดเรกทอรีนั้น แต่มีคำเตือนเขียนไว้ใน web.xml ว่าการเปิดใช้งานกรณีนี้จะทำให้ server ทำงานช้าลงและสิ้นเปลืองทรัพยากรของระบบเข้าไปเปลี่ยนที่ “listings” เปลี่ยนค่าจาก false เป็น true
กำหนดค่า context.xml
ในระหว่างการศึกษาหรือทดลอง เราอาจต้องเปลี่ยนแปลงค่าใน Web.xml เช่น เพิ่มโปรแกรม class file หรือเพิ่ม servlet เข้าไปในระบบ การทำเช่นนี้แต่ละครั้งจะต้องให้ Tomcat server รับทราบการเปลี่ยนแปลง ทำได้โดย restart server ใหม่ทุกครั้งที่มีการเปลี่ยนแปลง ทำให้ไม่สะดวกในการทำงาน เราจึงกำหนดให้ Tomcat รับรู้การเปลี่ยนแปลงโดยอัตโนมัติและให้ทำการ reload ตัวมันเอง โดยที่เราไม่ต้องไป restart ใหม่ โดยการแก้ไขคุณสมบัติ reloadable จาก false เป็น trueStart Tocat Server
- เปิดใช้งานCMD shell (ใช้ปุ่มวินโดว์ + R แล้วพิมพ์คำว่า cmd และกด Enter) พิมพ์คำสั่งต่อไปนี้ เปลี่ยนตำแหน่งโฟลเดอร์ให้มาอยู่ที่ root directory ของไดรว์ C โดจใช้คำสั่ง "cd\"
- เปิด browser จะเป็น IE หรือ FireFox หรือ Chrome หรืออะไรอื่นก็ได้ พิมพ์ URL เป็น http://localhost:8080
"C:\>cd WebProject\Tomcat7\bin" ไปที่โฟลเดอร์ bin ซึ่งเก็บ executable file ของ Tomcat
"C:\>WebProject\Tomcat7\bin\startup" เริ่มต้น start เซิร์ฟเวอร์
จะมีหน้าต่างชื่อ Tomcat แสดงให้เห็นว่า server กำลังถูกเปิดใช้งาน ในหน้าต่างจะมีข้อความแจ้งอยู่หลายข้อความ ที่น่าสนใจคือ จะบอกตำแหน่งที่เก็บ web application directory บอกพอร์ตที่ใช้ในการเชื่อมต่อกับ server และบอกเวลาที่ใช้ในกา start server
หมายเหตุ
ในการ start tomcat ต้องพิมพ์คำสั่งใน CMD
shell หลายขั้นตอน สามารถนำมาเขียนเป็น batch file วางไว้ที่หน้า desk
top เพื่อสะดวกในการทำงาน คำสั่งต่าง ๆ ที่พิมพ์ลงใน text editor
มีดังนี้
จากนั้น save เก็บไว้ในชื่อ StartTomcat.bat วางไว้บน desktop เมื่อต้องการ start server ก็เพียง double click ที่ icon ของ StartTomcat
จากนั้น save เก็บไว้ในชื่อ StartTomcat.bat วางไว้บน desktop เมื่อต้องการ start server ก็เพียง double click ที่ icon ของ StartTomcat
คำว่า localhost หมายถึง ชื่อ server ที่ติดตั้งอยู่ในเครื่องคอมพิวเตอร์ของเรา มีค่า IP address คือ 127.0.0.1 และเราใช้ browser ที่มีอยู่ในเครื่องนี้ ติดต่อกับ server เรียกว่า local loop-back testing ถ้าเราติดตั้ง tomcat ที่คอมพิวเตอร์เครื่องอื่น ผ่านเครือข่ายอินเตอร์เน็ต ต้องเปลี่ยน IP address หรือ DNS (Domain Name Server— เช่น www.abc.com) ให้สอดคล้องกับเครื่องคอมพิวเตอร์นั้น ๆ และต้องใส่เลขพอร์ตที่จะติดต่อด้วย เพราะถ้าไม่ใส่จะถือว่าพอร์ตนั้นเป็นค่า default คือ พอร์ต 80 รูปแบบการเชื่อมต่อกับ Tomcat serverโดยทั่วไปเขียนได้เป็น http://HostnameOrIPAddress:PortNumber
ปิดการทำงาน Tomcat (Shutdown server)
ทำได้ 2 วิธีดังนี้- วิธีที่ 1 ไปที่ Command shell (ใช้ปุ่มวินโดว์ + R แล้วพิมพ์คำว่า cmd และกด Enter) พิมพ์คำสั่งต่อไปนี้ C:\.....\ cd \
- วิธีที่ 2 เปิดหน้าต่าง Tomcat กดปุ่ม Control + ปุ่ม C (หรือ กด Control + break) server จะปิดการทำงาน ทันที
C:> cd WebProject\Tomcat7\bin
C:>WebProject\Tomcat7\bin\shutdown
สร้างเว็บเพจ HTML เพื่อทดลองใช้กับ Tomcat( Develop and Deploy a Web Application)
เริ่มต้นด้วยการตั้งชื่อ web application ที่เราจะสร้างขึ้น เพราะเป็นครั้งแรกที่เพิ่งรู้จัก จึงทักทายกันก่อน จะเรียกชื่อ web application นี้ว่า “greeting”- สร้างโฟลเดอร์ greeting อยู่ภายใต้โฟลเดอร์ webapps เป็น context root หรือ document base directory ของเว็บแอพพลิเคชันของเรา จะเก็บไฟล์นามสกุล html, jsp, css, images หรือ scripts ต่าง ๆ ที่ผู้ใช้งานผ่านอินเตอร์เน็ตสามารถเข้าถึงได้
- สร้างโฟลเดอร์ย่อย ชื่อ WEB-INF (ชื่อเป็นอักษรตัวใหญ่ทั้งหมด ไม่มีช่องว่าง ตรงกลางนั้นเป็น dash ไม่ใช่ underscore) เป็นโฟลเดอร์ที่เก็บ configuration files ต่าง ๆ เช่น web.xml ผู้ใช้งานผ่านอินเทอร์เน็ตไม่สามารถมองเห็นโฟลเดอร์นี้
- สร้างโฟลเดอร์ย่อย ชื่อ classes อยู่ใต้โฟลเดอร์ WEB-INF อีกที(เป็นอักษรตัวเล็กทั้งหมด และเป็นพหูพจน์) ใช้เก็บ class file หรือ servlet ที่ใช้กับ เว็บ แอพพลิเคชันนี้ โครงสร้างของโฟลเดอร์จะมีลักษณะดังภาพ
- เขียน Greeting page แล้ว save เก็บไว้ภายใต้โฟลเดอร์ greeting ชื่อ hello.html ข้อความที่พิมพ์ลงใน text editor มีดังนี้
- เปิด browser พิมพ์ http://localhost:8080/greeting/hello.html จะได้หน้าตาของเว็บเพจ ที่เราเขียนดังนี้
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<head><title> Welcome to my Hompage </title></head>
<body>
<h2> Hello, This is my first Hompage </h2>
<h2> ทดสอบภาษาไทย </h2>
<h3> เป็นมนุษย์ สุดประเสริฐ เลิศคุณค่า <br/>
กว่าบรรดา ฝูงสัตว์ เดรัจฉาน<br/>
จงฝ่าฟัน พัฒนา วิชาการ<br/>
อย่าล้างผลาญ ฤาเข่นฆ่า บีฑาใคร<br/>
ไม่ถือโทษ โกรธแช่งซัด ฮึดฮัดด่า<br/>
หัดอภัย เหมือนกีฬา อัชฌาศัย<br/>
ปฎิบัติ ประพฤติกฏ กำหนดใจ<br/>
พูดจาให้ จ๊ะๆ จ๋า น่าฟังเอย
</h3>
</body>
</html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<head><title> Welcome to my Hompage </title></head>
<body>
<h2> Hello, This is my first Hompage </h2>
<h2> ทดสอบภาษาไทย </h2>
<h3> เป็นมนุษย์ สุดประเสริฐ เลิศคุณค่า <br/>
กว่าบรรดา ฝูงสัตว์ เดรัจฉาน<br/>
จงฝ่าฟัน พัฒนา วิชาการ<br/>
อย่าล้างผลาญ ฤาเข่นฆ่า บีฑาใคร<br/>
ไม่ถือโทษ โกรธแช่งซัด ฮึดฮัดด่า<br/>
หัดอภัย เหมือนกีฬา อัชฌาศัย<br/>
ปฎิบัติ ประพฤติกฏ กำหนดใจ<br/>
พูดจาให้ จ๊ะๆ จ๋า น่าฟังเอย
</h3>
</body>
</html>
ต้องระวังในการพิมพ์ URL ถ้าพิมพ์ http://www.localhost:8080/greeting/hello.html จะไม่ถูกต้อง ต้องไม่มี www นำหน้า localhost
ถ้าพิมพ์เป็น http://localhost:8080/greeting/ จะแสดงชื่อไฟล์ hello.html ให้เราคลิกอีกครั้ง ตามที่เรากำหนดค่าไว้ใน web.xml
สร้างเว็บเพจ JSP เพื่อทดลองใช้กับ Tomcat
- พิมพ์ข้อความต่อไปนี้ โดยใช้ text editor แล้ว save เก็บไว้ในโฟลเดอร์ greeting ให้ชื่อว่า hello.jsp
<html>
<%@ page contentType="text/html; charset=UTF-8" %>
<head> <title> my First JSP Homepage </title> </head>
<body>
<h1> Homepage created with JSP </h1>
<% out.println("Hello, World"); %>
<br/>
<% out.println("สวัสดี ชาวโลก"); %>
</body>
</html>
<%@ page contentType="text/html; charset=UTF-8" %>
<head> <title> my First JSP Homepage </title> </head>
<body>
<h1> Homepage created with JSP </h1>
<% out.println("Hello, World"); %>
<br/>
<% out.println("สวัสดี ชาวโลก"); %>
</body>
</html>
- เปิด browser พิมพ์ http://localhost:8080/greeting/hello.jsp จะได้เห็นเว็บเพจ ที่เราเขียนดังนี้
จะเห็นว่าในไฟล์ hello.jsp จะมี code ของภาษาจาวา แฝงอยู่ใน code ของ Html โดยจะอยู่ระหว่างเครื่องหมาย <% และ %> ข้อความที่อยู่ระหว่าง <% และ %> นี้เรียกว่า scriplet ตัวอย่างเช่น
<%@ page contentType="text/html; charset=UTF-8" %> เป็นการบอกว่าเอกสารนี้ encoding ภาษาเป็นรหัส UTF-8
<% out.println("Hello, World"); %>และ<% out.println("สวัสดี ชาวโลก"); %> เป็นการใช้เมธอด prinln ของ object “out” พิมพ์ข้อความ”Hello, World” และ “สวัสดี ชาวโลก” บนเว็บเพจ โดยเซิร์ฟเวอร์จะส่งข้อความนี้ผ่านไปยัง Browser เพื่อแสดงผลให้เราเห็นบนจอภาพ<
ข้อพึงระวัง
- Tomcat server นั้นมีคุณสมบัติเป็นcase sensitive หมายถึงอักษรตัวใหญ่และตัวเล็กจะมองเห็นแตกต่างกัน เช่น "http://localhost:8080/testServle" กับ "http://localhost:8080/TestServlet" จะมองเห็นแตกต่างกัน เพราะ test กับ Test ถึงแม้จะต่างกันเพียงเป็นตัวอักษรตัวใหญ่และตัวเล็ก server จะมองเห็นไม่เหมือนกัน
- การกดปุ่ม F5 เป็นการ refresh หน้าจอ บางครั้ง browser นำผลลัพธ์ที่ได้จาก cache มาแสดง ถ้าต้องการให้ browser ดาวน์โหลดข้อมูลจากเว็บไซต์ใหม่จริง ๆ ให้กดปุ่ม Ctrl + F5
- ถึงแม้เราจะแก้ไข reloadable=true ใน context.xml แล้วก็ตาม บางครั้งเราควร restart server และควรปิด browser แล้วเปิดใหม่ เพื่อล้าง cache ของบราวเซอร์ด้วย
0 comments:
Post a Comment