Transcript Slide 1

3.2 ASP
- ASP เป็นโปรแกรมทีม
่ าก ับ Internet Information
Server (IIS)
- abbreviated from Active Server Pages
- server-side script
- can be written by VBScript or JavaScript
- delimiters start with <% end by %>
- comment delimiter is ’
- case-insensitive
1
การระบุภาษาทีใ่ ชใ้ น ASP ด้วย <% %>
้ าษาใด
การกาหนดภาษา เพือ
่ ประกาศว่า asp จะใชภ
<%@LANGUAGE=ภาษา%>
่
เชน
<%@language=javascript%>
หรือ
<%@language=vbscript%>
2
้ ฐาน VBScript
พืน
การกาหนดต ัวแปร
รูปแบบ
ื่ ต ัวแปร, ชอ
ื่ ต ัวแปร,....
Dim ชอ
- ต ัวแปลภาษาจะเลือกชนิดของต ัวแปรทีเ่ หมาะสมเพือ
่
เก็บข้อมูล
ื่ ต ัวแปรต้องขึน
้ ต้นด้วยต ัวอ ักษร และไม่ใช่
-โดยชอ
Reserved word
3
การประกาศค่าคงที่
้ ะไม่สามารถเปลีย
ค่านีจ
่ นแปลงได้ตลอดทงสคริ
ั้
ปต์
ื่ ค่าคงที่ = ค่าทีต
Const ชอ
่ อ
้ งการกาหนดให้
้ าร์เรย์
การใชอ
สาหร ับการเก็บค่าชุดข้อมูล
ื่ อาร์เรย์(อินเด็กซ)์
Dim ชอ
่ Dim MyNum(2)
เชน
MyNum(0) = 4
MyNum(1) = 3
Dim MyNo(2,2)
MyNo(0,0) = 7
MyNo(0,1) = 4
4
Operators
- Assignment Operator
ใชเ้ ครือ
่ งหมาย =
- Arithmetic Operators
^
ยกกาล ัง
+ - * / บวก ลบ คูณ หาร
\
หารแบบ integer ปัดเศษทิง้
Mod
Modulo
5
- Comparison Operators
<> = < <= > >=
- Logical Operators
Not And Or Xor Eqv Imp
- String Operator
เครือ
่ งหมาย “&” ใชใ้ นการต่อข้อความเข้า
่
ด้วยก ัน เชน
A = “Hello”
B = “World”
C = A & “, ”& B
6
= <%=y%> <br>
7
Process Control
 Iteration
- For……Next
- Do……Loop
 Conditional
