servlet + jsp on tomcat mysql
TRANSCRIPT
![Page 1: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/1.jpg)
Trang 1
TÌM HIỂU CÔNG NGHỆ SERVLET + JSP TRÊN ECLIPSE + TOMCAT + MYSQL
Nhóm 7:Hồng Thị Mỹ Anh – 11110002Đậu Thị Ngọc Linh – 11110068
BÁO CÁO GIỮA KỲMÔN CC & MT PHÁT TRIỂN PHẦN MỀM
![Page 2: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/2.jpg)
Trang 205/01/2023
Khái niệm
Là công cụ hỗ trợ lập trình đa ngôn ngữ:
C/C++/C#, php, Java,…
Có thể kết hợp nhiều công cụ hỗ trợ khác.
Gồm 3 phần: Platform, JDT, PDE.
Eclipse
![Page 3: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/3.jpg)
Trang 305/01/2023
Dự án Eclipse ban đầu được IBM thành lập vào 11/2001 và được hiệp hội các nhà cung cấp phần mềm hỗ trợ.
Quỹ Eclipse thành lập vào 1/2004 là tổ chức phi lợi nhuận độc lập hoạt động như người quản lý của cộng đồng Eclipse. Hiện nay, cộng đồng Eclipse bao gồm các cá nhân và các tổ chức từ nhiều lĩnh vực của công nghiệp phần mềm.
Lịch sử phát triển
![Page 4: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/4.jpg)
Trang 405/01/2023
Lịch sử phát triển
![Page 5: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/5.jpg)
Trang 505/01/2023
Các phiên bản của Eclipse với version mới nhất
![Page 6: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/6.jpg)
Trang 605/01/2023
Các phiên bản của Eclipse cho từng ứng dụng riêng biệt:
![Page 7: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/7.jpg)
Trang 705/01/2023
Các phiên bản của Eclipse cho từng ứng dụng riêng biệt:
![Page 8: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/8.jpg)
Trang 805/01/2023
Ưu nhược điểm của Eclipse Ưu điểm: Quick Fix (Sửa lỗi nhanh)
Eclipse của IBM - IBM có thư viện SWT để tạo
ứng dụng, Eclipse được phát triển trên thư viện
này.
Nhiều plugin,... hỗ trợ hầu như đầy đủ các loại
ứng dụng Java.
Eclipse hỗ trợ tốt trong các dự án lớn.
![Page 9: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/9.jpg)
Trang 905/01/2023
Nhược điểm:Nhiều plugin nhưng đôi lúc gây khó khăn khi
config.
Thiếu tính nhất quán vì có nhiều plugin quá.
Eclipse nhiều plugin nhưng chất lượng đa phần là
không đạt.
Ưu nhược điểm của Eclipse
![Page 10: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/10.jpg)
Trang 1005/01/2023
Apache TomcatKhái niệmLà một Java Servlet được phát triển bởi Apache Software Fondation(ASF). Tomcat thi hành các ứng dụng Java Servlet và JavaServer Pages (JSP) từ Sun Microsystems, và cung cấp một máy chủ HTTP cho ngôn ngữ Java thuần túy để thực thi các chương trình lệnh viết bằng ngôn ngữ Java.
![Page 11: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/11.jpg)
Trang 1105/01/2023
Tình trạng phát triển
Các thành viên của ASF và các tình nguyện viên riêng lẻ vẫn đang phát triển và duy trì Tomcat.
Phiên bản Tomcat đầu tiên được công bố là phiên bản 3.0.x (các phiên bản trước không được Sun phát hành rộng rãi ra ngoài).
Phiên bản mới nhất của Apache Tomcat là 8.0.15, phát hành vào ngày 07/11/2014.
![Page 12: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/12.jpg)
Trang 1205/01/2023
Thành phầnTomcat phiên bản 4.x xuất hiện bao gồm Catalina (thiết kế lại của bộ Servlet) và Coyote (một trình kết nối HTTP), Jasper (một thiết kế lại của bộ công cụ JSP)
CatalinaCatalina chính là bộ servlet container của Tomcat. Catalina thực hiện các chi tiết kỹ thuật của Sun Microsystems' đối với servlet và các trang JavaServer (JSP). Người đã xây dựng lên Catalina là Craig McClanahan.
![Page 13: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/13.jpg)
Trang 1305/01/2023
CoyoteCoyote là bộ phận kết nối HTTP của Tomcat, có cung cấp giao thức HTTP 1.1 cho các máy chủ web hoặc các ứng dụng khác. Coyote nghe ngóng các kết nối đến nó trên cổng TCP được định sẵn trên máy chủ và sau đó trả lời các yêu cầu đến Tomcat để thực thi các yêu cầu và gửi lại trả lời cho máy trạm đã yêu cầu.
![Page 14: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/14.jpg)
Trang 1405/01/2023
JasperJasper là công cụ JSP của Tomcat. Tomcat 5.x sử dụng Jasper 2 là một thực thi các trang JSP được chỉ rõ của Sun Microsystems. Jasper phân tích các file JSP để biên dịch chúng trong code Java như là các servlets. Tại thời điểm thực thi, Jasper có khả năng tự động dò ra các file JSP và biên dịch chúng.
![Page 15: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/15.jpg)
Trang 1505/01/2023
MySQL là hệ quản trị cơ sở dữ liệu(CSDL) mã nguồn mở nằm trong nhóm LAMP (Linux – Apache -MySQL – PHP) ,vì MySQL được tích hợp sử dụng chung với apache, PHP. MySQL hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh.
MySQLKhái niệm
![Page 16: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/16.jpg)
Trang 1605/01/2023
• MySQL là một phần mềm quản trị CSDL dạng server-based (gần tương đương với SQL Server của Microsoft).
• MySQL có cơ chế phân quyền người sử dụng riêng, mỗi người dùng có thể được quản lý một hoặc nhiều CSDL khác nhau, mỗi người dùng có một tên truy cập và mật khẩu tương ứng để truy xuất đến CSDL.
Một số đặc điểm của MySQL
![Page 17: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/17.jpg)
Trang 1705/01/2023
• MySQL quản lý dữ liệu thông qua các CSDL, mỗi CSDL có thể có nhiều bảng quan hệ chứa dữ liệu
• Khi ta truy vấn tới CSDL MySQL, ta phải cung cấp tên truy cập và mật khẩu của tài khỏan có quyền sử dụng CSDL đó.
Một số đặc điểm của MySQL
![Page 18: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/18.jpg)
Trang 1805/01/2023
• Ưu điểm : Mysql có cùng một cách truy xuất và mã lệnh tương tự với ngôn ngữ SQL chính vì thế nên MySQL được sử dụng và hỗ trợ của những lập trình viên yêu thích mã nguồn mở.
Ưu nhược điểm của MySQL
![Page 19: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/19.jpg)
Trang 1905/01/2023
• Khuyết điểm: Không bao quát toàn bộ những câu truy vấn cao cấp như SQL Server. Vì vậy Mysql chỉ đáp ứng việc truy xuất đơn giản trong quá trình vận hành của website, thích hợp cho các ứng dụng có truy cập CSDL trên internet.
Ưu nhược điểm của MySQL
![Page 20: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/20.jpg)
Trang 2005/01/2023
So sánh MySQL, SQL Server và Oracle Tên Microsoft SQL
Server MySQL Oracle
Miêu tả Microsofts DBMS quan hệ
Sử dụng rộng rãi mã nguồn mởRDBMS
Rộng rãi được sử dụng RDBMS
Website www.microsoft.com/sqlserver
www.mysql.com www.oracle.com/us/products/database
Tài liệu kỹ thuật
www.microsoft.com/sqlserver/en/us/default.aspx
dev.mysql.com/doc www.oracle.com/technetwork/indexes/documentation/index.html
![Page 21: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/21.jpg)
Trang 2105/01/2023
Nhà phát triển
Microsoft Oracle Oracle
Phiên bản đầu tiên
1989 1995 1980
Sư dung Thương mai Nguồn mở Thương mai Cơ sở dữ liệu như một dịch vu (DBaaS)
không không không
Ngôn ngữ thực hiện
C ++ C và C ++ C và C ++
Server operating systems
Windows FreeBSDLinuxOS XSolarisWindows
AIXHP-UXLinuxOS XSolarisWindowsz/OS
Mô hình cơ sở dữ liệu
DBMS quan hệ DBMS quan hệ DBMS quan hệ
![Page 22: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/22.jpg)
Trang 2205/01/2023
Sơ đồ dữ liệu co co co
SQL co co co
API và các access methods khác
OLE DBTabular Data Stream (TDS)ADO.NETJDBCODBC
ADO.NETJDBCODBC
ODP.NETOracle Call Interface (OCI)JDBCODBC
![Page 23: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/23.jpg)
Trang 2305/01/2023
Ngôn ngữ lập trình được hỗ trợ
.NetJavaPHPPythonRubyVisual Basic
AdaCC#C++DEiffelErlangHaskellJavaObjective-COCamlPerlPHPPythonRubySchemeTcl
CC#C++ClojureCobolEiffelErlangFortranGroovyHaskellJavaJavaScriptLispObjective COCamlPerlPHPPythonRRubyScalaTclVisual Basic
![Page 24: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/24.jpg)
Trang 2405/01/2023
Server-side scripts
Transact-SQL and .NET languages
có PL/SQL
Triggers có có có
Phương pháp phân vùng
bảng có thể được phân phối qua một số tập tin (phân vùng ngang), nhưng không có sharding
phân vùng ngang trong MySQL Cluster
phân vùng ngang
Phương pháp Replication
có, nhưng tùy thuộc vào phiên bản SQL-Server
Nhân rộng master-master Master-slave nhân rộng MySQL Cluster
Nhân rộng master-master nhân rộng Master-slave
![Page 25: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/25.jpg)
Trang 2505/01/2023
Servlet là gì?
• Nhận client request.• Lấy thông tin từ request.• Xử lý nghiệp vụ và phát sinh nội dung(bằng
cách truy cập database,….).• Tạo và gửi request tới client hoặc gửi request
tới servlet hoặc JSP khác.
![Page 26: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/26.jpg)
Trang 2605/01/2023
Ưu điểm Servlet
• Có nhiều web servers hỗ trợ servlet.• Truy cập được mọi java APIs.• Độ tin cậy cao,hiệu năng tốt,dễ mở rộng.• Độc lập flatform và server.• An toàn.• Hầu hết server cho phép load lại server khi có
sự thay đổi.
![Page 27: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/27.jpg)
Trang 2705/01/2023
Mô hình Servlet request và response
![Page 28: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/28.jpg)
Trang 2805/01/2023
Request và response
• Request là gì?o Thông tin được gửi từ client đến server.
Ai tạo ra request. Dữ liệu người dùng nhập vào và gửi đi. HTTP header.
• Response là gì?o Thông tin được gửi đến client từ server.
Dữ liệu text,image…HTTP headers,cookies…..
![Page 29: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/29.jpg)
Trang 2905/01/2023
HTTP Get và Post
• Các client requests thông dụng nhất:o HTTP Get & HTTP Post.
• Get requests:o Thông tin người dùng nhập vào đính kèm trong URL
dưới dạng 1 query string.o Chỉ gửi được lượng dữ liệu giới hạn.
• Post requests:o Thông tin người dùng nhập vào được gửi dưới dạng dữ
liệu(không đính kèm vào URL).o Gửi được lượng dữ liệu bất kỳ.
![Page 30: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/30.jpg)
Trang 3005/01/2023
Kiến trúc của servlet
![Page 31: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/31.jpg)
Trang 3105/01/2023
Vòng đời servlet
![Page 32: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/32.jpg)
Trang 3205/01/2023
Thiết lập servlet
• Phương thức init có tham số kiểu servletConfig.
• ServletConfig có phương thức đọc tham số được thiết lập web.xml
• Để thiết lập,viết đè phương thức init(),nhưng init(ServletConfig) thì không.
![Page 33: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/33.jpg)
Trang 3305/01/2023
Hàm service()
• Gọi hàm service của servlet và truyền hai đối tượng truy vấn và trả lời (request, reponse objects) vào hàm này. Hàm service, sẽ xem truy vấn được gửi đến tương ứng với phương thức HTTP nào để từ đó phân bổ (dispatch) truy vấn này đến phương thức xử lý tương ứng của servlet, tức các phương thức doXXX đề cập dưới đây.
![Page 34: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/34.jpg)
Trang 3405/01/2023
Hủy servlet
• Loại bỏ servlet khi:o Server shutdown.o Servlet không hoạt động trong thời gian dài.o Server cần giải phóng tài nguyên.
• Trước khi giải phóng phương thức destroy()sẽ được goi.o Có thể sử dụng để xoa,đóng kết nối cơ sở dữ liệu.
![Page 35: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/35.jpg)
Trang 3505/01/2023
Các bước hiện thực servlet
• Tạo 1 lớp kế thừa HttpServlet• Ghi đè phương thức doGet() hay doPost()• HttpServletRequest
o getParameter(“name”);• HttpServletResponse
o Thiết lập nội dungo Lấy đối tượng PrintWriter.oGửi text về client nhờ PrintWriter.
![Page 36: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/36.jpg)
Trang 3605/01/2023
![Page 37: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/37.jpg)
Trang 3705/01/2023
Lấy thông tin từ truy vấn-Request
![Page 38: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/38.jpg)
Trang 3805/01/2023
Lấy dữ liệu
• Sử dụng đối tượng HttpServletRequest• Lấy giá trị thông tin phần header
hrd:getHeader(“hdr”).• Lấy tất cả các tên biến chứa thông tin trong
phần header:getHeaderNames().• Các phương thức cho các thông tin
khác:getCookies,getContentType,getMethod…
![Page 39: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/39.jpg)
Trang 3905/01/2023
Nhập dữ liêu từ form
• Dùng html form để gửi dữ liệu lên server.<form action=……,method
=….>…</form>o action:địa chỉ trang web hay servlet nhận dữ liệu
của form.o method:phương thức gửi dữ liệu lên trang web xử
lý ở server.(Get hay Post).
![Page 40: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/40.jpg)
Trang 4005/01/2023
Ví du về get
![Page 41: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/41.jpg)
Trang 4105/01/2023
Lấy giá trị gưi lên từ client
• HttpServletRequest requesto Lấy giá trị của x:request.getParameter(“x”);o Lấy nhiều giá trị của x:
request.getParameterValues(“x”);o Lấy các tên biến gửi lên từ client:Request.getParameterNames();
![Page 42: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/42.jpg)
Trang 4205/01/2023
Gưi trả dữ liệu về client-response
![Page 43: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/43.jpg)
Trang 4305/01/2023
Thiết lập thông tin trạng thái đáp trả
• Sử dụng HttpServletResponseo setStatus(int sc):o sendError(sc),sendError(sc,message):sử dụng khi
có lỗi.Ví dụ:400,không tìm thấy.o sendRedirect(String location):chuyển trang.Ví dụ: response.sendRedirect(“hello.html”);
![Page 44: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/44.jpg)
Trang 4405/01/2023
Thiết lập responseHeader
• Sử dụng HTTPServletResponse:o setHeader(String hdr,String
value),setIntHeader(String hdr,int value).oVídụ:response.setHeader(“refresh”,”10;url=http://
127.0.0.1/sv.html”);• addHeader(String hdr,String
value),addIntHeader(String hdr,int value).
![Page 45: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/45.jpg)
Trang 4505/01/2023
Các responseHeader khác
• Lớp HTTPServletResponse cung cấp các setters cho một số header khác:o setContentTypeo setContentLengtho setDateHeadero setCharacterEncoding
• Ngoài ra còn có:addCookies(Cookie),sendRedirect(String url).
![Page 46: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/46.jpg)
Trang 4605/01/2023
Trang JSP là gì?
• Là 1 tài liệu text có thể trả về cả static và dynamic content cho trình duyệt.
• Static content và dynamic content có thể được ghép lẫn với nhau.
• Static content:HTML,XML,Text.• Dynamic content:
oMã java,các thẻ Custom tags.o Các thuộc tính hiển thị của javabean.
![Page 47: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/47.jpg)
Trang 4705/01/2023
Trang JSP là gì?
• JSP là mở rộng của Servlet.trong thực tế, JSP và servlet được sử dụng đồng thời để phát triển ứng dụng.
• Trong mô hình MVC,JSP xử lý phần view,Servlet xử lý phần controller.
![Page 48: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/48.jpg)
Trang 4805/01/2023
Ưu điểm của JSP
• Trong Servlet,viết thẻ HTML không tách biệt với code ->sửa đổi giao diện phức tạp.
• JSP được phát triển để khắc phục điều này.o Tách biệt nội dung và cách trình bày.oĐơn giản hóa việc phát triển ứng dụng web với
JSP,Javabean,Custom tags.oHỗ trợ tái sử dụng phần mềm qua các
components(javaBean,Custom tags).o Tự động biên dịch lại các trang JSP khi có sự thay đổi.
![Page 49: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/49.jpg)
Trang 4905/01/2023
So sánh JSP, ASP, PHPJSP ASP PHP-Phần động được viết bằng java, chứ không phải bằng những ngôn ngữ script:VBScript,JavaScript.-Hỗ trợ tốt hơn với các ứng dung phức tạp cần các thành phần sư dung lại.- JSP hỗ trợ mở rộng tag với custom tag.
-ASP là công nghệ của Microsoft.-Phần động được viết bằng những ngôn ngữ script.
-Đòi hỏi chúng ta phải học như một ngôn ngữ mới.
-JSP chạy được trên nhiều hệ điều hành và web server khác nhau.
- chay được trên ít hệ điều hành và web server khác nhau.
![Page 50: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/50.jpg)
Trang 5005/01/2023
-Tốc độ xư lý hơi chậm. Tốc độ xư lý rất chậm. Tốc độ xư lý nhanh, hiệu quả cao.
- Số lượng nhà cung cấp hosting ít, kho tìm
- Số lượng nhà cung cấp hosting không nhiều, vì vậy kho cho việc lựa chọn
- Số lượng nhà cung cấp hosting nhiều, dễ lựa chọn
- Chi phí giá thành cao - Chi phí giá thành trung bình (do một phần phải mua bản quền)
- Chi phí giá thành thấp (ngôn ngữ free không tốn chi phí mua bản quyền)
- Công cu và công nghệ hỗ trợ tương đối nhiều.
- Công cụ và công nghệ hỗ trợ ít, kho tìm
- Các công cụ và công nghệ hỗ trợ phong phú, đa dang
![Page 51: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/51.jpg)
Trang 5105/01/2023
Vòng đời của JSP
![Page 52: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/52.jpg)
Trang 5205/01/2023
JSP làm việc như thế nào?
![Page 53: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/53.jpg)
Trang 5305/01/2023
Các bước xư lý trang JSP
![Page 54: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/54.jpg)
Trang 5405/01/2023
Ví du HelloWorld.jsp
<html><head><title>Hello world</title></head><body>
<% out.println("Hello World"); %></body></html>
![Page 55: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/55.jpg)
Trang 5505/01/2023
Các thành phần chính của JSP
• Dẫn hướng_Directo Cho phép điều khiển cấu trúc servlet
• Các phần tử kịch bản-script elementso Dùng viết code java.
• Hành động-Actiono Dùng để kiểm soát các servlet.
![Page 56: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/56.jpg)
Trang 5605/01/2023
Ví du
![Page 57: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/57.jpg)
Trang 5705/01/2023
Các phần tư Scripting(1)
• Có 3 cách nhúng code vào HTML.o Thẻ khai báo (declaration)o Thẻ văn lệnh con (scriptlet)o Thẻ biểu thức (expression)
![Page 58: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/58.jpg)
Trang 5805/01/2023
Các phần tư Scripting(2)
• Thẻ biểu thức (expression) : dùng để hiển thị kết quả của một biểu thức.
• Cú pháp:<% = expression%> hay<jsp:expression>expression</jsp:expression>• Ví dụ: <body>
<p> Today's date: <%= (new java.util.Date()).toLocaleString()%> </p> </body>
![Page 59: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/59.jpg)
Trang 5905/01/2023
Các phần tư Scripting(3)
• Thẻ khai báo (declaration):định nghĩa biến hoặc phương thức trong JSP.
• Cú pháp: <%! declaration; %>Hay
<jsp:declaration> code fragment </jsp:declaration>• Ví dụ:
<%! int i = 0; %> Gia tri cua i la:<%= i %>
![Page 60: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/60.jpg)
Trang 6005/01/2023
Các phần tư Scripting(4)
• Thẻ văn lệnh con (scriptlet): dùng để chứa code java.
• Cú pháp: <% code fragment %>Hay <jsp:scriptlet> code fragment
</jsp:scriptlet>• Ví dụ: <body> Hello World!<br/> <% out.println("Your IP address is " + request.getRemoteAddr()); %> </body>
![Page 61: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/61.jpg)
Trang 6105/01/2023
JSP directives(1)
• Cú pháp:<%@ directive attribute="value" %>• Có 3 loại thẻ chính:o Chỉ thị page.o Chỉ thị include.o Chỉ thị taglib.
![Page 62: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/62.jpg)
Trang 6205/01/2023
JSP directives(2)
• Chỉ thị page:có nhiều tuỳ chọn, trong đó có :- import : nhập một gói (package) java. Chỉ thị này sẽ được chuyển thành chỉ dẫn import trong servlet.- contentType : định nghĩa loại nội dung của trang sẽ được phát sinh.- pageEncoding : định nghĩa chuẩn mã hoá trang phát sinh sử dụng.- language : định nghĩa ngôn ngữ sử dụng.
![Page 63: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/63.jpg)
Trang 6305/01/2023
JSP directives(3)
• Cú pháp: <%@ page ... %>• Ví du: <%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.util.List, java.util.Date" language="java" %><html><tilte> JSP Elements</title><head><h1>JSP Elements</h1></head><body></body> </html>
![Page 64: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/64.jpg)
Trang 6405/01/2023
JSP directives(4)
• Chỉ thị include : chỉ định cho trình biên dịch gộp tập tin vào trang.
• Cú pháp: <%@ include ... %>Hay <jsp:include ... />
![Page 65: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/65.jpg)
Trang 6505/01/2023
JSP directives(5)
• Chỉ thị taglib : khai báo việc dùng một thư viện thẻ trong trang.
• Cú pháp: <%@ taglib ... %>• Ví du:<%@taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
![Page 66: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/66.jpg)
Trang 6605/01/2023
Các JSP action chuẩn(1)
• <jsp: forward>:cho phép jsp gửi request hiện tai đến servlet hay jsp khác.o Cú pháp: <jsp:forward page="Relative URL" />o Ví du: <jsp:forward page="date.jsp" />
• <jsp:param>: được sử dụng là thuộc tính con của các action jsp:include,jsp:plugin….o Cú pháp:
![Page 67: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/67.jpg)
Trang 6705/01/2023
Các JSP action chuẩn(2)
• <jsp:plugin> : thực thi hay hiển thị một đối tượng, đối tượng này có thể là một applet hay bean.
• <jsp:use bean>:khởi tạo hay tái sử dụng javabean đã tồn tại để dùng trong trang jsp.o <jsp:useBean id="name" class="package.class" />
• <jsp:setProperty>:gán giá trị cho một thuộc tính của java bean.o <jsp:setProperty name = "myName"property =
"someProperty" .../>
![Page 68: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/68.jpg)
Trang 6805/01/2023
Các JSP action chuẩn(3)
• <jsp:getProperty>:lấy giá trị một thuộc tính của một JavaBean.o <jsp:getProperty property="username"
name="userBean" />• Ví dụ:
![Page 69: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/69.jpg)
Trang 6905/01/2023
Ví dụ(1)
![Page 70: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/70.jpg)
Trang 7005/01/2023
Ví dụ(2)
![Page 71: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/71.jpg)
Trang 7105/01/2023
DEMO CHƯƠNG TRÌNH
![Page 72: Servlet + JSP on TomCat mysql](https://reader035.vdocuments.mx/reader035/viewer/2022062822/5882fd241a28abe70d8b4c37/html5/thumbnails/72.jpg)
Trang 7205/01/2023
Cảm ơn Thầy và các bạn đã theo dõi!