Khoa Khoa Hc v K Thut Mỏy Tớnh
Trang 1
Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM
Bi Ging 7
LP TRèNH WEB CHY
SERVER
Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM
Khoa Khoa Hc v K Thut Mỏy Tớnh
Trang 2
Ni dung
Lp trỡnh Web vi CGI
Lp trỡnh Web vi Servlet
Lp trỡnh Web vi JSP
Lp trỡnh Web vi ASP
Lp trỡnh Web vi PHP (t hc)
Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM
Khoa Khoa Hc v K Thut Mỏy Tớnh
Trang 3
Lp trỡnh web vi CGI
Trang HTML ch cha cỏc ni dung c nh hoc cú
th thao tỏc thay i qua DHTML client.
Nhu cu s dng cỏc trang web nh mt ng dng
(giao tip vi user, tỡm kim, ni dung thay i,
tng tỏc cỏc ng dng, vi database)=> ng
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)
Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM
Khoa Khoa Hc v K Thut Mỏy Tớnh
Trang 5
Lp trỡnh web vi CGI
Cỏch thc hot ng ca ng dng web CGI
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
foreach $key (sort(keys %ENV)) {
print "VARIABLE $key = $ENV{$key}<br>\n";
}
print "</body></html>\n";
Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM
Khoa Khoa Hc v K Thut Mỏy Tớnh
Trang 9
Lp trỡnh web vi CGI
Cỏc bi
n mụi tr
ng
Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM
Khoa Khoa Hc v K Thut Mỏy Tớnh
Trang 10
Lp trỡnh web vi CGI
Cỏc bi
n mụi tr
ng
Vớ d
in ra a ch IP ca mỏy khỏch:
print "IP Address = $ENV{'REMOTE_ADDR'}\n";
M
t s
Chng trỡnh servlet:
Th
ng extends class HttpServlet. Khụng cú method main.
Ph
i
c d
ch ra
d
ng byte-code(.class) v khai bỏo v
i
web server.
Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM
Khoa Khoa Hc v K Thut Mỏy Tớnh
Trang 13
Gii thiu Servlet
C
n cú package servlet.jar
biờn d
ch
( /> Cỏc server hi
(Doses not exist)
To ra
(Instantiated)
Sn sng phc v
request (Instaniated &
Ready)
Phc v
(Service)
Khụng sn
sng
Unavailable
Hu
(Destroyed)
Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM
Khoa Khoa Hc v K Thut Mỏy Tớnh
Trang 15
Lp trỡnh vi Servlet API (t.t)
Java Servlet API g
m:
javax.servlet.*
Cha cỏc class v interface c lp vi HTTP
javax.servlet.http.*
Cha cỏc class c th cho HTTP
T
t c
i k
th
a t
l
p ny v override cỏc
method doGet()/doPost().
Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM
Khoa Khoa Hc v K Thut Mỏy Tớnh
Trang 16
Lp trỡnh vi Servlet API (t.t)
javax.servlet.ServletRequest
javax.servlet.http.HttpServletRequest
javax.servlet.ServletInputStream
Requests
javax.servlet.ServletExceptionServlet Exception
javax.servlet.ServletConfigCu hỡnh sevlet
javax.servlet.Servlet
javax.servlet.SingleThreadModel
javax.servlet.GenericServlet
javax.servlet.http.HttpServlet
Hin thc servlet
Class/InterfaceMc ớch
Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM
Khoa Khoa Hc v K Thut Mỏy Tớnh
Trang 17
theo giao thc HTTP:
doGet cho HTTP GET, doPost cho HTTP POST
Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM
Khoa Khoa Hc v K Thut Mỏy Tớnh
Trang 19
Cu trỳc n gin ca mt Servlet
import java.io.*;
import java.servlet.*;
import java.servlet.http.*;
public class Sample extends HttpServlet{
public doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException{
//dựng i tng request c d liu t client
//dựng i tng response xut d liu cho client
PrintWriter out = response.getWriter();
//dựng i tng out ghi (method print) d liu cho client
}
}
Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM
Khoa Khoa Hc v K Thut Mỏy Tớnh
Trang 20
Mt Servlet n gin
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
i t
ng c
a class HttpServletRequest
Cỏc methods
l
y thụng s
:
getParameter(para-name)
getParameterValues(para-name)
String username=
request.getParameter(username);
String[] choice =
request.getParameterValues(comments);
Dựng
i t
ng c
a class HttpServletRequest
l
y cỏc
Lp trỡnh Web vi Servlet
L
y cỏc thụng s
HTTP request header (t.t)
Ly cỏc giỏ tr ca bin mụi trng CGI:
QUERY_STRING: getQueryString()
REMOTE_ADDR: getRemoteAddr()
REMOTE_HOST: getRemoteHost()
REQUEST_METHOD: getMethod()
PATH_INFO: getPathInfo()
SCRIPT_NAME: getServletPath()
SERVER_NAME: getServerName()
SERVER_PORT: getServerPort()
HTTP_XXX_YYY: getHeader(Xxx-Yyy)
- Vớ d : Request Info
Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM
Khoa Khoa Hc v K Thut Mỏy Tớnh