SlideShare a Scribd company logo
Lập trình mạng – Chương 5 1
LẬP TRÌNH WEB – CGI
5.1 Giới thiệu về lập trình web
5.2 HTMLs và FORMs
5.3 Lập trình web ở Client
5.4 DHTML
5.5 Phương pháp lập trình web với CGI
Lập trình mạng – Chương 5 2
5.1 Giới thiệu về lập trình web
• Hệ thống WWW tĩnh:
• Tập hợp các trang HTML
• Không tương tác được với user
• Khó khăn trong việc cập nhật thông tin thường xuyên.
• Ứng dụng web:
• Có thể tương tác với user.
• Có thể tương tác với các ứng dụng khác.
Lập trình mạng – Chương 5 3
5.1 Giới thiệu về lập trình web
• Các đặc điểm của ứng dụng web:
• Không phải là một ứng dụng độc lập, là ứng dụng chạy trên nền web-server.
• Người lập trình có thể thực hiện các thao tác trên ứng dụng web như với một
ứng dụng độc lập.
• Có thể lấy thông tin từ user.
Lập trình mạng – Chương 5 4
5.2 HTMLs và FORMs
• HTML(HyperText Markup Language):
• Là ngôn ngữ dùng để biểu diễn trang web thông qua các tags.
• Thông qua các tags có thể định dạng cách hiển thị trang web.
• Một trang HTML có thể chèn các hình ảnh, âm thanh trong nó, có thể liên kết
đến các trang HTML khác.
Lập trình mạng – Chương 5 5
5.2 HTMLs và FORMs
• Các tags HTML cơ bản:
• Khung của một file HTML:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Tiêu đề của trang web</title>
</head>
<body>
<!-- Nội dung trang web được trình bày ở đây-->
</body>
</html>
Lập trình mạng – Chương 5 6
5.2 HTMLs và FORMs
• Các tags HTML cơ bản:
• Tiêu đề:
• <Hn>…</Hn> (n: 1=>6)
• Phân đoạn:
• <p> … </p>
• Kiểu chữ:
• In đậm: <b>…</b>
• In nghiêng: <i> … </i>
• Gạch dưới: <u> … </u>
Lập trình mạng – Chương 5 7
5.2 HTMLs và FORMs
• Các tags HTML cơ bản:
• Danh sách:
• Đánh thứ tự: <ol> [<li>]+ </ol>
• Không đánh thứ tự: <ul> [<li>]+ </ul>
• Bảng:
<table border="1" width="100%">
[<tr> [<td> … </td>]+ </tr>]+
</table>
Trộn các ô: <td colspan=“số cột trộn">&nbsp;</td>
Lập trình mạng – Chương 5 8
5.2 HTMLs và FORMs
• Các tags HTML cơ bản:
• Chèn hình ảnh:
• <img border="#" src="*" width="*" height="*">
• Tạo điểm đánh dấu (bookmark): <a name="*">
• Liên kết đến bookmark:
• <a href="#bookmark-name"> … </a>
• Liên kết đến một trang web khác:
• <a href="path"> … </a>
• Liên kết đến địa chỉ e-mail:
• <a href="mailto:e-mail address"> … </a>
Lập trình mạng – Chương 5 9
5.2 HTMLs và FORMs
• Các tags HTML cơ bản:
• Giữ định dạng đoạn khi soạn thảo:
• <pre> … </pre>
• Các ký tự đặc biệt:
• Khoảng trắng: &nbsp;
• © : &copy;
• ® : &reg;
• < : &lt;
• > : &gt;
• & : &amp;
Lập trình mạng – Chương 5 10
5.2 HTMLs và FORMs
• Các tags HTML cơ bản:
• Số mũ:
• Superscript: <sup> … </sup>
• Subscript: <sub> … </sup>
• Định dạng font chữ:
• <font face=“” size=“” color=“”>…</font>
• Đường ngăn cách:
• <hr size=“” width=“”>
• Xuống dòng trong một đoạn:
• <br>
Lập trình mạng – Chương 5 11
5.2 HTMLs và FORMs
• Tạo các frame:
• Khái niệm frame trong HTML cho phép hiển thị nhiều trang
HTML đồng thời.
• Minh họa:
Lập trình mạng – Chương 5 12
5.2 HTMLs và FORMs
• Cú pháp tạo frame:
<frameset [name=“”] {cols|rows}=“[%, ]*{%}”>
[<frame src=“file HTML” [name=“”] [target=“”]>]+
[<noframes>
Your browser doesn't support them.
</noframes>]
</frameset>
Lập trình mạng – Chương 5 13
5.2 HTMLs và FORMs
• FORMs
• Là các thành phần của HTML cho phép user có thể nhập thông tin vào.
• Tương tự như giao diện của một ứng dụng bao gồm: textbox, listbox,
checkbox, …
• Dữ liệu được do user nhập được truyền giữa web-client và web-server thông
qua FORMs
• Dùng các tags để thiết kế.
Lập trình mạng – Chương 5 14
5.2 HTMLs và FORMs
• FORMs
• Cấu trúc cơ bản của một form:
<FORM ACTION=“file" METHOD={GET|POST}>
[<INPUT TYPE=“” NAME=“” VALUE="">]+
</FORM>
• Các loại (type) INPUT:
• TEXT: là textbox dùng để nhập dữ liệu.
• Cú pháp:
<INPUT [TYPE=TEXT] NAME="text-id" [SIZE=nn] [MAXLENGTH=nn] [VALUE="default text"]>
Lập trình mạng – Chương 5 15
5.2 HTMLs và FORMs
• FORMs(tt)
• Các loại (type) INPUT:
• SUBMIT: truyền dữ liệu form đến ứng dụng web
• Cú pháp: <INPUT TYPE=SUBMIT [NAME="button-id"]
[VALUE="text"]>
• RESET:đưa nội dung của form trở về giá trị ban đầu
• Cú pháp: <INPUT TYPE=RESET [VALUE=“text"]>
• BUTTON: nút nhấn bất kỳ
• Cú pháp: <INPUT TYPE=BUTTON [NAME="button-id"]
[VALUE="text"]>
Lập trình mạng – Chương 5 16
5.2 HTMLs và FORMs
• FORMs(tt)
• Các loại (type) INPUT:
• RATIO: chọn lựa một trong nhiều
• Cú pháp: <INPUT TYPE=RADIO NAME="radio-set-id" VALUE="choice-
id" [checked]>
<input type="radio" value="V1" checked name="R1">Option 1
<br><input type="radio" value="V2" name="R1">Option 2
<br><input type="radio" value="V2" name="R1">Option 3
Lập trình mạng – Chương 5 17
5.2 HTMLs và FORMs
• FORMs(tt)
• Các loại (type) INPUT:
• CHECKBOX: lựa chọn một hoặc nhiều
• Cú pháp: <INPUT TYPE=CHECKBOX NAME="id"
VALUE="choice-id" [CHECKED]>
• Ví dụ:
<input type="checkbox" name="C1“ value="ON">Check 1 <br>
<input type="checkbox" name="C1" value="ON" checked>Check 2
Lập trình mạng – Chương 5 18
5.2 HTMLs và FORMs
• FORMs(tt)
• Các loại (type) INPUT:
• HIDDEN: dữ liệu không hiển thị
• Cú pháp: <INPUT TYPE=HIDDEN NAME="id"
VALUE="data">
• Nhập vùng văn bản: TEXTAREA
• <TEXTAREA NAME="id" [COLS=nn] [ROWS=nn]>default text</TEXTAREA>
Lập trình mạng – Chương 5 19
5.2 HTMLs và FORMs
• FORMs(tt)
• Lựa chọn listbox: SELECT
• <SELECT NAME="id" [SIZE=nn] [MULTIPLE]>
[<OPTION [VALUE=“value"] [SELECTED]>text ]+
</SELECT>
<select size="1" name="D1">
<option value="501097">Mạng máy tính</option>
<option value="501016">Lập trình mạng</option>
</select>
Lập trình mạng – Chương 5 20
5.3 Lập trình web ở Client
• Các trang HTML web có thể được lập trình để thực hiện các thao tác
thực thi trên web client.
• Các phương pháp phổ biến để lập trình hiện nay:
• Script (Javascript, Vbscript)
• Java Applet
• ActiveX Control
Lập trình mạng – Chương 5 21
5.3 Lập trình web ở Client
• Javascript ở client:
• Ngôn ngữ kịch bản chạy trên web client. Có thể làm việc khác nhau trên các
loại web browser khác nhau.
• Code được chèn xen kẽ với các tags HTML
• Các đoạn mã Javasript được chạy dựa vào các sự kiện của các phần tử HTML
• Cú pháp các câu lệnh giống ngôn ngữ Java
• Không tương tác được với server
Lập trình mạng – Chương 5 22
5.3 Lập trình web ở Client
• Cú pháp cho một đoạn code Javascript:
<script language=“JavaScript”>
//các khai báo biến
[var variable;]*
//các lệnh gọi hàm và các hàm
function function-name([agrv]*){
//các câu lệnh khai báo và thực thi
[return [value];]
}
</script>
• Sử dụng file Javascript (*.js) đã có:
<script language="JavaScript" src="*.js"></script>
Lập trình mạng – Chương 5 23
5.3 Lập trình web ở Client
• Các đối tượng được xây dựng sẵn trong JavaScript:
• window: chứa các thuộc tính liên quan đến cửa sổ hiện thời
• document: chứa các thuộc tính trong trang web
• location: các thuộc tính về địa chỉ trang web
• history: các thuộc tính về vị trí mà web browser đã đến
Lập trình mạng – Chương 5 24
5.3 Lập trình web ở Client
• Mỗi phần tử trong trang HTML đều có thể coi là một đối tượng, có
thể khai báo sự kiện để gọi hàm Javascript.
• Cú pháp:
<tags-name [properties]*
[event-name=“procedure call” ]*>
• Các sự kiện có thể dùng:
• onClick: click chuột vào đối tượng.
• onFocus: focus vào đối tượng trong form.
Lập trình mạng – Chương 5 25
5.3 Lập trình web ở Client
• Javascript
• Các sự kiện có thể dùng(tt):
• onMouseOver: di chuyển chuột vào trên đối tượng.
• onMouseOut: di chuyển chuột ra khỏi đối tượng.
• onChange: thay đổi giá trị của các đối tượng chứa văn bản.
• onBlur: chuyển focus khỏi đối tượng trong form.
• onSelect: chọn phần tử trong listbox.
• onLoad: xảy ra khi một document được load.
Lập trình mạng – Chương 5 26
5.3 Lập trình web ở Client
• Javascript
• Có thể dùng để thiết lập/kiểm tra các dữ liệu nhập trên form
ở phía web client.
• Truy xuất các phần tử trong form thông qua Javascript
Các cú pháp bên dưới dùng
form = window.document.form-name
• checkbox
form.check-name.checked = {true|false}
Trường hợp dùng nhiều checkbox cùng tên(nhóm)
var check_len = form.check-name.length;
for (i = 0; i < len; i++){
form.check-name[i].checked={true|false};
}
Lập trình mạng – Chương 5 27
5.3 Lập trình web ở Client
• Javascript
• Option button
form.option_name[index].checked = {true|false}
• Select
form.select_name.options[index].selected = {true|false}
Chỉ số hiện thời đang được chọn:
form.select_name.selectedIndex
• Text
form.text_name.value
Lập trình mạng – Chương 5 28
5.3 Lập trình web ở Client
• Kiểm tra phần tử SELECT
var select_value;
function dropDownMenu() {
var myindex=document.forms[0].menu.selectedIndex;
if (myindex==0) {
alert("nYou must make a selection from the drop-down menu.");
document.forms[0].menu.focus();
}
else {
select_value =document.forms[0].menu.options[myindex].value;
return true;
}
}
Lập trình mạng – Chương 5 29
5.3 Lập trình web ở Client
function isEmail() {
if (document.forms[0].elements[1].value == '') {
alert ("n The E-Mail field is blank. nn “+
“Please enter your E-Mail address.")
document.forms[0].elements[1].focus();
return false;
}
if (document.forms[0].elements[1].value.indexOf ('@',0) == -1 ||
document.forms[0].elements[1].value.indexOf ('.',0) == -1) {
alert ("n The E-Mail field requires a "@" and a ".""+
"be used. nnPlease re-enter your E-Mail address.")
document.forms[0].elements[1].select();
document.forms[0].elements[1].focus();
return false;
}
return true;
}
Lập trình mạng – Chương 5 30
5.3 Lập trình web ở Client
• Java Applet:
• Là một ứng dụng được viết bằng Java, nhúng trong trang HTML.
• Khi trang HTML có chứa tag applet được gọi, class applet được tải về máy
client và thực thi trên máy client.
• Một ứng dụng applet phải thừa kế class java.applet.Applet
• Có thể thực hiện các thao tác như một chương trình Java, tuy nhiên bị hạn
chế một số chức năng vì tính bảo mật cho máy client.
Lập trình mạng – Chương 5 31
5.3 Lập trình web ở Client
//file SampleApplet.java
import java.applet.*; import java.awt.*;
public class SampleApplet extends Applet {
String text = "error"; int x = 0; int y = 20;
public void init() {
text = getParameter("text");
try { x = Integer.parseInt(getParameter("x"));
y = Integer.parseInt(getParameter("y")); }catch(NumberFormatException ex){ }
}
public void paint(Graphics g) {
g.setFont(new Font("TimesRoman",Font.BOLD+
Font.ITALIC,36));
g.drawString(text,x,y);
}
}
Lập trình mạng – Chương 5 32
5.3 Lập trình web ở Client
sample.html
<HTML> <HEAD> <TITLE>Using the Applet Tag
</TITLE> </HEAD>
<BODY>
<H1>An Applet that Displays Text at a Designated Location</H1>
<APPLET CODE="SampleApplet.class" HEIGHT=300 WIDTH=300>
<PARAM NAME="text" VALUE="Applets are fun!">
<PARAM NAME="x" VALUE="50">
<PARAM NAME="y" VALUE="50">
Text displayed by browsers that are not Java-enabled.
</APPLET>
</BODY>
</HTML>
Lập trình mạng – Chương 5 33
5.3 Lập trình web ở Client
• Hoạt động của một Applet
• Được web browser tải mã(byte code) về máy client.
• Method init() sẽ được gọi để khởi động các thông số.
• Method start() được gọi để thực thi.
• Method stop() được gọi khi người dùng thoát khỏi applet
• Method destroy() được thực thi khi applet kết thúc.
• ActiveX Control: tương tự như Java Applet, được viết bởi các công
nghệ của Mircosoft.
Lập trình mạng – Chương 5 34
5.4 DHTML
• DHTML (Dynamic HTML) là trang HTML có chứa các đoạn mã
JavaScript tạo các hiệu ứng, thay đổi các phần tử trong trang HTML.
• DHTML kết hợp giữa HTML, Javascript và Cascading Style Sheets(CSS).
• CSS là sự kết hợp giữa các tags HTML và style. Style có thể chứa nhiều
thuộc tính.
Lập trình mạng – Chương 5 35
5.4 DHTML
• Mọi tags HTML đều có style. Javascript có thể dựa trên các biến cố để
thay đổi các thuộc tính của style.
• Mỗi phần tử trong trang HTML đều có thể được gán ID (khác với
name) và có các thuộc tính style.
• Có thể dùng tag <div id=“”>…</div>
• Mỗi web browser có thể thực thi một số lệnh khác nhau.
Lập trình mạng – Chương 5 36
5.4 DHTML
• Phát hiện loại web browser:
• Dùng các thuộc tính appName và appVersion của đối tượng navigator
var browser_name= navigator.appName;
var browser_version = navigator.appName;
alert(“You use browser “+browser_name+” version “+ browser_version);
• Phân biệt hai loại chính:
if(document.all){ //IE
the_div=eval(“window.document.all.”+div_name+”.style”);
}else if(document.layers){//Netscape
the_div=eval(“window.document.all.”+div_name);
}
Lập trình mạng – Chương 5 37
5.4 DHTML
<HTML>
<HEAD>
<TITLE>Javascipt example about timer</TITLE>
<SCRIPT language="JavaScript">
<!--
var second_counter=0, counter=0;
function my_timer(){
D = new Date();
seconds= D.getSeconds();
if(seconds!=second_counter) counter++;
second_counter=seconds;
if(counter>=1000) counter=0;
document.images[0].src= get_images(counter/100);
document.images[1].src= get_images((counter%100)/10);
document.images[2].src= get_images(counter%10);
SecondText.innerText=counter;
setTimeout('my_timer()',1000);
}
Lập trình mạng – Chương 5 38
5.4 DHTML
function get_images(number){
var newNum= Math.floor(number);
return "../images/"+newNum+".jpg";
}
-->
</SCRIPT>
</HEAD>
<BODY onload='my_timer()'>
<P><FONT face=System>Timer :
<IMG alt="" src="../images/0.jpg" width="13" height="23">
<IMG alt="" src="../images/0.jpg" width="13" height="23">
<IMG alt="" src="../images/0.jpg" width="13" height="23">
<FONT face="Arial Black" ID="SecondText">000</FONT> seconds</FONT></P>
</BODY>
</HTML>
Lập trình mạng – Chương 5 39
5.5 Lập trình web với CGI
• Trang HTML chỉ chứa các nội dung cố định hoặc có thể thao tác thay
đổi qua DHTML ở client
• Nhu cầu sử dụng các trang web như một ứng dụng (giao tiếp với user,
tìm kiếm, nội dung thay đổi, tương tác các ứng dụng, với
database…)=> ứng dụng web
• CGI (Common Gateway Interface) là một chuẩn (standard) để viết ứng
dụng web
Lập trình mạng – Chương 5 40
5.5 Lập trình web với CGI
• Một ứng dụng web theo chuẩn CGI có các đặc điểm:
• Là ứng dụng chạy trên nền web server.
• Nhận thông tin từ web browser và xuất thông tin để web browser hiển thị
thông qua web server.
• Ứng dụng có thể được viết với bất cứ ngôn ngữ lập trình có standard input và
standard output. (C/C++, Perl, Shell script, Dos shell…)
Lập trình mạng – Chương 5 41
5.5 Lập trình web với CGI
• Cách thức hoạt động của ứng dụng web CGI:
• Web server nhận request ứng dụng CGI từ browser.
• Web server gọi ứng dụng CGI, truyền các thông số bằng các biến môi
trường(thông qua standard input).
• Ứng dụng web CGI xử lý, giao tiếp với các ứng dụng khác (database, mail…),
xuất kết quả dạng HTML qua standard output đến web server.
• Web server nhận kết quả và trả về cho browser.
Lập trình mạng – Chương 5 42
5.5 Lập trình web với CGI
• Hình vẽ minh họa hoạt động CGI
Lập trình mạng – Chương 5 43
5.5 Lập trình web với CGI
• Ví dụ (Perl):
1 #!/usr/bin/perl
2 # A very common echo script on just about every server
3 $| = 1;
4 print "Content-type: text/plainnn";
5 print "CGI/1.0 test script reportnn";
6 if ($ENV{'REQUEST_METHOD'} eq "POST") {
7 $form = <STDIN>;
8 print "$form n";
9 } else {
10 print "argc is $#ARGV nargv is ";
11 while (@ARGV) {
12 $ARGV=shift;
13 print "$ARGV ";
14 }
15 }
Lập trình mạng – Chương 5 44
5.5 Lập trình web với CGI
• Ví dụ (Perl):
16 print "n";
17 #
18 print "SERVER_SOFTWARE = $ENV{'SERVER_SOFTWARE'}n";
19 print "SERVER_NAME = $ENV{'SERVER_NAME'}n";
20 print "GATEWAY_INTERFACE = $ENV{'GATEWAY_INTERFACE'}n";
21 print "SERVER_PROTOCOL = $ENV{'SERVER_PROTOCOL'}n";
22 print "SERVER_PORT = $ENV{'SERVER_PORT'}n";
23 print "SERVER_ROOT = $ENV{'SERVER_ROOT'}n";
24 print "REQUEST_METHOD = $ENV{'REQUEST_METHOD'}n";
25 print "HTTP_AccEPT = $ENV{'HTTP_AccEPT'}n";
26 print "PATH_INFO = $ENV{'PATH_INFO'}n";
27 print "PATH = $ENV{'PATH'}n";
28 print "PATH_TRANSLATED = $ENV{'PATH_TRANSLATED'}n";
29 print "SCRIPT_NAME = $ENV{'SCRIPT_NAME'}n";
Lập trình mạng – Chương 5 45
5.5 Lập trình web với CGI
• Ví dụ (Perl):
30 print "QUERY_STRING = $ENV{'QUERY_STRING'}n";
31 print "QUERY_STRING_UNESCAPED =
$ENV{'QUERY_STRING_UNESCAPED'}n";
32 print "REMOTE_HOST = $ENV{'REMOTE_HOST'}n";
33 print "REMOTE_IDENT = $ENV{'REMOTE_IDENT'}n";
34 print "REMOTE_ADDR = $ENV{'REMOTE_ADDR'}n";
35 print "REMOTE_USER = $ENV{'REMOTE_USER'}n";
36 print "AUTH_TYPE = $ENV{'AUTH_TYPE'}n";
37 print "CONTENT_TYPE = $ENV{'CONTENT_TYPE'}n";
38 print "CONTENT_LENGTH = $ENV{'CONTENT_LENGTH'}n";
39 print "DOCUMENT_ROOT = $ENV{'DOCUMENT_ROOT'}n";
40 print "DOCUMENT_URI = $ENV{'DOCUMENT_URI'}n";
41 print "DOCUMENT_NAME = $ENV{'DOCUMENT_NAME'}n";
42 print "DATE_LOCAL = $ENV{'DATE_LOCAL'}n";
43 print "DATE_GMT = $ENV{'DATE_GMT'}n";
44 print "LAST_MODIFIED = $ENV{'LAST_MODIFIED'}n";
Lập trình mạng – Chương 5 46

More Related Content

What's hot

Bài 6: Tạo hiệu ứng và validate Form - Giáo trình FPT
Bài 6: Tạo hiệu ứng và validate Form - Giáo trình FPTBài 6: Tạo hiệu ứng và validate Form - Giáo trình FPT
Bài 6: Tạo hiệu ứng và validate Form - Giáo trình FPT
MasterCode.vn
 
Web203 slide 5
Web203   slide 5Web203   slide 5
Web203 slide 5
tuanduongcntt
 
Laptrinh jdbc
Laptrinh jdbcLaptrinh jdbc
Laptrinh jdbc
clonestudy
 
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPTBài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
MasterCode.vn
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
MasterCode.vn
 
ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015
ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015
ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015
IT Expert Club
 
Lớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong javaLớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong java
ANHMATTROI
 
Giao Trinh Jquery
Giao Trinh JqueryGiao Trinh Jquery
Giao Trinh Jquery
Hải Finiks Huỳnh
 
BÀI 3 Làm việc với JAVASCRIPT và JQUERY - Giáo trình FPT
BÀI 3 Làm việc với JAVASCRIPT và JQUERY - Giáo trình FPTBÀI 3 Làm việc với JAVASCRIPT và JQUERY - Giáo trình FPT
BÀI 3 Làm việc với JAVASCRIPT và JQUERY - Giáo trình FPT
MasterCode.vn
 
Tài liệu tìm hiểu jQuery dành cho người mới bắt đầu
Tài liệu tìm hiểu jQuery dành cho người mới bắt đầuTài liệu tìm hiểu jQuery dành cho người mới bắt đầu
Tài liệu tìm hiểu jQuery dành cho người mới bắt đầu
Lel Đặng Văn
 
Các bước kết nối csdl my sql với java
Các bước kết nối csdl my sql với javaCác bước kết nối csdl my sql với java
Các bước kết nối csdl my sql với java
Brand Xanh
 
Bai 09 Basic jsp
Bai 09 Basic jspBai 09 Basic jsp
Bai 09 Basic jsp
Hà Huy Hoàng
 
Domain Driven Design và Event Driven Architecture
Domain Driven Design và Event Driven Architecture Domain Driven Design và Event Driven Architecture
Domain Driven Design và Event Driven Architecture
IT Expert Club
 
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ JavaHướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Huy Vũ
 
Giới thiệu và sử dụng aja xr40
Giới thiệu và sử dụng aja xr40Giới thiệu và sử dụng aja xr40
Giới thiệu và sử dụng aja xr40timtailieucntt
 
Ebook học Javascript cơ bản tới nâng cao
Ebook học Javascript cơ bản tới nâng caoEbook học Javascript cơ bản tới nâng cao
Ebook học Javascript cơ bản tới nâng cao
Trung Thanh Nguyen
 
Bài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng webBài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng web
MasterCode.vn
 
Tao mot ket noi toi co so du lieu dung c#
Tao mot ket noi toi co so du lieu dung c#Tao mot ket noi toi co so du lieu dung c#
Tao mot ket noi toi co so du lieu dung c#truong le hung
 

What's hot (20)

Bài 6: Tạo hiệu ứng và validate Form - Giáo trình FPT
Bài 6: Tạo hiệu ứng và validate Form - Giáo trình FPTBài 6: Tạo hiệu ứng và validate Form - Giáo trình FPT
Bài 6: Tạo hiệu ứng và validate Form - Giáo trình FPT
 
Web203 slide 5
Web203   slide 5Web203   slide 5
Web203 slide 5
 
Laptrinh jdbc
Laptrinh jdbcLaptrinh jdbc
Laptrinh jdbc
 
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPTBài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
 
Jquery
JqueryJquery
Jquery
 
ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015
ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015
ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015
 
Lớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong javaLớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong java
 
Giao Trinh Jquery
Giao Trinh JqueryGiao Trinh Jquery
Giao Trinh Jquery
 
BÀI 3 Làm việc với JAVASCRIPT và JQUERY - Giáo trình FPT
BÀI 3 Làm việc với JAVASCRIPT và JQUERY - Giáo trình FPTBÀI 3 Làm việc với JAVASCRIPT và JQUERY - Giáo trình FPT
BÀI 3 Làm việc với JAVASCRIPT và JQUERY - Giáo trình FPT
 
Ung dun web chuong 2
Ung dun web  chuong 2Ung dun web  chuong 2
Ung dun web chuong 2
 
Tài liệu tìm hiểu jQuery dành cho người mới bắt đầu
Tài liệu tìm hiểu jQuery dành cho người mới bắt đầuTài liệu tìm hiểu jQuery dành cho người mới bắt đầu
Tài liệu tìm hiểu jQuery dành cho người mới bắt đầu
 
Các bước kết nối csdl my sql với java
Các bước kết nối csdl my sql với javaCác bước kết nối csdl my sql với java
Các bước kết nối csdl my sql với java
 
Bai 09 Basic jsp
Bai 09 Basic jspBai 09 Basic jsp
Bai 09 Basic jsp
 
Domain Driven Design và Event Driven Architecture
Domain Driven Design và Event Driven Architecture Domain Driven Design và Event Driven Architecture
Domain Driven Design và Event Driven Architecture
 
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ JavaHướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
 
Giới thiệu và sử dụng aja xr40
Giới thiệu và sử dụng aja xr40Giới thiệu và sử dụng aja xr40
Giới thiệu và sử dụng aja xr40
 
Ebook học Javascript cơ bản tới nâng cao
Ebook học Javascript cơ bản tới nâng caoEbook học Javascript cơ bản tới nâng cao
Ebook học Javascript cơ bản tới nâng cao
 
Bài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng webBài 4 Bảo mật cho website - Xây dựng ứng dụng web
Bài 4 Bảo mật cho website - Xây dựng ứng dụng web
 
Tao mot ket noi toi co so du lieu dung c#
Tao mot ket noi toi co so du lieu dung c#Tao mot ket noi toi co so du lieu dung c#
Tao mot ket noi toi co so du lieu dung c#
 

Viewers also liked

Trang trí font chữ cho văn bản
Trang trí font chữ cho văn bảnTrang trí font chữ cho văn bản
Trang trí font chữ cho văn bản
Son Nguyen
 
OpenStack and Application Delivery: Joy and Pain of an Intricate Relationship
OpenStack and Application Delivery: Joy and Pain of an Intricate RelationshipOpenStack and Application Delivery: Joy and Pain of an Intricate Relationship
OpenStack and Application Delivery: Joy and Pain of an Intricate Relationship
PLUMgrid
 
BP Lesson
BP LessonBP Lesson
BP Lesson
Ericka Kirkland
 
Визначні памятки Виноградівщини
Визначні памятки ВиноградівщиниВизначні памятки Виноградівщини
Визначні памятки ВиноградівщиниМарина Хромей
 
Книга - мудрість століть
Книга - мудрість столітьКнига - мудрість століть
Книга - мудрість століть
Наукова бібліотека ЧНТУ
 
Introduction to Role Based Administration in WildFly 8
Introduction to Role Based Administration in WildFly 8Introduction to Role Based Administration in WildFly 8
Introduction to Role Based Administration in WildFly 8
Dimitris Andreadis
 
See Your OpenStack Network Like Never Before with Real-time Visibility and Mo...
See Your OpenStack Network Like Never Before with Real-time Visibility and Mo...See Your OpenStack Network Like Never Before with Real-time Visibility and Mo...
See Your OpenStack Network Like Never Before with Real-time Visibility and Mo...
PLUMgrid
 
Best practices for migrating websphere esb mediations to ibm integration bus 9
Best practices for migrating websphere esb mediations to ibm integration bus 9Best practices for migrating websphere esb mediations to ibm integration bus 9
Best practices for migrating websphere esb mediations to ibm integration bus 9
Royal Cyber Inc.
 
[Easy] Use Buffer to Schedule Social Media Posts
[Easy] Use Buffer to Schedule Social Media Posts[Easy] Use Buffer to Schedule Social Media Posts
[Easy] Use Buffer to Schedule Social Media Posts
Ana Uy
 
Кнуты и пряники. Мотивация сотрудников к ведению и наполнению виртуальных пре...
Кнуты и пряники. Мотивация сотрудников к ведению и наполнению виртуальных пре...Кнуты и пряники. Мотивация сотрудников к ведению и наполнению виртуальных пре...
Кнуты и пряники. Мотивация сотрудников к ведению и наполнению виртуальных пре...
Владимирская областная научная библиотека
 
Create, Send, & Track Invoices Quickly & Easily with Invoicely
Create, Send, & Track Invoices Quickly & Easily with InvoicelyCreate, Send, & Track Invoices Quickly & Easily with Invoicely
Create, Send, & Track Invoices Quickly & Easily with Invoicely
Abbie De Villar
 
Перепись библиотечных блогов 2016 Perepis blogov-bryuhova
Перепись библиотечных блогов 2016 Perepis blogov-bryuhovaПерепись библиотечных блогов 2016 Perepis blogov-bryuhova
Перепись библиотечных блогов 2016 Perepis blogov-bryuhova
Любовь Брюхова
 
Sistemas de Telecomunicações Aula 02 - Histórico
Sistemas de Telecomunicações Aula 02 - HistóricoSistemas de Telecomunicações Aula 02 - Histórico
Sistemas de Telecomunicações Aula 02 - Histórico
Leinylson Fontinele
 
How To Use Jing
How To Use JingHow To Use Jing
How To Use Jing
Nenita Vargas Caceres
 
How To Use Shareist
How To Use ShareistHow To Use Shareist
How To Use Shareist
Nenita Vargas Caceres
 
День працівника соц. сфери
День працівника соц. сфериДень працівника соц. сфери
День працівника соц. сфери
Наукова бібліотека ЧНТУ
 

Viewers also liked (17)

Trang trí font chữ cho văn bản
Trang trí font chữ cho văn bảnTrang trí font chữ cho văn bản
Trang trí font chữ cho văn bản
 
OpenStack and Application Delivery: Joy and Pain of an Intricate Relationship
OpenStack and Application Delivery: Joy and Pain of an Intricate RelationshipOpenStack and Application Delivery: Joy and Pain of an Intricate Relationship
OpenStack and Application Delivery: Joy and Pain of an Intricate Relationship
 
BP Lesson
BP LessonBP Lesson
BP Lesson
 
Визначні памятки Виноградівщини
Визначні памятки ВиноградівщиниВизначні памятки Виноградівщини
Визначні памятки Виноградівщини
 
Daniely,karolina,kauana
Daniely,karolina,kauanaDaniely,karolina,kauana
Daniely,karolina,kauana
 
Книга - мудрість століть
Книга - мудрість столітьКнига - мудрість століть
Книга - мудрість століть
 
Introduction to Role Based Administration in WildFly 8
Introduction to Role Based Administration in WildFly 8Introduction to Role Based Administration in WildFly 8
Introduction to Role Based Administration in WildFly 8
 
See Your OpenStack Network Like Never Before with Real-time Visibility and Mo...
See Your OpenStack Network Like Never Before with Real-time Visibility and Mo...See Your OpenStack Network Like Never Before with Real-time Visibility and Mo...
See Your OpenStack Network Like Never Before with Real-time Visibility and Mo...
 
Best practices for migrating websphere esb mediations to ibm integration bus 9
Best practices for migrating websphere esb mediations to ibm integration bus 9Best practices for migrating websphere esb mediations to ibm integration bus 9
Best practices for migrating websphere esb mediations to ibm integration bus 9
 
[Easy] Use Buffer to Schedule Social Media Posts
[Easy] Use Buffer to Schedule Social Media Posts[Easy] Use Buffer to Schedule Social Media Posts
[Easy] Use Buffer to Schedule Social Media Posts
 
Кнуты и пряники. Мотивация сотрудников к ведению и наполнению виртуальных пре...
Кнуты и пряники. Мотивация сотрудников к ведению и наполнению виртуальных пре...Кнуты и пряники. Мотивация сотрудников к ведению и наполнению виртуальных пре...
Кнуты и пряники. Мотивация сотрудников к ведению и наполнению виртуальных пре...
 
Create, Send, & Track Invoices Quickly & Easily with Invoicely
Create, Send, & Track Invoices Quickly & Easily with InvoicelyCreate, Send, & Track Invoices Quickly & Easily with Invoicely
Create, Send, & Track Invoices Quickly & Easily with Invoicely
 
Перепись библиотечных блогов 2016 Perepis blogov-bryuhova
Перепись библиотечных блогов 2016 Perepis blogov-bryuhovaПерепись библиотечных блогов 2016 Perepis blogov-bryuhova
Перепись библиотечных блогов 2016 Perepis blogov-bryuhova
 
Sistemas de Telecomunicações Aula 02 - Histórico
Sistemas de Telecomunicações Aula 02 - HistóricoSistemas de Telecomunicações Aula 02 - Histórico
Sistemas de Telecomunicações Aula 02 - Histórico
 
How To Use Jing
How To Use JingHow To Use Jing
How To Use Jing
 
How To Use Shareist
How To Use ShareistHow To Use Shareist
How To Use Shareist
 
День працівника соц. сфери
День працівника соц. сфериДень працівника соц. сфери
День працівника соц. сфери
 

Similar to Lập trình web – cgi

Web1012 slide 1
Web1012   slide 1Web1012   slide 1
Web1012 slide 1
Cà Rốt
 
Thiết kế giao diện với Liquid
Thiết kế giao diện với LiquidThiết kế giao diện với Liquid
Thiết kế giao diện với Liquid
Tien Nguyen
 
Bizweb theme workshop
Bizweb theme workshopBizweb theme workshop
Bizweb theme workshop
Quý Nguyễn Minh
 
ASP.NET basic
ASP.NET basicASP.NET basic
ASP.NET basic
meocon21
 
Bai tap java_script-html-2016
Bai tap java_script-html-2016Bai tap java_script-html-2016
Bai tap java_script-html-2016
viethoang89
 
Cài đặt và đo lường trong SEO
Cài đặt và đo lường trong SEOCài đặt và đo lường trong SEO
Cài đặt và đo lường trong SEO
Sec Perfume
 
Kiến thức cần thiết làm việc
Kiến thức cần thiết làm việcKiến thức cần thiết làm việc
Kiến thức cần thiết làm việcmanhvokiem
 
Huong dan su dung filter and dashboard trong Jira
Huong dan su dung filter and dashboard trong JiraHuong dan su dung filter and dashboard trong Jira
Huong dan su dung filter and dashboard trong Jira
Ngô Hoàn
 
Slide2 - Co ban HTML5
Slide2 - Co ban HTML5Slide2 - Co ban HTML5
Slide2 - Co ban HTML5
Đặng Til
 
Slide2
Slide2Slide2
Slide2
thefack
 
Slide6
Slide6Slide6
BÀI 6 Làm việc với thành phần FORM, SPRY trong DREAMWEAVER CS4 - Giáo trình FPT
BÀI 6 Làm việc với thành phần FORM, SPRY trong DREAMWEAVER CS4 - Giáo trình FPTBÀI 6 Làm việc với thành phần FORM, SPRY trong DREAMWEAVER CS4 - Giáo trình FPT
BÀI 6 Làm việc với thành phần FORM, SPRY trong DREAMWEAVER CS4 - Giáo trình FPT
MasterCode.vn
 
Lập trình web asp.net MVC
Lập trình web asp.net MVCLập trình web asp.net MVC
Lập trình web asp.net MVC
MasterCode.vn
 
Postgresql các vấn đề thực tế
Postgresql các vấn đề thực tếPostgresql các vấn đề thực tế
Postgresql các vấn đề thực tế
TechMaster Vietnam
 
Slide Web Service
Slide Web ServiceSlide Web Service
Slide Web Serviceask bills
 

Similar to Lập trình web – cgi (20)

Web1012 slide 1
Web1012   slide 1Web1012   slide 1
Web1012 slide 1
 
Web1012 slide 1
Web1012   slide 1Web1012   slide 1
Web1012 slide 1
 
Thiết kế giao diện với Liquid
Thiết kế giao diện với LiquidThiết kế giao diện với Liquid
Thiết kế giao diện với Liquid
 
Mvc Model
Mvc ModelMvc Model
Mvc Model
 
05 web course form
05 web course   form05 web course   form
05 web course form
 
Bizweb theme workshop
Bizweb theme workshopBizweb theme workshop
Bizweb theme workshop
 
ASP.NET basic
ASP.NET basicASP.NET basic
ASP.NET basic
 
Bai tap java_script-html-2016
Bai tap java_script-html-2016Bai tap java_script-html-2016
Bai tap java_script-html-2016
 
Cài đặt và đo lường trong SEO
Cài đặt và đo lường trong SEOCài đặt và đo lường trong SEO
Cài đặt và đo lường trong SEO
 
Kiến thức cần thiết làm việc
Kiến thức cần thiết làm việcKiến thức cần thiết làm việc
Kiến thức cần thiết làm việc
 
access
accessaccess
access
 
Huong dan su dung filter and dashboard trong Jira
Huong dan su dung filter and dashboard trong JiraHuong dan su dung filter and dashboard trong Jira
Huong dan su dung filter and dashboard trong Jira
 
Slide2 - Co ban HTML5
Slide2 - Co ban HTML5Slide2 - Co ban HTML5
Slide2 - Co ban HTML5
 
Slide2
Slide2Slide2
Slide2
 
Slide6
Slide6Slide6
Slide6
 
BÀI 6 Làm việc với thành phần FORM, SPRY trong DREAMWEAVER CS4 - Giáo trình FPT
BÀI 6 Làm việc với thành phần FORM, SPRY trong DREAMWEAVER CS4 - Giáo trình FPTBÀI 6 Làm việc với thành phần FORM, SPRY trong DREAMWEAVER CS4 - Giáo trình FPT
BÀI 6 Làm việc với thành phần FORM, SPRY trong DREAMWEAVER CS4 - Giáo trình FPT
 
Lập trình web asp.net MVC
Lập trình web asp.net MVCLập trình web asp.net MVC
Lập trình web asp.net MVC
 
Postgresql các vấn đề thực tế
Postgresql các vấn đề thực tếPostgresql các vấn đề thực tế
Postgresql các vấn đề thực tế
 
Slide Web Service
Slide Web ServiceSlide Web Service
Slide Web Service
 
Html
HtmlHtml
Html
 

More from Son Nguyen

Wsdl connector introduction
Wsdl connector introductionWsdl connector introduction
Wsdl connector introduction
Son Nguyen
 
Android intergrate with mule
Android intergrate with muleAndroid intergrate with mule
Android intergrate with mule
Son Nguyen
 
Mule flow overview
Mule flow overviewMule flow overview
Mule flow overview
Son Nguyen
 
Mule flow and filter
Mule flow and filterMule flow and filter
Mule flow and filter
Son Nguyen
 
Handle exceptions in mule
Handle exceptions in muleHandle exceptions in mule
Handle exceptions in mule
Son Nguyen
 
Spring security integrate with mule
Spring security integrate with muleSpring security integrate with mule
Spring security integrate with mule
Son Nguyen
 
Message processor in mule
Message processor in muleMessage processor in mule
Message processor in mule
Son Nguyen
 
Expression language in mule
Expression language in muleExpression language in mule
Expression language in mule
Son Nguyen
 
Mule with data weave
Mule with data weaveMule with data weave
Mule with data weave
Son Nguyen
 
Using spring scheduler mule
Using spring scheduler muleUsing spring scheduler mule
Using spring scheduler mule
Son Nguyen
 
Composite source in bound and out-bound
Composite source in bound and out-boundComposite source in bound and out-bound
Composite source in bound and out-bound
Son Nguyen
 
Batch job processing
Batch job processingBatch job processing
Batch job processing
Son Nguyen
 
Using message enricher
Using message enricherUsing message enricher
Using message enricher
Son Nguyen
 
Finance connectors with mule
Finance connectors with muleFinance connectors with mule
Finance connectors with mule
Son Nguyen
 
Google drive connection
Google drive connectionGoogle drive connection
Google drive connection
Son Nguyen
 
Using properties in mule
Using properties in muleUsing properties in mule
Using properties in mule
Son Nguyen
 
Mule integrate with microsoft
Mule integrate with microsoftMule integrate with microsoft
Mule integrate with microsoft
Son Nguyen
 
Jms queue
Jms queueJms queue
Jms queue
Son Nguyen
 
Anypoint connectors
Anypoint connectorsAnypoint connectors
Anypoint connectors
Son Nguyen
 
Mule esb basic introduction
Mule esb basic introductionMule esb basic introduction
Mule esb basic introduction
Son Nguyen
 

More from Son Nguyen (20)

Wsdl connector introduction
Wsdl connector introductionWsdl connector introduction
Wsdl connector introduction
 
Android intergrate with mule
Android intergrate with muleAndroid intergrate with mule
Android intergrate with mule
 
Mule flow overview
Mule flow overviewMule flow overview
Mule flow overview
 
Mule flow and filter
Mule flow and filterMule flow and filter
Mule flow and filter
 
Handle exceptions in mule
Handle exceptions in muleHandle exceptions in mule
Handle exceptions in mule
 
Spring security integrate with mule
Spring security integrate with muleSpring security integrate with mule
Spring security integrate with mule
 
Message processor in mule
Message processor in muleMessage processor in mule
Message processor in mule
 
Expression language in mule
Expression language in muleExpression language in mule
Expression language in mule
 
Mule with data weave
Mule with data weaveMule with data weave
Mule with data weave
 
Using spring scheduler mule
Using spring scheduler muleUsing spring scheduler mule
Using spring scheduler mule
 
Composite source in bound and out-bound
Composite source in bound and out-boundComposite source in bound and out-bound
Composite source in bound and out-bound
 
Batch job processing
Batch job processingBatch job processing
Batch job processing
 
Using message enricher
Using message enricherUsing message enricher
Using message enricher
 
Finance connectors with mule
Finance connectors with muleFinance connectors with mule
Finance connectors with mule
 
Google drive connection
Google drive connectionGoogle drive connection
Google drive connection
 
Using properties in mule
Using properties in muleUsing properties in mule
Using properties in mule
 
Mule integrate with microsoft
Mule integrate with microsoftMule integrate with microsoft
Mule integrate with microsoft
 
Jms queue
Jms queueJms queue
Jms queue
 
Anypoint connectors
Anypoint connectorsAnypoint connectors
Anypoint connectors
 
Mule esb basic introduction
Mule esb basic introductionMule esb basic introduction
Mule esb basic introduction
 

Lập trình web – cgi

  • 1. Lập trình mạng – Chương 5 1 LẬP TRÌNH WEB – CGI 5.1 Giới thiệu về lập trình web 5.2 HTMLs và FORMs 5.3 Lập trình web ở Client 5.4 DHTML 5.5 Phương pháp lập trình web với CGI
  • 2. Lập trình mạng – Chương 5 2 5.1 Giới thiệu về lập trình web • Hệ thống WWW tĩnh: • Tập hợp các trang HTML • Không tương tác được với user • Khó khăn trong việc cập nhật thông tin thường xuyên. • Ứng dụng web: • Có thể tương tác với user. • Có thể tương tác với các ứng dụng khác.
  • 3. Lập trình mạng – Chương 5 3 5.1 Giới thiệu về lập trình web • Các đặc điểm của ứng dụng web: • Không phải là một ứng dụng độc lập, là ứng dụng chạy trên nền web-server. • Người lập trình có thể thực hiện các thao tác trên ứng dụng web như với một ứng dụng độc lập. • Có thể lấy thông tin từ user.
  • 4. Lập trình mạng – Chương 5 4 5.2 HTMLs và FORMs • HTML(HyperText Markup Language): • Là ngôn ngữ dùng để biểu diễn trang web thông qua các tags. • Thông qua các tags có thể định dạng cách hiển thị trang web. • Một trang HTML có thể chèn các hình ảnh, âm thanh trong nó, có thể liên kết đến các trang HTML khác.
  • 5. Lập trình mạng – Chương 5 5 5.2 HTMLs và FORMs • Các tags HTML cơ bản: • Khung của một file HTML: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Tiêu đề của trang web</title> </head> <body> <!-- Nội dung trang web được trình bày ở đây--> </body> </html>
  • 6. Lập trình mạng – Chương 5 6 5.2 HTMLs và FORMs • Các tags HTML cơ bản: • Tiêu đề: • <Hn>…</Hn> (n: 1=>6) • Phân đoạn: • <p> … </p> • Kiểu chữ: • In đậm: <b>…</b> • In nghiêng: <i> … </i> • Gạch dưới: <u> … </u>
  • 7. Lập trình mạng – Chương 5 7 5.2 HTMLs và FORMs • Các tags HTML cơ bản: • Danh sách: • Đánh thứ tự: <ol> [<li>]+ </ol> • Không đánh thứ tự: <ul> [<li>]+ </ul> • Bảng: <table border="1" width="100%"> [<tr> [<td> … </td>]+ </tr>]+ </table> Trộn các ô: <td colspan=“số cột trộn">&nbsp;</td>
  • 8. Lập trình mạng – Chương 5 8 5.2 HTMLs và FORMs • Các tags HTML cơ bản: • Chèn hình ảnh: • <img border="#" src="*" width="*" height="*"> • Tạo điểm đánh dấu (bookmark): <a name="*"> • Liên kết đến bookmark: • <a href="#bookmark-name"> … </a> • Liên kết đến một trang web khác: • <a href="path"> … </a> • Liên kết đến địa chỉ e-mail: • <a href="mailto:e-mail address"> … </a>
  • 9. Lập trình mạng – Chương 5 9 5.2 HTMLs và FORMs • Các tags HTML cơ bản: • Giữ định dạng đoạn khi soạn thảo: • <pre> … </pre> • Các ký tự đặc biệt: • Khoảng trắng: &nbsp; • © : &copy; • ® : &reg; • < : &lt; • > : &gt; • & : &amp;
  • 10. Lập trình mạng – Chương 5 10 5.2 HTMLs và FORMs • Các tags HTML cơ bản: • Số mũ: • Superscript: <sup> … </sup> • Subscript: <sub> … </sup> • Định dạng font chữ: • <font face=“” size=“” color=“”>…</font> • Đường ngăn cách: • <hr size=“” width=“”> • Xuống dòng trong một đoạn: • <br>
  • 11. Lập trình mạng – Chương 5 11 5.2 HTMLs và FORMs • Tạo các frame: • Khái niệm frame trong HTML cho phép hiển thị nhiều trang HTML đồng thời. • Minh họa:
  • 12. Lập trình mạng – Chương 5 12 5.2 HTMLs và FORMs • Cú pháp tạo frame: <frameset [name=“”] {cols|rows}=“[%, ]*{%}”> [<frame src=“file HTML” [name=“”] [target=“”]>]+ [<noframes> Your browser doesn't support them. </noframes>] </frameset>
  • 13. Lập trình mạng – Chương 5 13 5.2 HTMLs và FORMs • FORMs • Là các thành phần của HTML cho phép user có thể nhập thông tin vào. • Tương tự như giao diện của một ứng dụng bao gồm: textbox, listbox, checkbox, … • Dữ liệu được do user nhập được truyền giữa web-client và web-server thông qua FORMs • Dùng các tags để thiết kế.
  • 14. Lập trình mạng – Chương 5 14 5.2 HTMLs và FORMs • FORMs • Cấu trúc cơ bản của một form: <FORM ACTION=“file" METHOD={GET|POST}> [<INPUT TYPE=“” NAME=“” VALUE="">]+ </FORM> • Các loại (type) INPUT: • TEXT: là textbox dùng để nhập dữ liệu. • Cú pháp: <INPUT [TYPE=TEXT] NAME="text-id" [SIZE=nn] [MAXLENGTH=nn] [VALUE="default text"]>
  • 15. Lập trình mạng – Chương 5 15 5.2 HTMLs và FORMs • FORMs(tt) • Các loại (type) INPUT: • SUBMIT: truyền dữ liệu form đến ứng dụng web • Cú pháp: <INPUT TYPE=SUBMIT [NAME="button-id"] [VALUE="text"]> • RESET:đưa nội dung của form trở về giá trị ban đầu • Cú pháp: <INPUT TYPE=RESET [VALUE=“text"]> • BUTTON: nút nhấn bất kỳ • Cú pháp: <INPUT TYPE=BUTTON [NAME="button-id"] [VALUE="text"]>
  • 16. Lập trình mạng – Chương 5 16 5.2 HTMLs và FORMs • FORMs(tt) • Các loại (type) INPUT: • RATIO: chọn lựa một trong nhiều • Cú pháp: <INPUT TYPE=RADIO NAME="radio-set-id" VALUE="choice- id" [checked]> <input type="radio" value="V1" checked name="R1">Option 1 <br><input type="radio" value="V2" name="R1">Option 2 <br><input type="radio" value="V2" name="R1">Option 3
  • 17. Lập trình mạng – Chương 5 17 5.2 HTMLs và FORMs • FORMs(tt) • Các loại (type) INPUT: • CHECKBOX: lựa chọn một hoặc nhiều • Cú pháp: <INPUT TYPE=CHECKBOX NAME="id" VALUE="choice-id" [CHECKED]> • Ví dụ: <input type="checkbox" name="C1“ value="ON">Check 1 <br> <input type="checkbox" name="C1" value="ON" checked>Check 2
  • 18. Lập trình mạng – Chương 5 18 5.2 HTMLs và FORMs • FORMs(tt) • Các loại (type) INPUT: • HIDDEN: dữ liệu không hiển thị • Cú pháp: <INPUT TYPE=HIDDEN NAME="id" VALUE="data"> • Nhập vùng văn bản: TEXTAREA • <TEXTAREA NAME="id" [COLS=nn] [ROWS=nn]>default text</TEXTAREA>
  • 19. Lập trình mạng – Chương 5 19 5.2 HTMLs và FORMs • FORMs(tt) • Lựa chọn listbox: SELECT • <SELECT NAME="id" [SIZE=nn] [MULTIPLE]> [<OPTION [VALUE=“value"] [SELECTED]>text ]+ </SELECT> <select size="1" name="D1"> <option value="501097">Mạng máy tính</option> <option value="501016">Lập trình mạng</option> </select>
  • 20. Lập trình mạng – Chương 5 20 5.3 Lập trình web ở Client • Các trang HTML web có thể được lập trình để thực hiện các thao tác thực thi trên web client. • Các phương pháp phổ biến để lập trình hiện nay: • Script (Javascript, Vbscript) • Java Applet • ActiveX Control
  • 21. Lập trình mạng – Chương 5 21 5.3 Lập trình web ở Client • Javascript ở client: • Ngôn ngữ kịch bản chạy trên web client. Có thể làm việc khác nhau trên các loại web browser khác nhau. • Code được chèn xen kẽ với các tags HTML • Các đoạn mã Javasript được chạy dựa vào các sự kiện của các phần tử HTML • Cú pháp các câu lệnh giống ngôn ngữ Java • Không tương tác được với server
  • 22. Lập trình mạng – Chương 5 22 5.3 Lập trình web ở Client • Cú pháp cho một đoạn code Javascript: <script language=“JavaScript”> //các khai báo biến [var variable;]* //các lệnh gọi hàm và các hàm function function-name([agrv]*){ //các câu lệnh khai báo và thực thi [return [value];] } </script> • Sử dụng file Javascript (*.js) đã có: <script language="JavaScript" src="*.js"></script>
  • 23. Lập trình mạng – Chương 5 23 5.3 Lập trình web ở Client • Các đối tượng được xây dựng sẵn trong JavaScript: • window: chứa các thuộc tính liên quan đến cửa sổ hiện thời • document: chứa các thuộc tính trong trang web • location: các thuộc tính về địa chỉ trang web • history: các thuộc tính về vị trí mà web browser đã đến
  • 24. Lập trình mạng – Chương 5 24 5.3 Lập trình web ở Client • Mỗi phần tử trong trang HTML đều có thể coi là một đối tượng, có thể khai báo sự kiện để gọi hàm Javascript. • Cú pháp: <tags-name [properties]* [event-name=“procedure call” ]*> • Các sự kiện có thể dùng: • onClick: click chuột vào đối tượng. • onFocus: focus vào đối tượng trong form.
  • 25. Lập trình mạng – Chương 5 25 5.3 Lập trình web ở Client • Javascript • Các sự kiện có thể dùng(tt): • onMouseOver: di chuyển chuột vào trên đối tượng. • onMouseOut: di chuyển chuột ra khỏi đối tượng. • onChange: thay đổi giá trị của các đối tượng chứa văn bản. • onBlur: chuyển focus khỏi đối tượng trong form. • onSelect: chọn phần tử trong listbox. • onLoad: xảy ra khi một document được load.
  • 26. Lập trình mạng – Chương 5 26 5.3 Lập trình web ở Client • Javascript • Có thể dùng để thiết lập/kiểm tra các dữ liệu nhập trên form ở phía web client. • Truy xuất các phần tử trong form thông qua Javascript Các cú pháp bên dưới dùng form = window.document.form-name • checkbox form.check-name.checked = {true|false} Trường hợp dùng nhiều checkbox cùng tên(nhóm) var check_len = form.check-name.length; for (i = 0; i < len; i++){ form.check-name[i].checked={true|false}; }
  • 27. Lập trình mạng – Chương 5 27 5.3 Lập trình web ở Client • Javascript • Option button form.option_name[index].checked = {true|false} • Select form.select_name.options[index].selected = {true|false} Chỉ số hiện thời đang được chọn: form.select_name.selectedIndex • Text form.text_name.value
  • 28. Lập trình mạng – Chương 5 28 5.3 Lập trình web ở Client • Kiểm tra phần tử SELECT var select_value; function dropDownMenu() { var myindex=document.forms[0].menu.selectedIndex; if (myindex==0) { alert("nYou must make a selection from the drop-down menu."); document.forms[0].menu.focus(); } else { select_value =document.forms[0].menu.options[myindex].value; return true; } }
  • 29. Lập trình mạng – Chương 5 29 5.3 Lập trình web ở Client function isEmail() { if (document.forms[0].elements[1].value == '') { alert ("n The E-Mail field is blank. nn “+ “Please enter your E-Mail address.") document.forms[0].elements[1].focus(); return false; } if (document.forms[0].elements[1].value.indexOf ('@',0) == -1 || document.forms[0].elements[1].value.indexOf ('.',0) == -1) { alert ("n The E-Mail field requires a "@" and a ".""+ "be used. nnPlease re-enter your E-Mail address.") document.forms[0].elements[1].select(); document.forms[0].elements[1].focus(); return false; } return true; }
  • 30. Lập trình mạng – Chương 5 30 5.3 Lập trình web ở Client • Java Applet: • Là một ứng dụng được viết bằng Java, nhúng trong trang HTML. • Khi trang HTML có chứa tag applet được gọi, class applet được tải về máy client và thực thi trên máy client. • Một ứng dụng applet phải thừa kế class java.applet.Applet • Có thể thực hiện các thao tác như một chương trình Java, tuy nhiên bị hạn chế một số chức năng vì tính bảo mật cho máy client.
  • 31. Lập trình mạng – Chương 5 31 5.3 Lập trình web ở Client //file SampleApplet.java import java.applet.*; import java.awt.*; public class SampleApplet extends Applet { String text = "error"; int x = 0; int y = 20; public void init() { text = getParameter("text"); try { x = Integer.parseInt(getParameter("x")); y = Integer.parseInt(getParameter("y")); }catch(NumberFormatException ex){ } } public void paint(Graphics g) { g.setFont(new Font("TimesRoman",Font.BOLD+ Font.ITALIC,36)); g.drawString(text,x,y); } }
  • 32. Lập trình mạng – Chương 5 32 5.3 Lập trình web ở Client sample.html <HTML> <HEAD> <TITLE>Using the Applet Tag </TITLE> </HEAD> <BODY> <H1>An Applet that Displays Text at a Designated Location</H1> <APPLET CODE="SampleApplet.class" HEIGHT=300 WIDTH=300> <PARAM NAME="text" VALUE="Applets are fun!"> <PARAM NAME="x" VALUE="50"> <PARAM NAME="y" VALUE="50"> Text displayed by browsers that are not Java-enabled. </APPLET> </BODY> </HTML>
  • 33. Lập trình mạng – Chương 5 33 5.3 Lập trình web ở Client • Hoạt động của một Applet • Được web browser tải mã(byte code) về máy client. • Method init() sẽ được gọi để khởi động các thông số. • Method start() được gọi để thực thi. • Method stop() được gọi khi người dùng thoát khỏi applet • Method destroy() được thực thi khi applet kết thúc. • ActiveX Control: tương tự như Java Applet, được viết bởi các công nghệ của Mircosoft.
  • 34. Lập trình mạng – Chương 5 34 5.4 DHTML • DHTML (Dynamic HTML) là trang HTML có chứa các đoạn mã JavaScript tạo các hiệu ứng, thay đổi các phần tử trong trang HTML. • DHTML kết hợp giữa HTML, Javascript và Cascading Style Sheets(CSS). • CSS là sự kết hợp giữa các tags HTML và style. Style có thể chứa nhiều thuộc tính.
  • 35. Lập trình mạng – Chương 5 35 5.4 DHTML • Mọi tags HTML đều có style. Javascript có thể dựa trên các biến cố để thay đổi các thuộc tính của style. • Mỗi phần tử trong trang HTML đều có thể được gán ID (khác với name) và có các thuộc tính style. • Có thể dùng tag <div id=“”>…</div> • Mỗi web browser có thể thực thi một số lệnh khác nhau.
  • 36. Lập trình mạng – Chương 5 36 5.4 DHTML • Phát hiện loại web browser: • Dùng các thuộc tính appName và appVersion của đối tượng navigator var browser_name= navigator.appName; var browser_version = navigator.appName; alert(“You use browser “+browser_name+” version “+ browser_version); • Phân biệt hai loại chính: if(document.all){ //IE the_div=eval(“window.document.all.”+div_name+”.style”); }else if(document.layers){//Netscape the_div=eval(“window.document.all.”+div_name); }
  • 37. Lập trình mạng – Chương 5 37 5.4 DHTML <HTML> <HEAD> <TITLE>Javascipt example about timer</TITLE> <SCRIPT language="JavaScript"> <!-- var second_counter=0, counter=0; function my_timer(){ D = new Date(); seconds= D.getSeconds(); if(seconds!=second_counter) counter++; second_counter=seconds; if(counter>=1000) counter=0; document.images[0].src= get_images(counter/100); document.images[1].src= get_images((counter%100)/10); document.images[2].src= get_images(counter%10); SecondText.innerText=counter; setTimeout('my_timer()',1000); }
  • 38. Lập trình mạng – Chương 5 38 5.4 DHTML function get_images(number){ var newNum= Math.floor(number); return "../images/"+newNum+".jpg"; } --> </SCRIPT> </HEAD> <BODY onload='my_timer()'> <P><FONT face=System>Timer : <IMG alt="" src="../images/0.jpg" width="13" height="23"> <IMG alt="" src="../images/0.jpg" width="13" height="23"> <IMG alt="" src="../images/0.jpg" width="13" height="23"> <FONT face="Arial Black" ID="SecondText">000</FONT> seconds</FONT></P> </BODY> </HTML>
  • 39. Lập trình mạng – Chương 5 39 5.5 Lập trình web với CGI • Trang HTML chỉ chứa các nội dung cố định hoặc có thể thao tác thay đổi qua DHTML ở client • Nhu cầu sử dụng các trang web như một ứng dụng (giao tiếp với user, tìm kiếm, nội dung thay đổi, tương tác các ứng dụng, với database…)=> ứng dụng web • CGI (Common Gateway Interface) là một chuẩn (standard) để viết ứng dụng web
  • 40. Lập trình mạng – Chương 5 40 5.5 Lập trình web với CGI • Một ứng dụng web theo chuẩn CGI có các đặc điểm: • Là ứng dụng chạy trên nền web server. • Nhận thông tin từ web browser và xuất thông tin để web browser hiển thị thông qua web server. • Ứng dụng có thể được viết với bất cứ ngôn ngữ lập trình có standard input và standard output. (C/C++, Perl, Shell script, Dos shell…)
  • 41. Lập trình mạng – Chương 5 41 5.5 Lập trình web với CGI • Cách thức hoạt động của ứng dụng web CGI: • Web server nhận request ứng dụng CGI từ browser. • Web server gọi ứng dụng CGI, truyền các thông số bằng các biến môi trường(thông qua standard input). • Ứng dụng web CGI xử lý, giao tiếp với các ứng dụng khác (database, mail…), xuất kết quả dạng HTML qua standard output đến web server. • Web server nhận kết quả và trả về cho browser.
  • 42. Lập trình mạng – Chương 5 42 5.5 Lập trình web với CGI • Hình vẽ minh họa hoạt động CGI
  • 43. Lập trình mạng – Chương 5 43 5.5 Lập trình web với CGI • Ví dụ (Perl): 1 #!/usr/bin/perl 2 # A very common echo script on just about every server 3 $| = 1; 4 print "Content-type: text/plainnn"; 5 print "CGI/1.0 test script reportnn"; 6 if ($ENV{'REQUEST_METHOD'} eq "POST") { 7 $form = <STDIN>; 8 print "$form n"; 9 } else { 10 print "argc is $#ARGV nargv is "; 11 while (@ARGV) { 12 $ARGV=shift; 13 print "$ARGV "; 14 } 15 }
  • 44. Lập trình mạng – Chương 5 44 5.5 Lập trình web với CGI • Ví dụ (Perl): 16 print "n"; 17 # 18 print "SERVER_SOFTWARE = $ENV{'SERVER_SOFTWARE'}n"; 19 print "SERVER_NAME = $ENV{'SERVER_NAME'}n"; 20 print "GATEWAY_INTERFACE = $ENV{'GATEWAY_INTERFACE'}n"; 21 print "SERVER_PROTOCOL = $ENV{'SERVER_PROTOCOL'}n"; 22 print "SERVER_PORT = $ENV{'SERVER_PORT'}n"; 23 print "SERVER_ROOT = $ENV{'SERVER_ROOT'}n"; 24 print "REQUEST_METHOD = $ENV{'REQUEST_METHOD'}n"; 25 print "HTTP_AccEPT = $ENV{'HTTP_AccEPT'}n"; 26 print "PATH_INFO = $ENV{'PATH_INFO'}n"; 27 print "PATH = $ENV{'PATH'}n"; 28 print "PATH_TRANSLATED = $ENV{'PATH_TRANSLATED'}n"; 29 print "SCRIPT_NAME = $ENV{'SCRIPT_NAME'}n";
  • 45. Lập trình mạng – Chương 5 45 5.5 Lập trình web với CGI • Ví dụ (Perl): 30 print "QUERY_STRING = $ENV{'QUERY_STRING'}n"; 31 print "QUERY_STRING_UNESCAPED = $ENV{'QUERY_STRING_UNESCAPED'}n"; 32 print "REMOTE_HOST = $ENV{'REMOTE_HOST'}n"; 33 print "REMOTE_IDENT = $ENV{'REMOTE_IDENT'}n"; 34 print "REMOTE_ADDR = $ENV{'REMOTE_ADDR'}n"; 35 print "REMOTE_USER = $ENV{'REMOTE_USER'}n"; 36 print "AUTH_TYPE = $ENV{'AUTH_TYPE'}n"; 37 print "CONTENT_TYPE = $ENV{'CONTENT_TYPE'}n"; 38 print "CONTENT_LENGTH = $ENV{'CONTENT_LENGTH'}n"; 39 print "DOCUMENT_ROOT = $ENV{'DOCUMENT_ROOT'}n"; 40 print "DOCUMENT_URI = $ENV{'DOCUMENT_URI'}n"; 41 print "DOCUMENT_NAME = $ENV{'DOCUMENT_NAME'}n"; 42 print "DATE_LOCAL = $ENV{'DATE_LOCAL'}n"; 43 print "DATE_GMT = $ENV{'DATE_GMT'}n"; 44 print "LAST_MODIFIED = $ENV{'LAST_MODIFIED'}n";
  • 46. Lập trình mạng – Chương 5 46