Đồ án công nghệ thông tin ứng dụng công nghệ JSP

115 294 0
Đồ án công nghệ thông tin ứng dụng công nghệ JSP

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Ph n Iầ GI I THI U V NGÔN NG CÀI TỚ Ệ Ề Ữ ĐẶ Ch ng Iươ C N B N V JSPĂ Ả Ề JavaServer Pages (JSP) là m t k thu t server-side do đó chúng ta khôngộ ỹ ậ th th c hi n b t k hành đ ng nào client. JSP cho phép chúng ta tách thànhể ự ệ ấ ỳ ộ ở ph n đ ng c a trang ra kh i thành ph n t nh HTML. R t đ n gi n, chúng taầ ộ ủ ỏ ầ ĩ ấ ơ ả ch c n vi t m t tài li u HTML bình th ng r i sau đó bao quanh mã c aỉ ầ ế ộ ệ ườ ồ ủ thành ph n đ ng trong các ầ ộ tag đ c bi t, h u h t các ặ ệ ầ ế tag b t đ u v i <% và k tắ ầ ớ ế thúc v i %>. Ví d , đây là m t ph n c a trang JSP, có k t qu tr v làớ ụ ộ ầ ủ ế ả ả ề “Thanks for reading Van Dau book.” v i URL là ớ http://localhost:8100/thanhk.jsp?title=Van+Dau Thanks for reading <i><%=request.getParameter(“title”)%><i>book. K thu t JSP là m t thành ph n trong đ i gia đình Java; nó s dùng ngônỹ ậ ộ ầ ạ ử ng k ch b n d a vào ngôn ng l p trình Java, và các trang JSP đ c biên d chữ ị ả ự ữ ậ ượ ị thành servlets. T đó chúng ta c ng nh n bi t đ c, JSP thì không ph thu cừ ũ ậ ế ượ ụ ộ b t k n n (platform) nào. Nó đáp ng đ c khuynh h ng c a Sunấ ỳ ề ứ ượ ướ ủ MicroSystem là “write one, run anywhere”. Các trang JSP có th g i các thành ph n JavaBeans, Enterpriseể ọ ầ JavaBeans (EJB) ho c ặ custom tags đ th c hi n các x lý trên server. Và nhể ự ệ ử ư th , k thu t JSP là thành ph n ch ch t trong ki n trúc kh chuy n c a Javaế ỹ ậ ầ ủ ố ế ả ể ủ cho nh ng ng d ng d a vào Web.ữ ứ ụ ự Nh đã bi t, JSPs s biên d ch thành ư ế ẽ ị servlets nh ng JSP không th thayư ể th ế servlet vì các lý do sau: ♦ M t s tác v đ c gi i quy t r t t t b ng ộ ố ụ ượ ả ế ấ ố ằ servlet. Ví d , các ng d ngụ ứ ụ xu t ra d li u nh phân ho c ch xác đ nh n i g i tr l i cho ng i dùngấ ữ ệ ị ặ ỉ ị ơ ở ở ạ ườ (b ng cách dùng ằ response.sendRedirect) đ c dùng ượ servlet thì t t nh t.ố ấ ♦ M t s tác v khác l i đ c gi i quy t r t t t b ng JSP nh các tìnhộ ố ụ ạ ượ ả ế ấ ố ằ ư hu ng mà c u trúc n n t ng c a trang HTML là c đ nh nh ng các giá trố ấ ề ả ủ ố ị ư ị trong nó l i thay đ i.ạ ổ ♦ Còn các tác v còn l i c n s k t h p c ụ ạ ầ ự ế ợ ả servlet và JSP. Ví d , trong yêu c uụ ầ g c đ c tr l i b ng m t servlet mà th c hi n m i công vi c, l u trố ượ ả ờ ằ ộ ự ệ ọ ệ ư ữ các k t qu trong các Beans và đi u ph i yêu c u này đ n m t trong nh ngế ả ề ố ầ ế ộ ữ trang JSP có th hi n th nó. ể ể ị C ba đ nh h ng này đ u có ch đ ng c a nó. Ch ng có đ nh h ng nàoả ị ướ ề ổ ứ ủ ẳ ị ướ h tr đ y đ cho m i ng d ng .ổ ợ ầ ủ ọ ứ ụ Tr c khi đi vào chi ti t công ngh JSP, chúng tôi có m t vài so sánh cácướ ế ệ ộ công ngh đ c s d ng trong ng d ng v i các công ngh khác.ệ ượ ử ụ ứ ụ ớ ệ I. So sánh JSP v i các công ngh khác.ớ ệ I.1. JSP v i ASPớ ASP là công ngh t ng đ ng t Microsoft. JSP có ba l i th so v iệ ươ ươ ừ ợ ế ớ ASP. - Ph n đ ng đ c vi t b ng Java, ch không ph i b ng các ngôn ngầ ộ ượ ế ằ ứ ả ằ ữ script nh VBScript, JavaScript. Vì th nó m nh m h n t t h n đ i v i cácư ế ạ ẽ ơ ố ơ ố ớ ng d ng ph c t p c n các thành ph n s d ng l i.ứ ụ ứ ạ ầ ầ ử ụ ạ - JSP ch y đ c trên nhi u h đi u hành và web servers khác nhau ngayạ ượ ề ệ ề c v i IIS c a Microsoft (c n có plugins t Webphere, JRun, )ả ớ ủ ầ ừ - H tr s m r ng tag v i custom tag.ỗ ợ ự ở ộ ớ I.2. JSP v i PHPớ L i đi m c a JSP v i PHP c ng nh v i ASP. JSP đ c vi t b ngợ ể ủ ớ ũ ư ớ ượ ế ằ Java mà chúng ta đã bi t v i các API m r ng cho m ng, truy c p c s dế ớ ở ộ ạ ậ ơ ở ữ li u, các đ i t ng phân tán, … trong khi v i PHP đòi h i chúng ta ph i h c cệ ố ượ ớ ỏ ả ọ ả m t ngôn ng m i.ộ ữ ớ II. Các thành ph n script c a JSP.ầ ủ Các th b c mã trong JSP cho phép chúng ta chèn mã vào ẻ ọ servlet mã s đ cẽ ượ phát sinh t trang JSP. Có ba d ng sau:ừ ạ Bi u th c có d ng <%= expressions %>, đ c đ nh giá tr và chèn vàoể ứ ạ ượ ị ị lu ng xu t c a ồ ấ ủ servlet. Scriptlet có d ng <% code %>, đ c chèn vào ph ng th c ạ ượ ươ ứ _jspService c a ủ servlet (đ c g i là ượ ọ service). Khai báo có d ng <%! code %>, đ c chèn vào thân c a l p ạ ượ ủ ớ servlet, nh làư các field c a l p thông th ng.ủ ớ ườ Template text Template text Trong nhi u tr ng h p, ph n l n các trang JSP ch bao g m HTMLề ườ ợ ầ ớ ỉ ồ t nh, đ c bi t nh là ĩ ượ ế ư template text. Có hai ngo i l ph cho quy t cạ ệ ụ ắ “template text đ c chuy n th ng sang HTML t nh”. u tiên, n u chúng taượ ể ẳ ĩ Đầ ế mu n có <% trong lu ng xu t thì chúng ta c n ph i đ t <\% trong ố ồ ấ ầ ả ặ template text. Th hai, n u chúng ta mu n có chú thích trong JSP mà không có trong tàiứ ế ố li u k t qu , dùng:ệ ế ả <% JSP comments %> Chú thích HTML có d ng:ạ <! HTML comments > thì đ c chuy n qua tài li u HTML thông th ng.ượ ể ệ ườ Cú pháp XML Cú pháp XML Trong JSP có r t nhi u ấ ề element có cú pháp XML nh jsp:useBean,ư jsp:include, jsp:setProperty, Tuy nhiên scripting elements l i có hai d ng cúạ ạ pháp sau: JSP Syntax XML Syntax <% = Expressions %> <jsp:expression> Java code </jsp:expression> <% Scriptlets %> <jsp:scriptlet> Java code </jsp:scriptlet> <%! Declarations %> <jsp:declaration> Java code </jsp:declaration> II.1. Các bi n c nh ngh a s n trong JSPế đượ đị ĩ ẵ đ n gi n hoá mã trong các bi u th c hay Để ơ ả ể ứ scriptlets trong JSP, ng i taườ cung c p cho chúng ta chín đ i t ng đã đ c đ nh ngh a tr c, có ng i cònấ ố ượ ượ ị ĩ ướ ườ g i là các đ i t ng ng m đ nh. Do các khai báo trong JSP n m ngoài ph ngọ ố ượ ầ ị ằ ươ th c ứ _jspService (đ c g i b i ượ ọ ở service) nên các đ i t ng này không cho phépố ượ các khai báo truy c p vào.ậ request Bi n này có ki u là ế ể javax.servlet.http.HttpServletRequest, có ph m viạ trong m t yêu c u (request). Nó cho phép chúng ta truy c p vào các tham s c aộ ầ ậ ố ủ request nh lo i ư ạ request (GET, POST, …) và các incoming HTTP header (cookies). response Có ki u là ể javax.servlet.http.HttpServletResponse, có ph m vi toàn trangạ (page). Chú ý r ng vì lu ng xu t thì th ng làm v t đ m cho nên vi c gán mãằ ồ ấ ườ ậ ệ ệ tình tr ng c a HTTP và ạ ủ response header thì h p lý trong JSP, m c dù đi u nàyợ ặ ề thì không đ c phép trong ượ servlet m t khi đã có lu ng xu t nào đ c g i đ nộ ồ ấ ượ ở ế client. out Có ki u ể javax.servlet.jsp.JspWriter và ph m vi trong m t trang (page).ạ ộ Dùng đ g i các thông xu t đ n client. i t ng ể ở ấ ế Đố ượ out đ c dùng th ng xuyênượ ườ trong scriptlets, các bi u th c t đ ng đ c đ a vào lu ng xu t nên hi m khiể ứ ự ộ ượ ư ồ ấ ế c n tham chi u đ n đ i t ng này.ầ ế ế ố ượ session Có ph m vi trong m t phiên truy n (session) và ki u t ng ng làạ ộ ề ể ươ ứ javax.servlet.http.HttpSession. G i v các phiên truy n đ c t o t đ ng vìọ ề ề ượ ạ ự ộ th bi n này v n còn k t n i ngay c ch ng có m t tham chi u incomingế ế ẫ ế ố ả ẳ ộ ế session nào. M t ngo i l là n u chúng ta s d ng thu c tính ộ ạ ệ ế ử ụ ộ session c aủ page directive đ t c các phiên truy n, mà l i c tham chi u đ n bi n ể ắ ề ạ ố ế ế ế session thì s gây ra các l i vào lúc trang JSP đ c d ch thành ẽ ỗ ượ ị servlet. application Bi n này có ki u là ế ể javax.servlet.ServletContext, có ph m vi trong toànạ ng d ng (application). ứ ụ ServletContext l y t m t đ i t ng c u hìnhấ ừ ộ ố ượ ấ servlet là getServletConfig().getContext(). Các trang JSP có th l u tr d li uể ư ữ ữ ệ persistent trong đ i t ng ố ượ ServletContext t t h n là trong các bi n th hi n.ố ơ ế ể ệ ServletContext có các ph ng th c setAttribute và setAttribute mà cho phépươ ứ chúng ta l u tr d li u ư ữ ữ ệ config Bi n này có ph m vi trang (page) và có ki u t ng ng làế ạ ể ươ ứ javax.servlet.ServletConfig. pageContext Bi n này có ki u là ế ể javax.servlet.jsp.PageContext và có ph m vi là trangạ (page). pageContext cho phép m t đi m truy c p duy nh t t i nhi u thu cộ ể ậ ấ ớ ề ộ tính c a trang và cung c p m t n i thu n ti n đ l u tr d li u dùng chung.ủ ấ ộ ơ ậ ệ ể ư ữ ữ ệ Bi n ế pageContext l u tr giá tr c a ư ữ ị ủ javax.servlet.jsp.PageContext cùng v iớ trang hi n hành. Có th xem chi ti t trong ch ng II v JavaBeans.ệ ể ế ươ ề page Bi n này đ ng ngh a v i ế ồ ĩ ớ this và đi u này thì không h u ích trong ngônề ữ ng l p trình Java, có ki u là ữ ậ ể java.lang.Object và có ph m vi trang (page).ạ exception Trong m t trang l i, chúng ta có th truy c p vào đ i t ng ộ ỗ ể ậ ố ượ exception. Bi n này có ki u là ế ể java.lang.Throwable và ph m v là trang (page).ạ ị II.2. Bi u th c trong JSPể ứ Bi u th c trong JSP đ c dùng đ chèn các giá tr tr c ti p vào lu ng xu t.ể ứ ượ ể ị ự ế ồ ấ Nó có d ng sau:ạ <%= Java expressions %> Bi u th c này đ c đ nh tr , đ c chuy n thành chu i, và đ c chèn vàoể ứ ượ ị ị ượ ể ỗ ượ trong trang. S đ nh tr di n ra th i gian runtime (khi trang đ c yêu c u) vàự ị ị ễ ở ờ ượ ầ do đó có đ y đ quy n truy c p các thông tin c a yêu c u này. Ví d sau đây môầ ủ ề ậ ủ ầ ụ t ngày/gi mà trang đ c yêu c u: ả ờ ượ ầ Current time: <%= new java.util.Date() %> Trong Java m i câu l nh đ u có d u ‘;’ k t thúc dòng. T i sao bi u th cỗ ệ ề ấ ế ạ ể ứ trong JSP l i không có d u ‘;’? Vì bi u th c này đ c đ a vào lu ng xu tạ ấ ể ứ ượ ư ồ ấ ch ng h n nh PrintWriter. V i ví d trên có th chuy n vào ẳ ạ ư ớ ụ ể ể servlet nh sau:ư PrintWriter out = response.getWriter(); out.println(“Current time:” + new java.util.Date()); Bi u th c nh là giá tr trong elements khác.ể ứ ư ị Bi u th c có th đ c s d ng trong các thu c tính c a các elementsể ứ ể ượ ử ụ ộ ủ khác. Giá tr t các bi u th c này s đ c tính vào th i gian yêu c u (requestị ừ ể ứ ẽ ượ ờ ầ time). Các elements cho phép s d ng bi u th c trong các thu c tính c a chúngử ụ ể ứ ộ ủ là: Tên Element Tên thu c tínhộ jsp:setProperty name và value jsp:include Page jsp:forward Page jsp:param Value II.3. JSP scriptlets Scriptlets là nh ng đo n mã có ch a b t k mã Java nào n m gi a “<%” vàữ ạ ứ ấ ỳ ằ ữ “%>”. N u chúng ta mu n th c hi n th gì đó ph c t p h n là ch chèn vào m tế ố ự ệ ứ ứ ạ ơ ỉ ộ bi u th c đ n gi n thì JSP ể ứ ơ ả scriptlets cho phép chúng ta thêm b t k đo n mãấ ỳ ạ Java nào vào trang JSP. Các scriptlets này đ c đ a vào ph ng th c ượ ư ươ ứ _jspService (mà đ c g i b i ượ ọ ở service) c a ủ servlet. Có cú pháp: <% Java Code %> II.4. Khai báo trong JSP M t khai báo trong JSP cho phép chúng ta đ nh ngh a các ph ng th cộ ị ĩ ươ ứ ho c các tr ng (bi n) có ph m vi toàn trang. Khai báo s đ c chèn vào trongặ ườ ế ạ ẽ ượ l p c a ớ ủ servlet (bên ngoài ph ng th c ươ ứ _jspService đ c g i b i ượ ọ ở service để x lý m t yêu c u). M t khai báo có d ng sau:ử ộ ầ ộ ạ <%! Java Code %> Các khai báo trong JSP thì không phát sinh ra b t k thông xu t nào, chúngấ ỳ ấ th ng đ c dùng đ liên k t v i các bi u th c ho c scriptlets. Ch ng h n, đâyườ ượ ể ế ớ ể ứ ặ ẳ ạ là m t trang JSP mà in ra s l n truy c p vào trang.ộ ố ầ ậ III. X lý nhúng và chuy n h ng gi a các trangử ể ướ ữ Trong quá trình x lý và chuy n d li u cho form chúng ta có th nhúng vàử ể ữ ệ ể tri u g i nh ng trang JSP khác v i trang hi n hành.Ví d chúng ta có th đ aệ ọ ữ ớ ệ ụ ể ư m t trang HTML ho c JSP vào trong trang JSP hi n t i đ h tr thêm thộ ặ ệ ạ ể ổ ợ ư vi n hay tính n ng b sung nào đó. Hay khi nh n đ c d li u submit tệ ă ổ ậ ượ ữ ệ ừ trình khách, trang JSP nh n đ c d li u có th chuy n h ng ho c tri uậ ượ ữ ệ ể ể ướ ặ ệ g i đ n trang JSP khác.ọ ế III.1. Nhúng file vào trang v i ch thi includeớ ỉ Ch th <%include %> th ng dùng đ dem m t n i dung file .html hayỉ ị ườ ể ộ ộ jsp bên ngoài vào trang hi n hành. Cú pháp s d ng nh sau:ệ ử ụ ư <%@include file = “filename”%> Ví d : Trong ch ng trình chúng ta có s d ng các hàm th vi n ch aụ ươ ử ụ ư ệ ứ trong file Common.jsp. Th vi n này đ c đ a vào trang JSP hi n hành như ệ ượ ư ệ ư sau: <%@include file = “Common.jsp”%> III.2. S d ng th <jsp:include>ử ụ ẻ Ch th ỉ ị %@include % ch dùng đ nhúng các mã ngu n t nh. N u mu nỉ ể ồ ĩ ế ố nhúng k t qu k t xu t t các trang jsp, servlet hay .html khác vào trang hi nế ả ế ấ ừ ệ hành chúng ta s d ng th <jsp:include> v i cú pháp nh sau:ử ụ ẻ ớ ư <jsp:page include page = “filename” flush = “true”/> Ví d : trong ch ng trình s d ng th <jsp:include> đ nhúng k t quụ ươ ử ụ ẻ ể ế ả c a trang Header.jsp, Footer.jsp vào các trang JSP nh sau:ủ ư <jsp:include page = “Header.jsp” flush = “true”/> … <jsp:include page = “Footer.jsp” flush = “true”/> III.3. Chuy n tham s b ng th <jsp:param>ể ố ằ ẻ Khi nhúng trang b ng th <jsp:include> b n có th chuy n tham s choằ ẻ ạ ể ể ố trang đ c nhúng đ nh n đ c k t xu t linh đ ng h n b ng cách s d ng thượ ể ậ ượ ế ấ ộ ơ ằ ử ụ ẻ con <jsp:param>. Ví dụ testParam.jsp <jsp: include page = “testParam2.jsp” flush = “true”> <jsp:param name = “greeting” value = “Welcome”/> <jsp:include> [...]... Phương thức getServletConfig () và getServletInfo () Hai phương thức này nhằm mục đích cung cấp thông tin Phương thức getServletConfig () giúp người sử dụng servlet có được đối tượng ServletConfig chưa các thông tin khởi tạo từ môi trường ngoài đưa vào servlet, getServletInfo () trả về một chuỗi thông tin mô tả ý nghĩa và mục đích c ủa servlet public String getServletInfo (); public ServletConfig getServletConfig... nên thiết kế trang JSP thường đơn giản và dễ bổ sung hơn so với servlet Tuy nhiên đây cũng là yếu tố không nên lạm dụng đối với JSP Nếu chúng ta tập trung tất cả mã Java vào cũng với mã HTML, một khi dự án mỡ rộng và trở nên phức tạp, việc bảo trì và nâng cấp ứng dụng Web với hàng trăm trang JSP sẽ rất khó khăn Trong quá trình phát triển ứng dụng Web theo nhóm, việc trộn lẫn mã JSp sẽ rất khó khăn... điểm của Servlet so với JSP Do mã trang JSP khi thực thi đều được biên dịch ra servlet cho nên t ất c ả những gì servlet làm được cũng đồng nghĩa với trang JSP làm được Vi ết trang JSP đôi lúc đơn giản hơn viết servlet vì không cần phải qua bước đăng ký và biên dịch thủ công Tuy nhiên chúng ta cũng nên biết một số trường hợp phân biệt giữa JSP và servlet và cách sử dụng chúng JSP có thể trộn lẫn mã... out.println (“Goi tham so từ test1 .jsp ); %> testParam2 .jsp III.4 Chuyển tiếp đến trang khác với thẻ Chúng ta sử dụng thẻ để triệu gọi và chuyển dữ liệu cho trang jsp khác xử lý Trong ví dụ sau chúng ta có 3 trang JSP Trang th ứ nh ất hiển thị form... hợp cả hai là tuỳ vào từng dự án và mục đích của chương trình mà chúng ta muốn phát triển Thông thường đối với những dự án nhỏ, yêu cầu thời gian nhanh, JSP là lưa chọn thích hợp nhất Trường hợp với dự án cần sự độc lập và chỉ thiên về xử lý ta nên sử dụng servlet Trường hợp với dự án lớn chúng ta nên kết hợp cả servlet và JSP Mô hình kết hợp tốt nhất giữa servlet và JSP thường được gọi là MCV (Model... Chu trình sống của JSP Tương tự như chu trình sống của servlet, trang JSP cũng có cbhu trình sống xác định tính từ khi hệ thống đọc biên dịch trang JSP, g ọi thực thi và lo ại trang khỏi bộ nhớ Chu trình sống của JSP trải qua các giai đoạn sau: • Biên dịch trang JSP • Nạp trang • Khởi tạo • Thực thi • Dọn dẹp Biên dịch trang JSP Khi trình duyệt yêu cầu trang JSP, ví dụ triệu gọi trang JSP bằng URL http://localhost:8100/Default .jsp. .. rất khó khăn Trong qua trình phát triển ứng dụng Web theo nhóm, vi ệc tr ộn l ẫn mã Java và HTML trong trang JSP cho thấy không hiệu quả Khó có th ể tách r ời giữa công việc viết mã cho ứng dụng và nhóm xây dựng giao diện Mã trang JSP ở dạng thuần văn bản nên thường không che được mã nguồn của logic chương trình Với servlet, tuy phải biên dịch và đăng ký thủ công với trình ch ủ nh ưng bù lại tính bảo... submit value = Login> security .jsp thongbao .jsp Ban dang nhap voi usernam: . ngh JSP, chúng tôi có m t vài so sánh cácướ ế ệ ộ công ngh đ c s d ng trong ng d ng v i các công ngh khác.ệ ượ ử ụ ứ ụ ớ ệ I. So sánh JSP v i các công ngh khác.ớ ệ I.1. JSP v i ASPớ ASP là công. ng th < ;jsp: include> đ nhúng k t quụ ươ ử ụ ẻ ể ế ả c a trang Header .jsp, Footer .jsp vào các trang JSP nh sau:ủ ư < ;jsp: include page = “Header .jsp flush = “true”/> … < ;jsp: include. ơ ằ ử ụ ẻ con < ;jsp: param>. Ví dụ testParam .jsp < ;jsp: include page = “testParam2 .jsp flush = “true”> < ;jsp: param name = “greeting” value = “Welcome”/> < ;jsp: include> <% out.println

Ngày đăng: 07/06/2015, 17:33

Từ khóa liên quan

Mục lục

  • GIỚI THIỆU VỀ NGÔN NGỮ CÀI ĐẶT

    • page

    • request

    • session

    • INSERT:

    • UPDATE:

    • DELETE

Tài liệu cùng người dùng

Tài liệu liên quan