517322-Lab: 3.2 Java Servlet

19/01/2013 8:54 PM Study 654 views

 

Java Servlet

$ sudo apt-get install tomcat7
$ sudo apt-get install tomcat7-admin
$ ls /usr/share/tomcat7/lib/servlet-api.jar
# หลังจากติดตั้งเสร็จแล้วจะดูว่าติดตั้งสำเร็จหรือไม่โดยพิมพ์คำสั่งเพื่อเรียกดู Directory จะแสดงผลดังนี้ /usr/share/tomcat7/lib/servlet-api.jar

$ sudo mkdir Servlet
$ cd Servlet 

Example (1) Source code ดังรูป

สำหรับตัวอย่างนี้สามารถทำได้ 2 วิธีด้วยกัน ซึ่งทำต่างกันตรง
วิธีแรก จะสร้าง source code ภาษา Java และ compile เป็น .class ก่อนแล้วค่อยย้ายไปไว้ใน classes
วิธีสอง จะสร้าง Folder WEB-INF และ classes ก่อนคjอยสร้างไฟล์ Java

วิธีแรก
$ sudo nano HelloServlet.java
$ sudo javac -classpath /usr/share/tomcat7/lib/servlet.jar HelloServlet.java
# หลังจากสร้างไฟล์ .java มาแล้ว ก็ทำการ compile ก็จะได้ไฟล์ .class มา เพื่อเรียกใช้งานต่อไป ซึ่งวิธีการของ Servlet จะไม่เหมือน Applet เพราะตำแหน่งที่เก็บไฟล์ในการ compile อยู่คนละที่กันจะเห็นว่าคำสั่งของ Servlet จะยาวกว่า

$ sudo mkdir WEB-INF
$ sudo mkdir WEB-INF/classes
$ sudo mv HelloServlet.* WEB-INF/classes
#จากนั้นจะสร้าง Folder ชื่อ WEB-INF และ classes ชื่อ Folder จะต้องเป็นสองชื่อนี้เท่านั้นชื่ออื่นไม่ได้ และจะย้ายไฟล์ที่ชื่อ HelloServelet ทั้งหมดไปไว้ใน Folder classes

$ cd WEB-INF
$ sudo nano web.xml
# สร้างไฟล์ web.xml ในไฟล์นี้จะประกอบด้วย servlet-name, servlet-class และ url-pattern ในการเรียนผ่าน browser โดยพิมพ์ตามรูปด้านล่าง

$ cd /var/lib/tomcat7/webapps
$ ls
# จะแสดง Folder ROOT

$ sudo ln -s /var/www/Servlet
#ตามจริงแล้วการทำงานของ Servlet จะต้องสร้าง Folder ไว้ใน webapps แต่เราได้สร้างไว้ใน /var/www แล้ว เราจึงจะสร้าง Link ให้เชื่อมโยงหากันจากใน webapps ไปยัง www

$ ls
$ ls -la
# จะเห็นว่า Servlet –> /var/www/Servlet คือการเชื่อมโยงที่เราได้สร้างขึ้น

$ cd servlet
$ ls
$ cd
$ ls
$ sudo /etc/init.d/tomcat7 restart
# ทำการ restart server จากนั้นลองเข้าดูผ่าน browser

 ทดสอบโดยเข้า browser : http://localhost:8080/Servlet/su ผลลัพธ์ที่ได้ดังรูป

  • ลองทำเล่นๆ โดยไปเปลี่ยน <url-pattern> เป็น “/” เฉยๆ
    • ผลที่ได้คือไม่ว่าจะใส่อะไรหลัง “/” ก็จะแสดงผล
  • เปลี่ยน <url-pattern> เป็น “/su/*” เฉยๆ
    • ผลที่ได้คือไม่ว่าจะใส่อะไรหลัง “/” ก็จะแสดงผล
  • หรือลองเปลี่ยน “/xxx” เป็นชื่ออื่นๆก็ได้

 

วิธีสอง
$ sudo mkdir WEB-INF
$ sudo mkdir WEB-INF/classes
# จากนั้นจะสร้าง Folder ชื่อ WEB-INF และ classes ต้องสองชื่อนี้เท่านั้นชื่ออื่นไม่ได้

$ cd /WEB-INF/classes
$ sudo nano HelloServlet.java
$ sudo javac -classpath /usr/share/tomcat7/lib/servlet.jar HelloServlet.java
# หลังจากสร้างไฟล์ .java มาแล้ว ก็ทำการ compile ก็จะได้ไฟล์ .class มา เพื่อเรียกใช้งานต่อไป ซึ่งวิธีการของ Servlet จะไม่เหมือน Applet เพราะตำแหน่งที่เก็บไฟล์ในการ compile อยู่คนละที่กันจะเห็นว่าคำสั่งของ Servlet จะยาวกว่า

แล้วขึ้นไปทำต่อตรงคำสั่ง
$ cd WEB-INF
$ sudo nano web.xml ได้เลยครับ วิธีการเหมือนกัน

, , , , , , , , ,