Tải bản đầy đủ (.pdf) (63 trang)

Lập trình web chạy ở server

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (530.26 KB, 63 trang )

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


dng web.

CGI (Common Gateway Interface) l mt chuNn
(standard) vit ng dng web.
Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM
Khoa Khoa Hc v K Thut Mỏy Tớnh
Trang 4
Lp trỡnh web vi CGI

Cỏc c im
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)
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

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.
Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM
Khoa Khoa Hc v K Thut Mỏy Tớnh
Trang 6
Lp trỡnh web vi CGI

Hỡnh v minh ha hot ng CGI
Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM
Khoa Khoa Hc v K Thut Mỏy Tớnh
Trang 7
Lp trỡnh web vi CGI

Hỡnh v minh ha hot ng CGI (Perl)
Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM
Khoa Khoa Hc v K Thut Mỏy Tớnh
Trang 8
Lp trỡnh web vi CGI

Vớ d (Perl)
#!/perl/bin/perl
#Remember : this path will vary depending on
#where Perl is located
print "Content-type:text/html\n\n";
print "<html><head><title>HELLO!</title></head>";
print "<body>\n";
print "<h2>Hello!</h2>\n";

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


cỏc vớ d

c

th

Dựng phng thc GET: bin mụi trng lu ý l QUERY_STRING
Dựng phng thc POST.
Lu cỏc bin dựng COOKIE hoc Session.
Lp trỡnh CGI kt ni vi CSDL.
Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM
Khoa Khoa Hc v K Thut Mỏy Tớnh
Trang 11
Lp trỡnh web vi CGI

Ti liu tham kho
Perl Programming
/> /> />n.html
Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM
Khoa Khoa Hc v K Thut Mỏy Tớnh
Trang 12
Gii thiu Servlet

Java servlet l nhng chng trỡnh c lp platform
v nh chy phớa server c lp trỡnh m rng
chc nng ca web server(Web server phi h tr
Java).

C ch hot ng theo mụ hỡnh CGI m rng.


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


n h

tr

Servlet:
Apache Tomcat (

)
Suns Java Web Server, free, hin khụng cho download
(
/>)
New Atlantas ServletExec, tớch hp ServletEngine vo cỏc web
server(

)

/>
Tham kh

o cỏc ti li

u v

Servlet:
/>Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM
Khoa Khoa Hc v K Thut Mỏy Tớnh
Trang 14
Vũng i ca Servlet
Khụng tn ti

(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


sevlet

u ph

i hi

n th

c giao di

n
javax.servlet.Servlet.
Tuy nhiờn do chỳng ta dựng giao th

c HTTP nờn
javax.servlet.http.HttpServlet l l

p hi

n th

c giao di

n
Servlet, nờn
Vỡ v

y ta th

ng ph


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

Lp trỡnh vi Servlet API (t.t)
Javax.servlet.http.Cookie
Java.servlet.http.HttpUtils
Kh
ỏc
Javax.servlet.RequestDispatcherServlet collaboration
Javax.servlet.ServletContextServlet context
Javax.servlet.http.HttpSession
Java.servlet.http.HttpSessionBindingListener
Session tracking
javax.servlet.ServletResponse
javax.servlet.http.HttpServletResponse
javax.servlet.ServletOutput
Responses
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 18
C ch hot ng ca servlet

Web server nhn yờu cu triu gi servlet t client.

Nu servlet chy ln u, web server load file
servlet tng ng, khi to cỏc thụng s bng
qua method init()

Nu servlet ó c khi to, to mt thread
x lý yờu cu.

Gi methods doXxx() x lý cỏc request tng ng

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)

throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("Hello World");
}
}
Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM
Khoa Khoa Hc v K Thut Mỏy Tớnh
Trang 21
Lp trỡnh Web vi Servlet
API cho HttpServletRequest
1. Object getAttribute(String name)
2. void setAttribute(String name, Object att )
3. Enumeration getAttributeNames()
4. int getContentLength()
5. String getParameter(String name)
6. Enumeration getParameterNames()
7. Enumeration getParameterValues()
8. String getRemoteHost()
9. RequestDispatcher getRequestDispatcher( String path )
10. boolean isSecure()
11. ServletInputStream getServletInputStream()
12. int getContentLength()
13.
Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM
Khoa Khoa Hc v K Thut Mỏy Tớnh
Trang 22
Lp trỡnh Web vi Servlet

Ly d liu t web client gi n bng servlet
Dựng


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

thụng tin HTTP header
Vớ d

: Request Parameter
Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM
Khoa Khoa Hc v K Thut Mỏy Tớnh
Trang 23
Lp trỡnh Web vi Servlet
L

y cỏc thụng s

HTTP request header
class HttpServletRequest cung cp cỏc method ly cỏc thụng s
request header.
String getHeader(header-name): ly ni dung ca header-name
Enumeration getHeaderNames(): ly tt c cỏc header-name.
Mt s method in hỡnh:

Cookie[] getCookies(): dóy Cookie t client

int getContentLength(): tr giỏ tr Content-Length

int getContentType(): tr giỏ tr Content-Type

int getRemoteUser(): giỏ tr username nu cú authenticate
Vớ d: Request Header
Trửụứng ẹaùi Hoùc Baựch Khoa Tp.HCM
Khoa Khoa Hc v K Thut Mỏy Tớnh
Trang 24

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

Trang 25
Lp trỡnh Web vi Servlet
API cho HttpServletResponse
1. String getCharaterEncoding()
2. ServletOutputStream getOutputStream()
3. PrintWriter getWriter()
4. setContentLength( int len )
5. setContentType( String type )
6. setBufferSize( int len )
7. int getBufferSize()
8. flushBuffer()
9.

×