- IF……Then……Else
- Select Case
8
For …. Next
For counter = start to end [Step step]
instructions
Next
<% Dim N
For N=1 to 5
Response.write("Welcome to ASP <br>" )
Next
%>
9
ต ัวอย่าง
<HTML>
<BODY BGCOLOR="#BFFFFF">
<% Dim total, n
total = 0
For n = 1 To 10
total = total+1
Next %>
<H2> For...Next </H2><BR>
Value of total is &nbsp;<%=total%><BR>
Value of n is &nbsp;<%=n%><BR>
<HR>
10
<%
Dim total1, n1
total1 = 0
For n1 = 10 To 0 Step -2
total1 = total1+1
Next
%>
<H2> For...Next countdown </H2> <BR>
Value of total is &nbsp;<%=total1%>
<BR>
Value of n is &nbsp;<%=n1%>
</BODY>
</HTML>
11
ผลการทางาน
12
Do…Loop
มี 4 แบบ Do While, Do Until, Loop While และ
Loop Until ทงหมดจะวนลู
ั้
ปจนเงือ
่ นไขเป็น False
Do [{While | Until} condition]
……..
Loop
Do
……..
Loop [{While | Until} condition]
13
ต ัวอย่าง
<%
Dim total
total = 0
Do While total <10
total = total+1
Loop
%>
Value of total of Do While ... Loop is &nbsp;
<%=total%> <BR>
14
ต ัวอย่าง (ต่อ)
<%
total = 0
Do Until total >10
total = total+1
Loop
%>
Value of total of Do Until...Loop is &nbsp;
<%=total%> <BR> <HR>
15
ต ัวอย่าง (ต่อ)
<% total = 0
Do
total = total+1
Loop While total <10
%>
Value of total of Do .... Loop While is &nbsp;
<%=total%> <BR>
<% total = 0
Do
total = total+1
Loop Until total >10
%>
Value of total of Do .... Loop Until is &nbsp;
<%=total%>
16
If … Then… Else
If condition then
………
[Else If condition-n Then …. ]
[Else
………]
End If
17
ต ัวอย่าง
if name="Supap" then
response.write("สว ัสดีคร ับเจ้านาย")
else If name="Sumalee" then
response.write("สว ัสดีคร ับคุณนาย")
else If name="Sunisa" then
response.write("สว ัสดีคร ับคุณหนู")
else
response.write("สว ัสดีคร ับคุณเป็นใคร")
end if
18
Select Case
Select Case testexpression
[Case testexpressionlist
………]
[Case Else
……. ]
End Select
19
ต ัวอย่าง
Select Case Number
Case 1,2,3
response.write("Between 1 And 3")
Case 4,5,6,7,8
response.write("Between 4 And 8")
Case Number>8
response.write("Greater than 8")
Case else
response.write("Not positive number")
end Select
20
การสร้าง Procedure
Procedure มี 2 แบบคือ Subprocedure และ
Function
Subprocedure คือการรวมโค้ดคาสง่ ั ทีต
่ อ
้ งการใชง้ าน
้ ะเป็นการนาคาสง่ ั มาใส่
มาไว้ทเี่ ดียวก ัน เมือ
่ เรียกใชจ
่ ค่าเข้ามา
ไว้ในตาแหน่งทีเ่ รียกใช ้ โดยสามารถทีจ
่ ะสง
้ ายใน หรือไม่ก็ได้
ใชภ
21
ื่ subprocedure(ค่าทีส
Sub ชอ
่ ง่ )
……..
End Sub
่ ค่าใด ๆ ไม่ตอ
่ า่ ทีส
่
ถ้าไม่ตอ
้ งการสง
้ งใสค
่ ง
การเรียกใช ้
ื่ subprocedure(ค่าทีส
Call ชอ
่ ง่ )
22
<HTML> <Title>ASP Procedure</Title>
<BODY>
<% Sub SumVal(a)
Dim j, aSum
aSum = 0
For j=1 to a
aSum = aSum+1
Next %> Value of a Sum is &nbsp;<%=aSum%>
<% End Sub
Dim i
i = 10
Call SumVal(i) %>
</BODY>
</HTML>
23
่
Function ต่างจาก Subprocedure ตรงทีส
่ ามารถสง
ค่ากล ับไปย ังตาแหน่งทีม
่ ก
ี ารเรียกใชไ้ ด้
ั
ื่ ฟังก์ชน(ค่
Function ชอ
าทีส
่ ง่ )
……..
ั = ค่าทีต
ื่ ฟังก์ชน
ชอ
่ อ
้ งการสง่ กล ับ
End Function
่ กล ับต้องเขียนทีบ
Note ค่าทีต
่ อ
้ งการสง
่ รรท ัดสุดท้าย
การเรียกใช ้
ั
ื่ ฟังก์ชน(ค่
ต ัวแปร = ชอ
าทีส
่ ง่ )
24
่ ข้อมูลระหว่าง browser ก ับ server
วิธรี ับสง
Response
Web Server
Request
Client
25
่ ข้อมูลจากฟอร์ม
การสง
่ ข้อมูลผ่านฟอร์มจะมีสองวิธค
การสง
ี อ
ื GET และ POST
ั
่ ข้อมูลแบบ POST เป็นการสง
่ ข้อมูลทีต
1. การสง
่ อ
้ งอาศยฟอร์
ม จะมีความ
่ ข้อมูลร่วมไปก ับ URL ทาให้มองไม่เห็ น
ปลอดภ ัยมากกว่าเพราะไม่ได้สง
่ ไป และสามารถรองร ับปริมาณการสง
่ ข้อมูลได้มากกว่าด้วย
ข้อมูลทีส
่ ง
่ ข้อมูลด้วยวิธ ี GET คือการสง
่ ข้อมูลรวมเข้าไปก ับ URL ด้วย ซงึ่ จะทา
2. การสง
่
ให้ต ัวแปรและข้อมูลทีก
่ รอกในแบบฟอร์มแสดงต่อท้าย URL ทีต
่ อ
้ งการสง
่ ง Address
ข้อมูลไป โดยจะสามารถมองเห็นข้อมูลเหล่านนปรากฏในช
ั้
อ
ของเบราเซอร์
่
เชน
http://www.myweb.com/get.php?name=“matinee”&age=30
เว็บไซต์
ไฟล์
ข้ อมูลทีส่ ่ ง
26
่ ด้วย method=post
แบบที่ 1 : สง
ื่ form.asp" method=post>
<form action= "ชอ
ื่ object ทีจ
ร ับด้วย Request.Form("ชอ
่ ะร ับค่า")
Request.Form
Response.write
Web Server
Request.QueryString
Client
่ ด้วย method=get
แบบที่ 2 : สง
ื่ form.asp" method=get>
<form action= "ชอ
ื่ object ทีจ
ร ับด้วย Request.QueryString(" ชอ
่ ะร ับค่า")
27
Object Request เป็นการร ับข้อมูลจากบราว์เซอร์
เข้ามาใชใ้ นสคริปต์ แบ่งเป็น 2 ประเภท
่ จากฟอร์ม html ด้วย method=post
1. ข้อมูลทีส
่ ง
ื่ form.asp" method=post >
<form action= "ชอ
<input type=text name= "username">
</form>
้ าสง่ ั
การร ับค่า ใชค
ต ัวแปร = Request.Form("username")
28
(1) อ่านทงข้
ั้ อความ
Request.Form
(2) อ่านค่าข้อมูลใดข้อมูลหนึง่ ใน form
Request.Form(element)
(3) อ่านค่าข้อมูลใน form ทีแ
่ ต่ละข้อมูล
จ ัดเก็บค่าไว้ มากกว่า 1 ค่า
Request.Form(element)(index)
29
ต ัวอย่างที่ 1
สร้างไฟล์ Ex01.html เพือ
่ เขียนฟอร์มร ับข้อมูลจากผูใ้ ช ้
<HTML>
<BODY>
<form action= "Ex01.asp" method = post>
Name : <input type= "text " name= "tname" >
<br>
ID : <input type= "text " name= "id" ><br>
<input type=submit value= "Enter" >
</form>
</BODY>
</HTML>
30
สร้างไฟล์ Ex01.asp เพือ
่ ร ับข้อมูลจากฟอร์ม
<HTML>
<BODY>
<%
Response.write "Data in Form includes with: <br>"
Response.write "Name: " &Request.Form("tname")
& "<br>"
Response.write "ID: " &Request.Form("id")& "<br>"
%>
</BODY>
</HTML>
31
ต ัวอย่างที่ 2
<HTML> <BODY BGCOLOR="#FFFFF0">
Please Select one or more your favorite cities.
<form action="collform.asp" method = post>
<select size=3 name="city" MULTIPLE>
<OPTION>Madrid</OPTION>
<OPTION>New York</OPTION>
<OPTION>Sidney</OPTION>
<OPTION>London</OPTION>
</select>
<input type=submit>
</form>
</BODY> </HTML>
collform.html
32
1
<U>Form is
</U><%=Request.Form%><br>
<U>All value of Form are </U> 2
&nbsp;<%=Request.Form("city")%> <br>
Each value of Form is
<%
dim i
For i=1 To Request.Form("city").Count
%>
<%=Request.Form("city")(i)%>
3
<br> <%Next%>
collform.asp
33
ไฟล์ collform.html
ไฟล์ collform.asp
34
่ ผ่านฟอร์มด้วย method=get
2. ข้อมูลทีส
่ ง
่ ต่อท้ายมาก ับชอ
ื่ URL อยูใ่ นรูป
หรือข้อมูลทีส
่ ง
QueryString
ื่ form.asp" method=get >
<form action= "ชอ
<input type=text name= "username" >
</form>
้ าสง่ ั
การร ับค่า ใชค
ต ัวแปร = Request.QueryString("username")
35
ต ัวอย่าง ไฟล์ queryst.html
<HTML>
<BODY BGCOLOR="#FFFFF">
Please fill information to this page<hr>
<form action="queryst.asp" method="get">
Your name :&nbsp;&nbsp;
<input type=text name="user">
<input type = submit value = "OK">
<input type = reset value= "cancel">
</form>
</BODY>
</HTML>
36
ไฟล์ queryst.asp
<html>
<body>
Welcome <hr>
Thank you
<%=Request.QueryString("user")%>
that contact us.<br>
See you.<hr>
</body>
</html>
37
่
QueryString หมายถึง ข้อมูลทีโ่ ปรแกรมบราวเซอร์ สง
ต่อท้าย URL ของ page ทีต
่ อ
้ งการเรียกใช ้ ไปย ัง
ื่ ของข้อมูลและค่าข้อมูล
Web Server ซงึ่ จะประกอบด้วยชอ
queryst.html
Thank you <%=Request.QueryString("user")%>
38
ไฟล์ qstring.html
<HTML>
<BODY BGCOLOR="#FFFFF">
Please fill information to this page<hr>
<form action="qstring.asp" method="get">
Your name :&nbsp;&nbsp;<input type=text
name="user"><br>
Surname : &nbsp;&nbsp;<input type=text
name="sname">
<input type = submit value = "OK">
<input type = reset value= "Cancel">
</form>
</BODY>
</HTML>
39
ไฟล์ qstring.asp
Welcome <br>
Thank you
<%=Request.QueryString("user")%>&nbsp&nbsp
<%=Request.QueryString("sname")%>
that contact us.<br>
See you.<hr>
่ มีมากกว่า 1 ต ัวจะคน
กรณีทข
ี่ อ
้ มูลทีส
่ ง
่ ั ด้วยเครือ
่ งหมาย &
40
การสร้างข้อมูลให้อยูใ่ นรูป QueryString ทาได้ 3 วิธค
ี อ
ื
่ ง Address ของโปรแกรมบราวเซอร์
1) ประกาศในชอ
2) กาหนดผ่าน HTML Form โดยใช ้ tag
<FORM> …… </FORM> ทีม
่ ก
ี ารกาหนดค่า
property METHOD เป็น get
41
3)
กาหนดใน URL ใน property “HREF” ของ Tag
่
“<A>…..</A>” ใน HTML Page เชน
<A HREF=“qstring.asp?name=value”>
a querystring example </A>
จะปรากฏเป็นข้อความ Hyperlink ซงึ่ เมือ
่ คลิกทีข
่ อ
้ ความ
่
บน page ต ัว Request จะเรียกไฟล์ test.asp พร้อมสง
QueryString “name=value” ตามไปด้วย
42
การอ่านข้อมูลจาก QueryString
1) อ่านทงข้
ั้ อความ
Request.QueryString
2) อ่านค่าข้อมูลใดข้อมูลหนึง่ ใน QueryString
Request.QueryString(data-name)
3) อ่านค่าข้อมูลทีม
่ ม
ี ากกว่า 1 ค่า
Request.QueryString(data-name)(index)
ใช ้ Request.QueryString(data-name).Count เพือ
่
น ับหาจานวนข้อมูลทงหมด
ั้
43
Object “Request”
เป็นต ัวออบเจ็กต์ทท
ี่ าหน้าทีแ
่ ทน Request ที่
่ ไปย ัง Web Server
Client สง
้ ัดเก็บ
Collection ของออบเจ็กต์ request ทีใ่ ชจ
ข้อมูลใน element ต่าง ๆ ได้แก่
- Collection “QueryString”
- Collection “Form”
44
Object “Response”
เป็นต ัวออบเจ็กต์ทท
ี่ าหน้าทีแ
่ ทน Response ที่
่ โปรแกรมหรือข้อมูลไปแสดงผลย ัง
Web Server สง
Browser ของ Client
้ าหร ับการสง
่ ข้อมูลจาก
Method “Write” ใชส
Web Server ไปแสดงผลย ัง browser
รูปแบบคาสง่ ั
Response.Write result
45
การควบคุมการทางานของ browser ด้วย response
Method Redirect
Response.Redirect URL
URL หมายถึง URL ของ page ทีต
่ อ
้ งการให้ browser
้ มาแสดงผล ในกรณีท ี่ page ทีต
้ มา
อ่านขึน
่ อ
้ งการอ่านขึน
่ คาสง่ ั ไป
แสดงผล เก็บอยูใ่ น path เดียวก ับ page ทีส
่ ง
ื่ page ก็ได้
สามารถกาหนดเฉพาะชอ
การใช ้ method นี้ จะไม่สามารถกระทาหล ัง tag อืน
่ ๆ ที่
อยูห
่ ล ังtag “<body>” ได้เนือ
่ งจากจะทาให้เกิด HTTP
Header ซา้ ก ับ page ก่อนหน้าได้
46
<! method Redirect for response >
<HTML> <BODY BGCOLOR="#FFFF0F">
<H2> Choose which page do you wish to display </H2>
<FORM ACTION="respons2.asp" METHOD=POST>
<INPUT TYPE=RADIO NAME="PageChoice"
VALUE="Page1.html" CHECKED>
Page Number 1 <br>
<INPUT TYPE=RADIO NAME="PageChoice"
VALUE="Page2.html">
Page Number 2 <br>
<INPUT TYPE=SUBMIT VALUE="Choose Page">
&nbsp;&nbsp;<INPUT TYPE=RESET>
</FORM>
</BODY>
</HTML>
ไฟล์ respons2.html
47
ไฟล์ respons2.asp
<% Dim strChoice
strChoice=Request.Form("PageChoice")
Response.Redirect strChoice
%>
page1.html
<HTML>
<BODY>
<H1>This is PAGE 1</H1>
</BODY>
</HTML>
page2.html
<HTML>
<BODY>
<H1>This is PAGE 2</H1>
</BODY>
</HTML>
48
3.3 JSP
- ย่อมาจาก JavaServer Pages
- เป็ นเทคโนโลยีของจาวาสาหรับสร ้าง HTML, XML
หรือตามทีผ
่ ู ้ใชร้ ้องขอ
- มีตวั แปลภาษาคือ Tomcat Apache และ Java Compiler
- พัฒนาโดย James Duncan Davidson ค.ศ.2000
- ตัวแปลภาษาจะสร ้าง Servlet และเปลีย
่ นเป็ น Byte Code
้ ง้ ต่อไป จาก JSP Source Code
สาหรับถูกเรียกใชครั
http://jakarta.apache.org
49
Tag for JSP
แบ่งเป็น 3 ประเภทคือ scriptlet, expression และ
declaration
้ าหร ับเขียนคาสง่ ั ภาษา Java ทว่ ั ไป โดย
scriptlet ใชส
ั
้ อ
่
สญล
ักษณ์ทใี่ ชค
ื <% …… %> เชน
<html>
<body>
<%
out.println(“Now is <br>”);
out.println(new java.util.Date());
%>
</body>
</html>
50
Tag for JSP
้ าหร ับแสดงค่าของต ัวแปรหรือเมธอด
expression ใชส
ในรูปแบบย่อ ซงึ่ มีรป
ู แบบการเขียนด ังนี้
<%= expression %>
่
เชน
<html>
<body>
<%=“Now is <br>”%>
<%=new java.util.Date()%>
</body>
</html>
51
Tag for JSP
้ าหร ับประกาศต ัวแปรหรือเมธอด
declaration ใชส
ซงึ่ มีรป
ู แบบการเขียนด ังนี้
<%! declaration %>
่
เชน
<%! public java.util.Date showdate() {
return (new java.util.Date()); } %>
<html>
<body>
Now is <br>
<%=showdate()%>
</body>
</html>
52
Comment in JSP
มี 3 แบบ คือ
- ใช ้ <% - comment
-%>
เขียนในไฟล์ jsp แต่หา้ มอยูใ่ น Tag scriptlet,
expression และ declaration
- เขียนแบบ JAVA คือใช ้ // หรือ /* */ โดยสามารถ
แทรกอยูใ่ น Tag scriptlet, expression และ
declaration
- ใช ้ Tag แบบ HTML คือ <!---> และห้ามอยูใ่ น
Tag scriptlet, expression และ declaration
53
3.4 Perl and CGI
Perl
- ย่อมาจาก Practical Extraction and Report Language
- นามสกุล file .pl
- พ ัฒนาโดย Larry Wall in 1987
้ ับระบบ UNIX ในครงแรก
- ใชก
ั้
และต่อมาได้พ ัฒนา
้ ับ OS อืน
ให้สามารถใชก
่ ๆ ได้
- คล้ายคลึงก ับภาษา C เพราะบางคาสง่ ั มีหน้าทีเ่ หมือนภาษา C
54
Perl
Perl ถูกนามาใชใ้ นการจ ัดการข้อมูลในระบบเครือข่าย Internet
และสร้าง Application ประเภทต่าง ๆ เนือ
่ งจาก
ั อ
้ น
1. ง่ายต่อการเรียนรู ้ รูปแบบและโครงสร้างการเขียนไม่ซบซ
ิ ธิภาพสูงในการจ ัดการข้อมูล
2. มีความยืดหยุน
่ และมีประสท
ประเภทข้อความ และการจ ัดการไฟล์
3. เป็นภาษาสคริปส ์ เขียนอยูใ่ นรูป text file ไม่ตอ
้ งการ
้ ัวแปล
compiler และ linker ในการแปลโปรแกรม แต่จะใชต
ภาษาทีเ่ รียกว่า Perl Interpreter
ภาษา Perl เป็นภาษาทีน
่ ย
ิ มใชใ้ นการเขียน CGI ทงบน
ั้
Unix
และ Window
http://www.perl.com
55
CGI
- ย่อมาจาก Common Gateway Interface (CGI)
- CGI เป็นโปรแกรมชนิดหนึง่ ทีท
่ างานบน web server
้ างานได้เลย
อยูใ่ นโหมด execute คือ สามารถเรียกใชท
่ ไฟล์ .exe เป็นต้น
เชน
้ อยูก
- ไฟล์ CGI จะมีนามสกุลอะไรก็ได้ ขึน
่ ับระบบไฟล์และ
ภาษาทีใ่ ชเ้ ขียน
- ใน web server หนึง่ ๆ สามารถมี cgi ได้หลาย ๆ ต ัว
่ งทางหนึง่ ทีจ
- CGI เป็นอีกชอ
่ ะทาให้ clients ติดต่อก ับ
applications บน Web server
56
CGI
่ C/C++, Fortran,
-CGI สามารถสร้างได้โดยภาษาระด ับสูง เชน
Perl, Shell Script , VB, Pascal/Delphi เป็นต้น
้ าษาในการเขียน CGI ขึน
้ อยูก
- การเลือกใชภ
่ ับ OS และ
web server ว่าเข้าก ันได้ก ับภาษานนหรื
ั้
อไม่
57