Tỡm hiểu về JSP

Một phần của tài liệu Phân tích thiết kế hệ thống quản lý khách sạn Mường Thanh (Trang 36 - 40)

I. Cài đặt hệ thống và cỏc chương trỡnh ứng dụng

3.Tỡm hiểu về JSP

Trong nhiều trửụứng hụùp, phần lụựn caực trang JSP chổ bao gồm HTML túnh, ủửụùc bieỏt nhử laứ

template text. Coự hai ngoái leọ phú cho quy taộc “template text ủửụùc chuyeồn thaỳng sang HTML túnh”. ẹầu tiẽn, neỏu chuựng ta muoỏn coự <% trong luồng xuaỏt thỡ chuựng ta cần phaỷi ủaởt <\% trong

template text. Thửự hai, neỏu chuựng ta muoỏn coự chuự thớch trong JSP maứ khõng coự trong taứi lieọu keỏt quaỷ, duứng:

<%-- JSP comments --%> Chuự thớch HTML coự dáng: <!-- HTML comments -->

thỡ ủửụùc chuyeồn qua taứi lieọu HTML thõng thửụứng.

a.

a. Caực bieỏn ủửụùc ủũnh nghúa saỹn trong JSPCaực bieỏn ủửụùc ủũnh nghúa saỹn trong JSP

ẹeồ ủụn giaỷn hoaự maừ trong caực bieồu thửực hay scriptlets trong JSP, ngửụứi ta cung caỏp cho chuựng ta chớn ủoỏi tửụùng ủaừ ủửụùc ủũnh nghúa trửụực, coự ngửụứi coứn gói laứ caực ủoỏi tửụùng ngầm ủũnh. Do caực khai baựo trong JSP naốm ngoaứi phửụng thửực _jspService (ủửụùc gói bụỷi service) nẽn caực ủoỏi tửụùng naứy khõng cho pheựp caực khai baựo truy caọp vaứo.

request

Bieỏn naứy coự kieồu laứ javax.servlet.http.HttpServletRequest, coự phám vi trong moọt yẽu cầu (request). Noự cho pheựp chuựng ta truy caọp vaứo caực tham soỏ cuỷa request nhử loái request (GET, POST, …) vaứ caực incoming HTTP header (cookies).

response

Coự kieồu laứ javax.servlet.http.HttpServletResponse, coự phám vi toaứn trang (page). Chuự yự raống vỡ luồng xuaỏt thỡ thửụứng laứm vaọt ủeọm cho nẽn vieọc gaựn maừ tỡnh tráng cuỷa HTTP vaứ response

header thỡ hụùp lyự trong JSP, maởc duứ ủiều naứy thỡ khõng ủửụùc pheựp trong servlet moọt khi ủaừ coự luồng xuaỏt naứo ủửụùc gụỷi ủeỏn client.

out

Coự kieồu javax.servlet.jsp.JspWriter vaứ phám vi trong moọt trang (page). Duứng ủeồ gụỷi caực thõng xuaỏt ủeỏn client. ẹoỏi tửụùng out ủửụùc duứng thửụứng xuyẽn trong scriptlets, caực bieồu thửực tửù ủoọng ủửụùc ủửa vaứo luồng xuaỏt nẽn hieỏm khi cần tham chieỏu ủeỏn ủoỏi tửụùng naứy.

session

Coự phám vi trong moọt phiẽn truyền (session) vaứ kieồu tửụng ửựng laứ

javax.servlet.http.HttpSession. Gói về caực phiẽn truyền ủửụùc táo tửù ủoọng vỡ theỏ bieỏn naứy vaĩn coứn keỏt noỏi ngay caỷ chaỳng coự moọt tham chieỏu incoming session naứo. Moọt ngoái leọ laứ neỏu chuựng ta sửỷ dúng thuoọc tớnh session cuỷa pagedirective ủeồ taộc caực phiẽn truyền, maứ lái coỏ tham chieỏu ủeỏn bieỏn session thỡ seừ gãy ra caực loĩi vaứo luực trang JSP ủửụùc dũch thaứnh servlet.

application

Bieỏn naứy coự kieồu laứ javax.servlet.ServletContext, coự phám vi trong toaứn ửựng dúng (application).

ServletContext laỏy tửứ moọt ủoỏi tửụùng caỏu hỡnh servlet laứ getServletConfig().getContext(). Caực trang JSP coự theồ lửu trửừ dửừ lieọu persistent trong ủoỏi tửụùng ServletContext toỏt hụn laứ trong caực bieỏn theồ hieọn. ServletContext coự caực phửụng thửực setAttribute vaứ setAttribute maứ cho pheựp chuựng ta lửu trửừ dửừ lieọu

config

Bieỏn naứy coự phám vi trang (page) vaứ coự kieồu tửụng ửựng laứ javax.servlet.ServletConfig.

