Your SlideShare is downloading. ×
0
CHƯƠNG 6:    LẬP TRÌNH WEB VỚI CÁC     CÔNG NGHỆ PHỔ BIẾN6.1 Giới thiệu Servlet/JSP6.2 Lập trình web với Servlet6.3 Lập tr...
6.1 Giới thiệu Servlet/JSP• Servlet là một ứng dụng (class) Java chạy  trên nền web server.• Cơ chế hoạt động theo mô hình...
6.1 Giới thiệu Servlet/JSP• Cần có package servlet.jar để biên dịch  (http://java.sun.com/products/servlet/)• Các server h...
6.1 Giới thiệu Servlet/JSP• Cấu trúc đơn giản của một Servlet:  import java.io.*;  import java.servlet.*;  import java.ser...
6.1 Giới thiệu Servlet/JSP• Biên dịch như một class Java.• File *.class dịch được phải đặt vào đúng thư  mục quy định sẵn ...
6.1 Giới thiệu Servlet/JSP• Cơ chế hoạt động của một servlet:  – Web server nhận yêu cầu triệu gọi servlet từ    client.  ...
6.2 Lập trình web với Servlet• Lấy dữ liệu từ web client gởi đến bằng servlet:  – Dùng đối tượng của class HttpServletRequ...
6.2 Lập trình web với Servlet• Ví dụ lấy tất cả các thông số từ client   Enumeration parameter_names =     request.getPara...
6.2 Lập trình web với Servlet• Lấy các thông số HTTP request header: class  HttpServletRequest cung cấp các method để lấy ...
6.2 Lập trình web với Servlet• Lấy các thông số HTTP request header:  – Lấy các giá trị của biến môi trường CGI:     •   Q...
6.2 Lập trình web với Servlet• Gởi dữ liệu cho web client: dùng đối tượng của  class HttpServletResponse:  – Tạo đối tượng...
6.2 Lập trình web với Servlet• Xử lý Cookie với web browser:  – Chức năng Cookie    • Kết hợp với web browser để lưu các t...
6.2 Lập trình web với Servlet• Ghi thông tin Cookie lên máy client:  – Thông tin được truyền đi trong field Set-    Cookie...
6.2 Lập trình web với Servlet• Ví dụ:  String user=“”,pass=“”;  Cookie[] cookies = request.getCookies();  if(cookies.lengt...
6.2 Lập trình web với Servlet• Lưu thông tin về phiên làm việc của user: class  HttpSession.  – Có thể dùng để lưu bất kỳ ...
6.2 Lập trình web với Servlet• Ví dụ lưu ShoppingCart vào session  HttpSession session = request.getSession(true);  Shoppi...
6.2 Lập trình web với Servlet• Xử lý kết nối database  – Dùng JDBC (Java DataBase Connectivity) để    kết nối và thao tác ...
6.2 Lập trình web với Servlet• Kết nối đến database thông qua OBDC trên Windows:   – Tạo DataSourceName trong ODBC      Co...
6.2 Lập trình web với Servlet•   Có thể kết nối database server bất kỳ có driver hỗ trợ.     – Kết nối đến Oracle Database...
6.2 Lập trình web với Servlet• Dùng Prepared Statements trong các câu lệnh  thay đổi dữ liệu:  String preSQLString =  “UPD...
6.2 Lập trình web với Servlet• Dùng cơ chế Connection Pooling   – Tạo một dãy các Connection sẵn sàng.   – Dùng cơ chế thr...
6.3 Lập trình web với JSP• JSP (Java Server Pages) là một trang  HTML xen các đoạn mã Java.• Trang JSP sẽ được web server ...
6.3 Lập trình web với JSP• Các đoạn mã Java trong trang JSP được đặt  trong tag: <% %>   –   Giá trị biểu thức: <%= biểu t...
6.3 Lập trình web với JSPVí dụ trang JSP<html><body bgcolor="white"><h1> Request Information </h1><font size="4">JSP Reque...
6.3 Lập trình web với JSP• Các đối tượng được xây dựng sẵn trong  một trang JSP:  – request: đối tượng class HttpServletRe...
6.4 Giới thiệu ASP• ASP là một trang HTML có chứa các mã  script (VBScript hay JavaScript). Các  script này có thể:  – Lấy...
6.4 Giới thiệu ASP• Các công cụ:  – Soạn thảo :    • Có thể dùng trình soạn thảo văn bản text bất kỳ.    • Các công cụ trự...
6.4 Giới thiệu ASP• Thêm script xử lý vào trang ASP:  – Đặt mã trong cặp dấu : <%...%>     • Ví dụ : <HTML><BODY>         ...
6.5 Lập trình web với ASP• Đối tượng xử lý request sẵn có của  ASP: Request.  – Lấy thông tin người dùng nhập từ Form:    ...
6.5 Lập trình web với ASP• Đối tượng xử lý response sẵn có  của ASP: Response – Các phương thức chính:   • Reponse.Write(“...
6.5 Lập trình web với ASP• Đối tượng Application:  – Quản lý thông tin về ứng dụng. Có thể dùng    để lưu trữ dữ liệu, đối...
6.5 Lập trình web với ASP• Thao tác database: có thể dùng ADO để thao  tác.• Ví dụ về đọc dữ liệu từ database  Dim objReco...
6.5 Lập trình web với ASP• Đọc dữ liệu bằng câu lệnh SQL:  strSQL = “Select * FROM table WHERE ….”  objRecordset.Open strS...
6.5 Lập trình web với ASP• Thêm mới record:  Set obj-Recordset-name = Server.CreateObject(“ADODB.Recordset”)  objRecordset...
6.5 Lập trình web với ASP• Cập nhật thông tin trong record:  strSQLUpdate = “UPDATE table SET field1=…,    field2=… WHERE ...
LẬP TRÌNH WEB VỚI PHP•   Giới thiệu về PHP•   Truy cập biến form•   Quản lý session, cookie•   Truy xuất cơ sở dữ liệu•   ...
Giới thiệu về PHP• Là một ngôn ngữ lập trình ứng dụng web• Mã lệnh PHP được nhúng vào trang  HTML tương tự JSP hay ASP• Ho...
Giới thiệu về PHP• Cài đặt PHP trên Windows  – Cài đặt PHP lên máy, có thể download từ:    http://www.php.net/, …  – Cấu h...
Giới thiệu về PHP• Cấu hình PHP  trên IIS  – Chọn    Properties của    web site  – Cấu hình    tương tự hình    bên       ...
Giới thiệu về PHP• Ví dụ một trang PHP đơn giản  <html> <head>  <title> PHP Hello World!  </title></head>  <body>  <?   ec...
Giới thiệu về PHP• Cú pháp PHP tương tự C và Java• Được viết chèn vào mã HTML theo các  dạng:  – <? //commands ?>  – <?php...
Truy xuất biến Form• Dùng chính tên biến đã đặt cho FORM, ví  dụ file doLogin.php:  From login.html <br>  <?php  echo " To...
Xây dựng hàm và sử dụng lại mã• Chèn một trang khác vào PHP:  – require(filename);• Sử dụng lại mã:  – include(filename);•...
Xây dựng hàm và sử dụng lại mã• Có thể viết mã PHP theo lập trình hướng  đối tượng class classname{    //[var $atrr]*;    ...
Quản lý session và cookie• Gán giá các giá trị cookie:  – setcookie(“cookie_name”, value);  – Bằng sesion:    session_set_...
Quản lý session và cookie• Lưu trữ biến vào sesion:  session_start(); //ref php.ini  $var = value;  session_register($var)...
Quản lý session và cookie• Kiểm tra một session đã đăng ký chưa:  session_is_registered(“var”);  – Ex:    if (session_is_r...
Truy xuất cơ sở dữ liệu• PHP cung cấp các hàm truy xuất  database khác nhau cho mỗi hệ quản trị  cơ sở dữ liệu khác nhau• ...
Thao tác với hệ DBMS MySQL• Thực thi câu truy vấn:  int mysql_query(string sql,[db_connect]);  int mysql_query(string data...
Upcoming SlideShare
Loading in...5
×

Ch06

602

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
602
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Ch06"

  1. 1. CHƯƠNG 6: LẬP TRÌNH WEB VỚI CÁC CÔNG NGHỆ PHỔ BIẾN6.1 Giới thiệu Servlet/JSP6.2 Lập trình web với Servlet6.3 Lập trình web với JSP6.4 Giới thiệu ASP6.5 Lập trình web với ASP Lập trình mạng – Chương 1
  2. 2. 6.1 Giới thiệu Servlet/JSP• Servlet là một ứng dụng (class) Java chạy trên nền web server.• Cơ chế hoạt động theo mô hình CGI mở rộng.• Chương trình phải được dịch ra ở dạng byte-code(.class), khai báo với web server. Web server phải hỗ trợ Java.• Phải extends class HttpServlet. Không có method main. Lập trình mạng – Chương 2
  3. 3. 6.1 Giới thiệu Servlet/JSP• Cần có package servlet.jar để biên dịch (http://java.sun.com/products/servlet/)• Các server hiện hỗ trợ Servlet: – Apache Tomcat (http://jakarta.apache.org) – Sun’s Java Web Server, free, hiện không cho download (http://wwws.sun.com/software/jwebserver/) – New Atlanta’s ServletExec, tích hợp ServletEngine vào các web server(http://newatlanta.com) – http://www.macromedia.com/software/jrun/trial/ –…• Tham khảo các tài liệu về Servlet: http://java.sun.com/products/servlet/docs.html Lập trình mạng – Chương 3
  4. 4. 6.1 Giới thiệu Servlet/JSP• Cấu trúc đơn giản của một 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 tượng “request” để đọc dữ liệu từ client //đối tượng “response” để xuất dữ liệu cho client PrintWriter out = response.getWriter(); //dùng đối tượng out để ghi (method print) dữ liệu cho client } } Lập trình mạng – Chương 4
  5. 5. 6.1 Giới thiệu Servlet/JSP• Biên dịch như một class Java.• File *.class dịch được phải đặt vào đúng thư mục quy định sẵn của web server. – Tomcat: $/webpages/WEB-INF/classes – JWS: $/servlets• Cấu hình cho web server đối với mỗi servlet: – Tomcat: hiệu chỉnh file web.xml trong thư mục $/webpages/WEB-INF theo DTD http://java.sun.com/j2ee/dtds/web-app_2_2.dtd – JWS: Cấu hình bằng web-based tool được cung cấp. Lập trình mạng – Chương 5
  6. 6. 6.1 Giới thiệu Servlet/JSP• Cơ chế hoạt động của một servlet: – Web server nhận yêu cầu triệu gọi servlet từ client. • Nếu servlet chạy lần đầu, web server load file servlet tương ứng, khởi tạo các thông số bằng qua method init() • Nếu servlet đã được khởi tạo, tạo một thread để xử lý yêu cầu. – Gọi methods doXxx() để xử lý các request tương ứng theo giao thức HTTP. • doGet(..) cho HTTP GET, doPost cho HTTP POST Lập trình mạng – Chương 6
  7. 7. 6.2 Lập trình web với Servlet• Lấy dữ liệu từ web client gởi đến bằng 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 Lập trình mạng – Chương 7
  8. 8. 6.2 Lập trình web với Servlet• Ví dụ lấy tất cả các thông số từ client Enumeration parameter_names = request.getParameterNames(); while(parameter_names.hasMoreElements()){ String para = parameter_names.nextElement(); out.print(para + “ = ”); String[] paraValues = getParameterValues(para); if(paraValues.lenght()==1){ out.println(paraValues[0]); }else{ for(int i = 0, i< paraValues.lenght(),i++){ out.print(paraValues[i]+ “-”); } } } Lập trình mạng – Chương 8
  9. 9. 6.2 Lập trình web với Servlet• Lấy các thông số HTTP request header: class HttpServletRequest cung cấp các method để lấy các thông số request header. – String getHeader(header-name): lấy nội dung của header-name – Enumeration getHeaderNames(): lấy tất cả các header-name. – Một số method điển 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 nếu có authenticate Lập trình mạng – Chương 9
  10. 10. 6.2 Lập trình web với Servlet• Lấy các thông số HTTP request header: – Lấy các giá trị của biến môi trường 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”) • … Lập trình mạng – Chương 10
  11. 11. 6.2 Lập trình web với Servlet• Gởi dữ liệu cho web client: dùng đối tượng của class HttpServletResponse: – Tạo đối tượng PrintWriter để ghi dữ liệu gởi • PrintWriter out = response.getWriter(); – Xử lý các mã HTTP trả về với các method của class HttpServletResponse: • void setStatus(int statusCode): gởi các mã response • void sendError(int errorCode,String msg): gởi mã lỗi theo giao thức HTTP và message • void sendRedirect(String URL): chuyển đến một trang URL khác • Các mã có thể theo giao thức HTTP hoặc dùng các hằng số trong class HttpServletResponse. Lập trình mạng – Chương 11
  12. 12. 6.2 Lập trình web với Servlet• Xử lý Cookie với web browser: – Chức năng Cookie • Kết hợp với web browser để lưu các thông số cần thiết. • Thông tin có thể dùng để thiết lập phiên làm việc(session) trong các ứng dụng thương mại điện tử(e-commerce). • Lưu trữ username, password • Thông tin để customize web site cho user hay dùng cho cơ chế personalization •… Lập trình mạng – Chương 12
  13. 13. 6.2 Lập trình web với Servlet• Ghi thông tin Cookie lên máy client: – Thông tin được truyền đi trong field Set- Cookie HTTP header – Dùng method addCookie(Cookie cookie) của class HttpServletResponse. – Các thuộc tính quan trọng trong class Cookie: • Cookie name: setName(String name) – getName() • Cookie value: setValue(String value) – getValue() • Max Age: setMaxAge(int seconds) – getMaxAge() Lập trình mạng – Chương 13
  14. 14. 6.2 Lập trình web với Servlet• Ví dụ: String user=“”,pass=“”; Cookie[] cookies = request.getCookies(); if(cookies.length==0){ user = request.getParameter(“username”); pass = request.getParameter(“password”); Cookie name_cookie = new Cookie(“username”,user); response.addCookie(name_cookie); Cookie pass_cookie = new Cookie(“password”,pass); response.addCookie(pass_cookie); }else{ for(int i=0;i<cookies.length;i++){ Cookie cookie = cookies[i]; if(cookie.getName().equals(“username”)) user=cookie.getValue(); if(cookie.getName().equals(“password”)) pass=cookie.getValue(); } } Lập trình mạng – Chương 14
  15. 15. 6.2 Lập trình web với Servlet• Lưu thông tin về phiên làm việc của user: class HttpSession. – Có thể dùng để lưu bất kỳ đối tượng nào. – Đối tượng của class HttpSession được trả về từ method getSession() của class HttpServletRequest. – Các method thường sử dụng: • Object getValue(String name) [2.2: getAttribute] • void putValue(String name,Object object) [2.2: putAttribute] • void removeValue(String name) [2.2: removeAttribute] • String[] getValueNames() [Enumeration getAttributeNames()] • String getId() • void setMaxInactiveInterval(int seconds) Lập trình mạng – Chương 15
  16. 16. 6.2 Lập trình web với Servlet• Ví dụ lưu ShoppingCart vào session HttpSession session = request.getSession(true); ShoppingCart cart = (ShoppingCart)session.getValue(“ShoppingCart”); if(cart==null){ cart = new ShoppingCart(); session.putValue(“ShoppingCart”,cart); } //process(cart) Lập trình mạng – Chương 16
  17. 17. 6.2 Lập trình web với Servlet• Xử lý kết nối database – Dùng JDBC (Java DataBase Connectivity) để kết nối và thao tác với database. – Quy trình xử lý: • Tạo JDBC driver và URL database • Thiết lập connection đến URL database • Tạo đối tượng statement • Thực thi các câu lệnh SQL • Xử lý kết quả thực thi • Đóng kết nối đến database. Lập trình mạng – Chương 17
  18. 18. 6.2 Lập trình web với Servlet• Kết nối đến database thông qua OBDC trên Windows: – Tạo DataSourceName trong ODBC Connection con = null; Statement stmt = null; ResultSet rs = null; String driver = “sun.jdbc.odbc.JdbcOdbcDriver”; String databaseURL = “jdbc:odbc:DataSourceName”; try{ Class.forName(driver); con = DriverManager.getConnection(databaseURL); stmt = con.createStatement() rs = stmt.executeQuery(strSQL); while(rs.next()){ out.println(rs.getString[1]+”-” rs.getInt(“quantity”));//… } con.close(); }cacth(SQLException se){ con.close(); } Lập trình mạng – Chương 18
  19. 19. 6.2 Lập trình web với Servlet• Có thể kết nối database server bất kỳ có driver hỗ trợ. – Kết nối đến Oracle Database Server: driver=“oracle.jdbc.driver.OracleDriver” databaseURL =“jdbc:oracle:thin@localhost:1521:”+dbName con = DriverManager.getConnection(databaseURL,user,password) – Kết nối đến Sysbase: driver=“com.sysbase.jdbc.SysDriver” databaseURL = “jdbc:sysbase:Tds:localhost:1521? SERVICENAME=“+dbName con = DriverManager.getConnection(databaseURL,user,password) Lập trình mạng – Chương 19
  20. 20. 6.2 Lập trình web với Servlet• Dùng Prepared Statements trong các câu lệnh thay đổi dữ liệu: String preSQLString = “UPDATE students SET score = ? WHERE ID=?”; PreparedStatement pre_stmt= connection.prepareStatement(preSQLString); float[] scores = getScores(); String[] studentIDs = getStudentIDs(); for(int i=0;i< studentIDs.length;i++){ pre_stmt.setFloat(1,scores[i]); pre_stmt.setString(2, studentIDs[i]); pre_stmt.execute(); } Lập trình mạng – Chương 20
  21. 21. 6.2 Lập trình web với Servlet• Dùng cơ chế Connection Pooling – Tạo một dãy các Connection sẵn sàng. – Dùng cơ chế thread và đồng bộ để chia xẻ các Connection. public synchronized Connection getConnection() throws SQLException{ if(!availableConnections.isEmpty()){ Connection con = availableConnections.lastElement(); availableConnections.removeElementAt( availableConnections.size()-1); busyConnections.addElement(con); return con; }else{ //… } } Lập trình mạng – Chương 21
  22. 22. 6.3 Lập trình web với JSP• JSP (Java Server Pages) là một trang HTML xen các đoạn mã Java.• Trang JSP sẽ được web server biên dịch theo thành bytecode, cơ chế hoạt động tương tự như Servlet.• Được tạo sẵn các đối tượng của các class HttpServletRequest và HttpServletResponse để xử lý giao tiếp với web client. Lập trình mạng – Chương 22
  23. 23. 6.3 Lập trình web với JSP• Các đoạn mã Java trong trang JSP được đặt trong tag: <% %> – Giá trị biểu thức: <%= biểu thức %> – Khai báo các biến <%! [type variable;]+ %> – Java code <% Java code %> – Chú thích <%-- comments --%>• Các khai báo chỉ thị (derective): – <%@ page import=“[package][,package]*” %> – <%@ page isThreadSafe=“{true|false}” %> – <%@ page session=“{true|false}” %> – <%@ include file=“filename” %> Lập trình mạng – Chương 23
  24. 24. 6.3 Lập trình web với JSPVí dụ trang JSP<html><body bgcolor="white"><h1> Request Information </h1><font size="4">JSP Request Method: <jsp:expr> request.getMethod() </jsp:expr><br>Request URI: <jsp:expr> request.getRequestURI() </jsp:expr><br>Request Protocol: <jsp:expr> request.getProtocol() </jsp:expr><br>Servlet path: <jsp:expr> request.getServletPath() </jsp:expr><br>Path info: <jsp:expr> request.getPathInfo() </jsp:expr><br>Path translated: <%= request.getPathTranslated() %>… Lập trình mạng – Chương 24
  25. 25. 6.3 Lập trình web với JSP• Các đối tượng được xây dựng sẵn trong một trang JSP: – request: đối tượng class HttpServletRequest – response: đối tượng class HttpServletResponse – out: đối tượng class PrintWriter – session: đối tượng class HttpSession tạo ra từ method getSession() của đối tượng request – application: đối tượng class ServletContext – config: đối tượng class ServletConfig Lập trình mạng – Chương 25
  26. 26. 6.4 Giới thiệu ASP• ASP là một trang HTML có chứa các mã script (VBScript hay JavaScript). Các script này có thể: – Lấy thông tin từ user. – Sinh nội dung động. – Thao tác với database. –…• Trang ASP được chạy trên web-server hỗ trợ (server-side) Lập trình mạng – Chương 26
  27. 27. 6.4 Giới thiệu ASP• Các công cụ: – Soạn thảo : • Có thể dùng trình soạn thảo văn bản text bất kỳ. • Các công cụ trực quan : Ms. Visual InterDev, Ms. FrontPage, Macromedia Dreamweaver… – Web server: • Win9x : Personal Web Server • Win NT/2000 : Internet Information Services. • Chili!Soft : http://www.ChiliSoft.com (UNIX support) • HalcyonSoft : http://www.halcyonsoft.com Lập trình mạng – Chương 27
  28. 28. 6.4 Giới thiệu ASP• Thêm script xử lý vào trang ASP: – Đặt mã trong cặp dấu : <%...%> • Ví dụ : <HTML><BODY> <% REM Hello World ! ASP %> </BODY></HTML> – Dùng tag SCRIPT : • <SCRIPT RUNAT=“SERVER”>….</SCRIPT> • Ví dụ : <HTML><BODY> <SCRIPT RUNAT=“SERVER”> REM Hello World </SCRIPT> </BODY></HTML> Lập trình mạng – Chương 28
  29. 29. 6.5 Lập trình web với ASP• Đối tượng xử lý request sẵn có của ASP: Request. – Lấy thông tin người dùng nhập từ Form: • Request.Form(“field_name”) • Request.Form(index) – Một số field đặc biệt : checkbox, ratio, các field cùng tên… Lập trình mạng – Chương 29
  30. 30. 6.5 Lập trình web với ASP• Đối tượng xử lý response sẵn có của ASP: Response – Các phương thức chính: • Reponse.Write(“String”) • Reponse.Redirect(“URL”) Lập trình mạng – Chương 30
  31. 31. 6.5 Lập trình web với ASP• Đối tượng Application: – Quản lý thông tin về ứng dụng. Có thể dùng để lưu trữ dữ liệu, đối tượng.• Đối tượng Session: – Quản lý thông tin về phiên làm việc(session), có thể lưu dữ liệu, đối tượng của một session• Đố tượng Server: – Đặt các thuộc tính, tạo đối tượng mới… Lập trình mạng – Chương 31
  32. 32. 6.5 Lập trình web với ASP• Thao tác database: có thể dùng ADO để thao tác.• Ví dụ về đọc dữ liệu từ database Dim objRecordset Set objRecordset = Server.CreateObject(“ADODB.Recordset”) objRecordset.Open “table-name”, “DSN=dsn” Do While NOT objRecordset.EOF Response.Write objRecordset(“field-name”) objRecordset.MoveNext Loop Lập trình mạng – Chương 32
  33. 33. 6.5 Lập trình web với ASP• Đọc dữ liệu bằng câu lệnh SQL: strSQL = “Select * FROM table WHERE ….” objRecordset.Open strSQL, “DSN=dsn”• Dùng in dữ liệu theo dạng bảng, danh sách, listbox…• Có thể dùng cách này để hiện thực việc tìm kiếm. Lập trình mạng – Chương 33
  34. 34. 6.5 Lập trình web với ASP• Thêm mới record: Set obj-Recordset-name = Server.CreateObject(“ADODB.Recordset”) objRecordset-name.Open “table-name”, “DSN=dsn”, _ adOpenDynamic, adLockOptimistic obj-Recordset-name.AddNew obj-Recordset-name.Fields(“field-name”) = … obj-Recordset-name.Update ‘…. obj-Recordset-name.Close Lập trình mạng – Chương 34
  35. 35. 6.5 Lập trình web với ASP• Cập nhật thông tin trong record: strSQLUpdate = “UPDATE table SET field1=…, field2=… WHERE …” objRecordset. Excute strSQLUpdate Lập trình mạng – Chương 35
  36. 36. LẬP TRÌNH WEB VỚI PHP• Giới thiệu về PHP• Truy cập biến form• Quản lý session, cookie• Truy xuất cơ sở dữ liệu• Một số chức năng khác (tham khảo) Lập trình mạng – Chương 36
  37. 37. Giới thiệu về PHP• Là một ngôn ngữ lập trình ứng dụng web• Mã lệnh PHP được nhúng vào trang HTML tương tự JSP hay ASP• Hoạt động theo cơ chế thông dịch với PHP engine tích hợp vào web server. PHP engine hiện tại được hỗ trợ trên nhiều loại web server (trên các hệ điều hành khác nhau) => PHP có tính portable cao• Các web server phổ biến có thể cài đặt PHP engine: IIS, Apache. Apache và PHP thường có sẵn trong Linux Lập trình mạng – Chương 37
  38. 38. Giới thiệu về PHP• Cài đặt PHP trên Windows – Cài đặt PHP lên máy, có thể download từ: http://www.php.net/, … – Cấu hình một số thông số cần thiết trong file $Windows/php.ini: • error_log = {filename} • post_max_size = 8M • file_uploads = {On|Off} • upload_tmp_dir = {directory} • session.save_path = {directory} • session.auto_start = {0|1} Lập trình mạng – Chương 38
  39. 39. Giới thiệu về PHP• Cấu hình PHP trên IIS – Chọn Properties của web site – Cấu hình tương tự hình bên Lập trình mạng – Chương 39
  40. 40. Giới thiệu về PHP• Ví dụ một trang PHP đơn giản <html> <head> <title> PHP Hello World! </title></head> <body> <? echo "Welcome to PHP"; ?> </boby> </html> Lập trình mạng – Chương 40
  41. 41. Giới thiệu về PHP• Cú pháp PHP tương tự C và Java• Được viết chèn vào mã HTML theo các dạng: – <? //commands ?> – <?php # commands ?> – <script language=php‘> /* commands */ </script> – <% # commands %>• Tên biến trong PHP được đặt sau dấu $ Lập trình mạng – Chương 41
  42. 42. Truy xuất biến Form• Dùng chính tên biến đã đặt cho FORM, ví dụ file doLogin.php: From login.html <br> <?php echo " Today is: ". date(); echo " Server:".$Server. " <br> "; echo " Username:$Username". "<br>"; ?> Lập trình mạng – Chương 42
  43. 43. Xây dựng hàm và sử dụng lại mã• Chèn một trang khác vào PHP: – require(filename);• Sử dụng lại mã: – include(filename);• Có thể viết hàm trong trang PHP như khái niệm của lập trình cấu trúc function check($user, $pass, &$result) { #các lệnh thực thi hoặc gọi các hàm khác } check($username,$password,$result); if($result==1){ /*…..*/ } Lập trình mạng – Chương 43
  44. 44. Xây dựng hàm và sử dụng lại mã• Có thể viết mã PHP theo lập trình hướng đối tượng class classname{ //[var $atrr]*; function fucn_name([parameter]){ //… } } $object = new classname(); &object->attr; &object->fucn_name([parameter]); Lập trình mạng – Chương 44
  45. 45. Quản lý session và cookie• Gán giá các giá trị cookie: – setcookie(“cookie_name”, value); – Bằng sesion: session_set_cookie_params($var);• Lấy giá trị cookie: – $cookie_value= $HTTP_COOKIE_VARS[“cookie_name”] – Bằng session: $var = session_get_cookie_params(); Lập trình mạng – Chương 45
  46. 46. Quản lý session và cookie• Lưu trữ biến vào sesion: session_start(); //ref php.ini $var = value; session_register($var);• Sử dụng biến trong session: – biến sau khi đã lưu trữ vào session thì có thể sử dụng như một biến dữ liệu bình thường trong web site Lập trình mạng – Chương 46
  47. 47. Quản lý session và cookie• Kiểm tra một session đã đăng ký chưa: session_is_registered(“var”); – Ex: if (session_is_registered(“Login”)) { } else{ }• Xoá một biến đã được lưu trong session: session_unregister(“var”); Lập trình mạng – Chương 47
  48. 48. Truy xuất cơ sở dữ liệu• PHP cung cấp các hàm truy xuất database khác nhau cho mỗi hệ quản trị cơ sở dữ liệu khác nhau• Thao tác với hệ DBMS MySQL: – Tạo kết nối: $db = mysql_connect(“server”,”user”,”pass”); if(!$db) { //error } – Chọn database: mysql_select_db(“database”); mysql_select_db(“database”,$conn_var); Lập trình mạng – Chương 48
  49. 49. Thao tác với hệ DBMS MySQL• Thực thi câu truy vấn: int mysql_query(string sql,[db_connect]); int mysql_query(string database, string sql, [db_connect]); $result = mysql_query($sql); if(mysql_num_rows($result)!=0){ while($row=mysql_fetch_array($result)) { $fieldname = $row[“fieldname”]; } }• Đóng kết nối: mysql_close($conn_var); Lập trình mạng – Chương 49
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×