Sunday, December 23, 2012

กำหนดค่าเริ่มต้นให้แก่ Tomcat (Server Configuration)

กำหนดค่าเริ่มต้นให้แก่ 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 ประมวลผลงานนั้นเสร็จสิ้น
ไฟล์ที่เราจะเข้าไป config หรือกำหนดค่า จะอยู่ภายใต้โฟลเดอร์ conf  มีอยู่ 3 ไฟล์ คือ  server.xml, web.xml และ context.xml

การกำหนดค่าให้ 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 เป็น true

Start Tocat Server

  1. เปิดใช้งานCMD shell (ใช้ปุ่มวินโดว์ + R  แล้วพิมพ์คำว่า cmd  และกด Enter)  พิมพ์คำสั่งต่อไปนี้
  2.  เปลี่ยนตำแหน่งโฟลเดอร์ให้มาอยู่ที่ root directory ของไดรว์ C โดจใช้คำสั่ง "cd\"
    "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

  3. เปิด browser จะเป็น  IE หรือ FireFox หรือ Chrome หรืออะไรอื่นก็ได้ พิมพ์ URL เป็น http://localhost:8080
                จะได้หน้าจอมีลักษณะดับรูป


คำว่า 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 \
      C:> cd WebProject\Tomcat7\bin
      C:>WebProject\Tomcat7\bin\shutdown
    • วิธีที่ 2 เปิดหน้าต่าง Tomcat  กดปุ่ม Control + ปุ่ม C   (หรือ กด Control + break) server จะปิดการทำงาน ทันที
ไม่ควรคลิกที่ปุ่มกากบาทที่อยู่มุมขวาบนของหน้าต่าง Tomcat  หรือใช้คำสั่ง “Close” ซึ่งเป็นการ kill process  ทำให้ Tomcat สิ้นสุดการทำงานกลางคัน

สร้างเว็บเพจ 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 มีดังนี้
  • <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>
  • เปิด browser พิมพ์  http://localhost:8080/greeting/hello.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>
  • เปิด 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

Twitter Delicious Facebook Digg Stumbleupon Favorites More