pageContext

Bieỏn naứy coự kieồu laứ javax.servlet.jsp.PageContext vaứ coự phám vi laứ trang (page). pageContext

cho pheựp moọt ủieồm truy caọp duy nhaỏt tụựi nhiều thuoọc tớnh cuỷa trang vaứ cung caỏp moọt nụi thuaọn tieọn ủeồ lửu trửừ dửừ lieọu duứng chung. Bieỏn pageContext lửu trửừ giaự trũ cuỷa

javax.servlet.jsp.PageContext cuứng vụựi trang hieọn haứnh. Coự theồ xem chi tieỏt trong chửụng II về JavaBeans.

page

Bieỏn naứy ủồng nghúa vụựi this vaứ ủiều naứy thỡ khõng hửừu ớch trong ngõn ngửừ laọp trỡnh Java, coự kieồu laứ java.lang.Object vaứ coự phám vi trang (page).

exception

Trong moọt trang loĩi, chuựng ta coự theồ truy caọp vaứo ủoỏi tửụùng exception. Bieỏn naứy coự kieồu laứ (adsbygoogle = window.adsbygoogle || []).push({});

java.lang.Throwable vaứ phám vũ laứ trang (page).

b.

b. Bieồu thửực trong JSPBieồu thửực trong JSP

Bieồu thửực trong JSP ủửụùc duứng ủeồ cheứn caực giaự trũ trửùc tieỏp vaứo luồng xuaỏt. Noự coự dáng sau: <%= Java expressions %>

Bieồu thửực naứy ủửụùc ủũnh trũ, ủửụùc chuyeồn thaứnh chuoồi, vaứ ủửụùc cheứn vaứo trong trang. Sửù ủũnh trũ dieĩn ra ụỷ thụứi gian runtime (khi trang ủửụùc yẽu cầu) vaứ do ủoự coự ủầy ủuỷ quyền truy caọp caực thõng tin cuỷa yẽu cầu naứy. Vớ dú sau ủãy mõ taỷ ngaứy/giụứ maứ trang ủửụùc yẽu cầu:

Current time: <%= new java.util.Date() %>

Trong Java moĩi cãu leọnh ủều coự daỏu ‘;’ keỏt thuực doứng. Tái sao bieồu thửực trong JSP lái khõng coự daỏu ‘;’? Vỡ bieồu thửực naứy ủửụùc ủửa vaứo luồng xuaỏt chaỳng hán nhử PrintWriter. Vụựi vớ dú trẽn coự theồ chuyeồn vaứo servlet nhử sau:

PrintWriter out = response.getWriter();

out.println(“Current time:” + new java.util.Date());

* JSP scriptlets * JSP scriptlets

Scriptlets laứ nhửừng ủoán maừ coự chửựa baỏt kyứ maừ Java naứo naốm giửừa “<%” vaứ “%>”. Neỏu chuựng

ta muoỏn thửùc hieọn thửự gỡ ủoự phửực táp hụn laứ chổ cheứn vaứo moọt bieồu thửực ủụn giaỷn thỡ JSP

scriptlets cho pheựp chuựng ta thẽm baỏt kyứ ủoán maừ Java naứo vaứo trang JSP. Caực scriptlets naứy

ủửụùc ủửa vaứo phửụng thửực _jspService (maứ ủửụùc gói bụỷi service) cuỷa servlet. Coự cuự phaựp: <% Java Code %>

* Khai baựo trong JSP * Khai baựo trong JSP

Moọt khai baựo trong JSP cho pheựp chuựng ta ủũnh nghúa caực phửụng thửực hoaởc caực trửụứng (bieỏn) coự phám vi toaứn trang. Khai baựo seừ ủửụùc cheứn vaứo trong lụựp cuỷa servlet (bẽn ngoaứi phửụng thửực _jspService ủửụùc gói bụỷi service ủeồ xửỷ lyự moọt yẽu cầu). Moọt khai baựo coự dáng sau:

<%! Java Code %>

Caực khai baựo trong JSP thỡ khõng phaựt sinh ra baỏt kyứ thõng xuaỏt naứo, chuựng thửụứng ủửụùc duứng ủeồ liẽn keỏt vụựi caực bieồu thửực hoaởc scriptlets.

* The page directive * The page directive

page directive cho pheựp chuựng ta ủiều khieồn caỏu truực cuỷa servlet baống caựch ủửa vaứo caực lụựp,

ủaởt MIME type, …. Moọt pagedirective coự theồ ủửụùc ủaởt baỏt cửự nụi naứo trong trang JSP.

<%@ page import=“java.util.*, com.vinhan.*” %>

page directive ủũnh nghúa moọt soỏ thuoọc tớnh phú thuoọc vaứo trang vaứ giao tieỏp giửừa caực thuoọc

tớnh naứy vụựi JSP container.

