import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(
name="TestRunnable",
urlPatterns={"/TestRunnable"},
loadOnStartup=1
)
public class TestRunnable extends HttpServlet implements Runnable {
}
13 December 2011
Background Process with Servlet
ที่ใส่ with servlet ไว้ด้วยในหัวเพื่อบอกว่าผมยังจะ extends HttpServlet เหมือนเดิมในคลาสผม แต่ว่าจะทำให้มันทำงานอยู่แม้จะไม่ได้มีรีเควสเข้าไปที่ Servlet ตัวนั้นก็ตาม โดยสิ่งที่ผมจะทำคือการ implement Runnable เข้ามา ตามข้างล่าง
09 December 2011
Abstract Class VS Interface
Abstract Class
abstract class เป็นคลาสที่มี abstract method อยู่ด้วย อย่างน้อยต้องมี 1 method
abstract class เป็นคลาสที่มี abstract method อยู่ด้วย อย่างน้อยต้องมี 1 method
abstract class Test{
public String a(){
return "hello";
}
public abstract String b();
}
06 December 2011
GenericServlet VS HttpServlet
javax.servlet.GenericServlet
Signature : public abstract class GenericServlet extends java.lang.Object implements Servlet, ServletConfig, java.io.Serializable
- GenericServlet จะประกอบไปด้วย protocal พื้นฐานใน Servlet
- GenericServlet จะมีต้นแบบ(พิมพ์เขียว) สำหรับการใช้งาน Servlet
- Lifecycle ของ GenericServlet จะอยู่กับ init และ destroy และ method ใน ServletContext interface
- GenericServlet สามารถทำงานผ่านการ Override service method
javax.servlet.http.HttpServlet
Signature : public abstract class HttpServlet extends GenericServlet implements java.io.Serializable
- HttpServlet จะประกอบด้วย protocal Http เท่านั้น
- HttpServlet จะมีต้นแบบ(พิมพ์เขียว) สำหรับการใช้งาน Http
- HttpServlet extend มาจาก GenericServlet
- HttpServlet สามารถใช้ session และ cookie ได้
- HttpServlet ทำงานผ่าน doGet() doPost() doXXX()
Signature : public abstract class GenericServlet extends java.lang.Object implements Servlet, ServletConfig, java.io.Serializable
- GenericServlet จะประกอบไปด้วย protocal พื้นฐานใน Servlet
- GenericServlet จะมีต้นแบบ(พิมพ์เขียว) สำหรับการใช้งาน Servlet
- Lifecycle ของ GenericServlet จะอยู่กับ init และ destroy และ method ใน ServletContext interface
- GenericServlet สามารถทำงานผ่านการ Override service method
javax.servlet.http.HttpServlet
Signature : public abstract class HttpServlet extends GenericServlet implements java.io.Serializable
- HttpServlet จะประกอบด้วย protocal Http เท่านั้น
- HttpServlet จะมีต้นแบบ(พิมพ์เขียว) สำหรับการใช้งาน Http
- HttpServlet extend มาจาก GenericServlet
- HttpServlet สามารถใช้ session และ cookie ได้
- HttpServlet ทำงานผ่าน doGet() doPost() doXXX()
01 December 2011
เรื่องของ Path
path คือการอ้างถึงตำแหน่งเส้นทางโดยในการเขียนโปรแกรมนั้น path คือการเรียกตำแหน่งต่างๆของโปรแกรม หรือ sub folder โดยจะมี
Relative path เป็นการเรียก path แบบมีความสัมพันธ์กัน เช่น
เรามีโปรแกรมอยู่ c:\myapp\app.exe แล้ว app.exe ทำการเรียก path ./data/data.txt นั้นก็หมายความว่าโปรแกรมเรียกไปที่ c:\myapp\data\data.txt
Absolute path คือการกำหนดชื่อ path แบบเต็มโดยจะบอกตั้งแต่ root เช่น
c:\myapp\data\data.txt
Relative path เป็นการเรียก path แบบมีความสัมพันธ์กัน เช่น
เรามีโปรแกรมอยู่ c:\myapp\app.exe แล้ว app.exe ทำการเรียก path ./data/data.txt นั้นก็หมายความว่าโปรแกรมเรียกไปที่ c:\myapp\data\data.txt
Absolute path คือการกำหนดชื่อ path แบบเต็มโดยจะบอกตั้งแต่ root เช่น
c:\myapp\data\data.txt
09 November 2011
Event Driven Programming
แต่ถ้าหากเป็นโปรแกรมขนาดใหญ่ที่มีความซับซ้อนแล้วการเขียนโปรแกรมแบบ Structure Programming นั้นคงเป็นเรื่องยาก ซึ่ง Event Driven Programming ก็คือแนวคิดที่มาจัดการด้านนี้โดยแนวคิดนี้จะสนใจแค่ว่าถ้าเกิดเหตุการณ์ขึ้นมาแต่ละอย่างจะจัดการกับมันอย่างไร โดยไม่สนใจว่ามีอะไรเกิดขึ้นกับโปรแกรมบ้าง ทำให้สามารถโฟกัสไปยังสิ่งที่ต้องการจัดการและจัดการมันได้อย่างง่าย....
โดยถ้าหากเราต้องการแก้ไขระบบเราก็ไม่ต้องไปสนใจส่วนที่ไม่เกี่ยวข้อง แต่ถ้าหากเป็น Structure Programming อาจจะต้องคิดใหม่หมด หรือถึงขั้นรื้อระบบใหม่กันเลยทีเดียว....
14 June 2011
Change Computer Name On Ubuntu Desktop
Step 1. run gksudo gedit /etc/hostname /etc/hosts
Step 2. Change your computer name in two files.
Step 3. Restart.
02 May 2011
HTML::Template 2
<tmpl_if> กำหนดเงื่อนไขใน template
if.pl
#!c:\perl\bin\perl.exe use HTML::Template; my $tmpl = HTML::Template->new(filename=>'tmpl/if.tmpl'); $tmpl->param(bool=>1); print "Content-type:text/html\n\n",$tmpl->output();
if.tmpl
<html> <head> <title>if</title> </head> <body> <tmpl_if name="bool"> is true <tmpl_else> is false </tmpl_if> </body> </html>
<tmpl_unless> ใช้งานเหมือนกับ <tmpl_if> แต่เป็นเงื่อนไขที่ตรงกันข้าม(opposit)
Subscribe to:
Posts (Atom)