language

ẹũnh nghúa ngõn ngửừ kũch baỷn ủửụùc sửỷ dúng trong scriptlets, bieồu thửực vaứ khai baựo. Trong JSP 1.2 laứ phiẽn baỷn mụựi nhaỏt chổ coự hoồ trụù “java” cho thuoọc tớnh naứy do ủoự “java” naứy cuừng laứ giaự trũ maọt ủũnh.

<%@ page language=“java” %>

extends

Thuoọc tớnh naứy chổ ủũnh lụựp cha (superclass) cuỷa servlet seừ ủửụùc phaựt sinh cho trang JSP, coự dáng sau:

<%@ page extends=“package.class” %> (adsbygoogle = window.adsbygoogle || []).push({});

Chuự yự raống khi sửỷ dúng thuoọc tớnh naứy phaỷi heỏt sửực caồn thaọn vỡ tái server coự theồ ủaừ duứng lụựp cha maọt ủũnh.

import

Thuoọc tớnh naứy mõ taỷ caực kieồu saỹn duứng trong mõi trửụứng kũch baỷn (theo java). Chuựng ta coự theồ

import vaứo tửứng lụựp hoaởc caỷ moọt goựi (package). <%@ page import=“package.class | package.*” %>

Neỏu import vaứo nhiều lụựp hay packages thỡ caựch nhau daỏu “,”.

session

Thuoọc tớnh session kieồm soaựt lieọu coự hay khõng moọt trang tham gia vaứo HTTP session. Coự hai giaự trũ “true” vaứ “false”. Maọt ủũnh laứ “true”, chổ ra raống bieỏn ngầm ủũnh session nẽn ủửụùc noỏi keỏt vụựi session hieọn haứnh. Giaự trũ “false” coự nghúa raống chaỳng coự session naứo ủửụùc sửỷ dúng tửù ủoọng vaứ neỏu coỏ truy caọp vaứo bieỏn session seừ traỷ loĩi vaứo luực trang ủửụùc dũch thaứnh servlet.

buffer

Thoọc tớnh naứy xaực ủũnh kớch thửụực cuỷa vuứng ủeọm ủửụùc sửỷ dúng bụỷi bieỏn out. Coự dáng sau: <%@ page buffer=“none | sizekb” %>

Thuoọc tớnh naứy coự giaự trũ maọt ủũnh laứ “8kb”, giaự trũ “none” chaỳng coự vuứng ủeọm naứo ủửụùc caỏp vaứ taỏt caỷ dửừ lieọu xuaỏt seừ ủửụùc ghi trửùc tieỏp qua ServletResponse, PrintWriter.

autoFlush

Xaực ủũnh lieọu luồng xuaỏt coự vuứng ủeọm ủửụùc tửù ủoọng flush (giaự trũ “true” maọt ủũnh) khi vuứng ủeọm ủầy hay seừ tung ra moọt ngoái leọ khi vuứng ủeọm traứn (“false”).

Chuự yự raống seừ khõng hụùp lyự neỏu ủaởt autoFlush=“false” khi buffer=“none”.

isThreadSafe

Xaực ủũnh mửực ủoọ an toaứn cuỷa tieồu trỡnh (thread) ủửụùc caứi ủaởt trong trang (vụựi giao tieỏp

SingleThreadModel), “true” laứ giaự trũ maọt ủũnh.

info

ẹũnh nghúa moọt chuoĩi coự theồ truy xuaỏt tửứ servlet baống phửụng thửực getServletInfo(). <%@ page info=“Some Message” %>

errorPage

Thuoọc tớnh naứy xaực ủũnh moọt trang JSP nẽn baỏt kyứ caực ngoái leọ naứo ủửụùc tung ra nhửng khõng baột ngoái leọ naứy trong trang hieọn haứnh.

Ngoái leọ tung ra seừ coự saỹn trong bieỏn ngầm ủũnh exception.

isErrorPage

Xaực ủũnh trang JSP hieọn thụứi coự theồ hoát ủoọng nhử moọt trang loĩi cho moọt trang JSP khaực. Giaự trũ “false” laứ maọt ủũnh cho thuoọc tớnh naứy.

contentType

Thuoọc tớnh naứy gaựn Content-Type cho response header, mõ taỷ kieồu MIME cuỷa taứi lieọu ủửụùc gụỷi ủeỏn client. Thuoọc tớnh contentType coự moọt trong hai dáng sau:

<%@ page contentType=“MIME-Type” %>

<%@ page contentType=“MIME-Type; charset=Character-Set” %>

Moọt soỏ kieồu MIME-Type thửụứng duứng: “text/html”, “text/xml”, “text/plain”, “image/gif”, “image/jpeg”.

Một phần của tài liệu Phân tích thiết kế hệ thống quản lý khách sạn Mường Thanh (Trang 36 - 40)