Title: ea JSP,Servlet a XML
1?e???????a JSP,Servlet ?a? XML
2?e??e??µe?a
- ???t?ta 1
- Servlets
- ???t?ta 2Â
- JSP ?a? XML
- Â ???t?ta 3
- ???s?µa Links
- Industry Support
3To Web Layer t?? J2EE
EJBs
??se?? ded?µ???? ? ????? p????
JSP ?, Servlets
Client
Server-Side Objects
4? a???te?t????? JSPs
5???s? ?p?µa???sµ???? ?e??d??
- ? ???s? ap?µa???sµ???? µe??d?? (remote method
invocation, RMI) d?µ?????e? efa?µ???? t?? Java,
p?? µp????? ?a µ???s??? µe ???e? efa?µ???? t??
Java ep??? se ??a d??t??. ? RMI ep?t??pe? se µ?a
efa?µ??? ?a ?a?e? µe??d??? ?a? ?a p??spe?a??e?
µetaß??t?? µ?sa se µ?a ???? efa?µ???, p?? µp??e?
?a e?te?e?ta? se d?af??et??? pe??ß?????ta t??
Java ? se te?e??? d?af??et??? ?e?t???????
s?st?µata, ?a? ?a pe??? a?t??e?µe?a ap? s??d?se??
d??t???.
6? RMI
- ? RMI e??a? ??a? p?? ???p??? µ??a??sµ?? ??a
ep????????a a??µesa se ?ata?eµ?µ??a a?t??e?µe?a
t?? Java ap? ?t? e??a? µ?a ap?? s??des? socket,
epe?d? ?? µ??a??sµ?? ?a? ta p??t?????a
ep????????a? a??µesa se a?t??e?µe?a ??????ta? ?a?
p??-t?p?p?????ta?. ?p????µe ?a s???µ???s??µe µe
??a ???? p????aµµa t?? Java ???s?µ?p????ta? RMI,
????? ?a ??e???eta? ?a ????????µe e? t?? p??t????
se p??? p??t?????? ?a ep????????sete ? µe t?
t??p?.
7RMI ?a? RPC
- ??a ???? µ??f? ep????????a? a??µesa se
a?t??e?µe?a ?a?e?ta? RPC (remote procedure call,
???s? ap?µa???sµ???? d?ad??as?a?), ?p?? µp????µe
?a ?a??s??µe µe??d??? ? ?a e?te??s??µe
d?ad??as?e? se ???a p?????µµata ep??? se µ?a
s??des? d??t???. -
- ? RMI ?a? RPC ????? p???? ????? s?µe?a, ? ????a
d?af??? t??? ?µ?? e??a? ?t? ? RPC st???e? µ???
???se?? d?ad??as?a? ep??? se ??a ?a??d??, µe ta
???sµata ?a pe????? µa?? ? ?a pe?????f??ta? ?at?
t?t??? t??p? ?ste ?a µp????? ?a a?a?atas?e?ast???
st? ???? ????. ??t??eta ? RMI pe??? ???????a
a?t??e?µe?a ep??? st? Internet.
8? ????te?t????? RMI
- ? s??p?? t?? RMI ?ta? ?a e?s?µat?se? ??a
?ata?eµ?µ??? µ??t??? a?t??e?µ???? st?? Java, ?a?
?a ???e? t?? a????ep?d?as? µe ??a ap?µa???sµ???
a?t??e?µe?? t?s? e????? ?s? µe ??a t?p???
a?t??e?µe??.
9T? µp????µe ?a ?????µe µe t?? RMI
- ?a ???s?µ?p????µe ap?µa???sµ??a a?t??e?µe?a
a???ß?? µe t?? ?d?? t??p? p?? ???s?µ?p????µe
t?p??? a?t??e?µe?a (?a ta a?a??t??µe se
µetaß??t??, ?a ta pe???µe sa? ???sµata se
µe??d??? ??p) - ?a ?a???µe µe??d??? se ap?µa???sµ??a a?t??e?µe?a
µe t?? ?d?? t??p? p?? ?????ta? ?? t?p???? ???se??
10??? ?e?t????e?
- ? RMI pe???aµß??e? e?f?e?? µ??a??sµ??? ??a ???s?
µe??d?? se ap?µa???sµ??a a?t??e?µe?a ? ??a
p??asµa ????????? a?t??e?µ???? ? tµ?µ?t??
a?t??e?µ???? µe a?af??? ? µe t?µ?. ?p?s??
pe???aµß??e? p??s?ete? e?a???se?? ??a ?e???sµ?
sfa?µ?t?? d??t??? p?? µp??e? ?a s?µßa????? e??
???eta? µ?a ap?µa???sµ??? ?e?t?????a. - ? RMI ??e? a??et? ep?peda ??a ?a ep?t??e? ?????
a?t??? t??? s??p??? t??, ?a? µ?a ???s? µe??d??
d?ape??? p???? ap? a?t? ta ep?peda ??a ft?se?
e?e? p?? ???e?.
11?a ep?peda t?? RMI
12?a ep?peda Stub ?a? s?e?et??
- ?a ep?peda a?t? s?µpe??f????ta? sa?
?p??at?stata a?t??e?µe?a se ???e p?e???,
ap????ß??ta? t?? ap?µa???sµ??? f?s? t?? ???s??
µe??d?? ap? t?? ???se?? ???p???s??. ?.?. se µ?a
efa?µ??? pe??t? µp????µe ?a ?a??s??µe
ap?µa???sµ??e? µe??d??? µe a???ß?? t?? ?d?? t??p?
p?? ?a???µe t?p???? µe??d???. ?? a?t??e?µe?? stub
e??a? ??a t?p??? ?p??at?stat? ??a t?
ap?µa???sµ??? a?t??e?µe??.
13?? ep?ped? ap?µa???sµ???? a?af????
- ???a? t? ep?ped? p?? ?e????eta? t?? s?s?e?as?a
µ?a? ???s?? µe??d?? ?a? t?? pa?aµ?t???? t?? ?a?
ep?st??fe? t?µ?? ??a µetaf??? ep??? st? d??t??.
14To ep?ped? µetaf????
- To ep?ped? µetaf???? p?? e??a? ? p?a?µat???
s??des? d??t??? ap? t? ??a s?st?µa st? ????. ??
ep?ped? µetaf???? t?? d??t??? ???s?µ?p??e?te
a?e???t?ta ap? ta ???a d??, ?ts? ?ste ?a µp????µe
?a ???s?µ?p???s??µe d?af??et??? e?d? s??d?se??
socket ??a RMI (TCP/ UDP ? TCP µe ???sµ??a ???a
p??t?????a, sa? t? SSL).
15?e??e??µe?a ???t?ta? 2
- ??sa??????? ?????e? sta Servlets
- Servlets VS CGIs
- ?e p????? t??p??? µp????µe ?a ??????µe Servlets
- O ?????? ???? e??? Servlet - Servlet API
- ?a???s?as? ?a?ade??µat?? HelloClient
- ?e??t? pa?ade??µat?? epe?e??as?a? F??µa?
- ??? ?a t?????µe ??a servlet
- Servlet Databases
- ?? ???? µp????µe ?a ?????µe µe ta Servlets
- ???e? ????? st? WWW ??a Servlets
16? te???????a Servlet
17??sa??????? ?????e? sta Servlets
- ?? e??a? ??a Servlet?
- ???a? e??t?te? ??d??a Java (bytecode), p??
t?????? se www servers t?p?? a?t?s?/ap????s?, ?a?
t??? epe?te????? ?at? ??p??? t??p?. - ?a Servlets ???s?µ?p?????ta? se efa?µ???? p??
apa?t??? p??epe?e??as?a, p??? t?? ap?st??? t??
ap????s?? st?? a?t?t?. - ?ts? ta servlets e??a? ?a? a?t? ?at? ??p??? t??p?
CGIs a??? ??aµµ??a se Java, ?p?te ???????µ??? ??a
ta p?e??e?t?µata p?? p??sf??e? a?t? ? ???ssa. - ?a Servlets ap?te???? t? server side p??s?p? t??
Java se a?t??es? µe ta Applets p?? ap?te???? t?
Client Side p??s?p? t?? Java
18CGI (µ?a? ?a? ta a?af??aµe)
- CGI ( Common Gateway Interface )
- ??a d?as??des? (a?e???t?t? ap? t?? ???ssa
p????aµµat?sµ??), p?? ep?t??pe? se ??a server ?a
?e???? ??a e??te???? process t? ?p??? d??eta?
pa?aµ?t???? µ?s? environment variables, t?
command line, ?a? to standard input ?a? ???fe? ta
ded?µ??a st? Standart Output. ( ?.? a?t?s? ??a
t?? d??aµ??? d?µ??????a ?a? ap?st??? µ?a?
?st?se??da?) - ?a?ade??µata ???ss?? p????aµµat?sµ?? (scripting
languages) CGI e??a? Perl, ASP,Visual Basic
JavaScript Server Site a??? ?a? C, Unix Shell
?.t.?
19? d??aµ? t?? Servlet
-
- 1) ???a? platform independent - Write once Serve
Everywhere - Portability - 2) ??µeta??e???ta? p????? t?? Java API, rmi,
corba, database connectivity. - ?????? p??s???? 3rd party components.
- 3) ?p?d?t???t?ta ??t??? - ?????? st?? µ??µ?
µeta?? d?ad?????? ?a?esµ?t?? - 4) ?sf??e?a ??d??a ( Garbage Coollector,
Exception Handling ) - 5) ??µ??t?ta (?legance) (Object Oriented, Clean
Code, Modular, Simple ) - 6) E????o integration ???? ?p??es??? ????
servers - 7) ?e?t??????? µe t? p??t?????? ???P
20Me p????? t??p??? µp????µe ?a ??????µe Servlets?
(1/3)
- ?a???ta? ta Classes ?ate??e?a?
- ?????ta? compile t? p?? ??t? .java file ?a?
t?p??et??ta? t? st?? server - 1 import java.io.
- 2 import javax.servlet.
- 3 import javax.servlet.http.
- 4
- 5 public class HelloClientServlet extends
HttpServlet - 6
- 7 protected void doGet(HttpServletRequest req,
- 8 HttpServletResponse res)
- 9 throws ServletException, IOException
- 10
- 11 res.setContentType("text/html")
- 12 PrintWriter out res.getWriter()
- 13 out.println("ltHTMLgtltHEADgtltTITLEgtHello
Client!lt/TITLEgt" - 14 "lt/HEADgtltBODYgtHello Client!lt/BODYgtlt/HTMLgt")
- 15 out.close()
- 16
- 17
21Me p????? t??p??? µp????µe ?a ??????µe Servlets?
(2/3)
- Server Site Includes (SSI)
- Me t?? p??s???? t?? HTML ?ag ltSERVLETgt.
- ? Server ???e? p??-epe?e??as?a ???e a??e???
.shtml p??? t? ste??e? p?s?. - Ta extensions µp????µe ?a ???s??µe ap? ta
properties t?? ???e server (jhtml,shtml,..) - lthtmlgt
- ltheadgt
- lttitlegtEmbedded Servlet Taglt/titlegt
- lt/headgt
- ltbodygt
- ltSERVLET CODE"Servlet1" CODEBASE"http//serverp
ort/dir" - initParam1initvalue1 initParam2initvalue2 gt
- ltSERVLETgt
- lt/bodygt
- lt/htmlgt
- request
- Servlet1
- .shtml file
- response
22Me p????? t??p??? µp????µe ?a ??????µe Servlets?
(3/3)
- JavaServer Pages JSPs
- ???s???? Snippets servlet code ?ate??e?a? st??
.jsp se??de? (Scriptlets). - ?a??µ???? t??p?? µe ta ASP (Active Server Pages).
?pa?te? e?d??? support - ap? t?? server.
- lthtmlgt
- ltheadgt
- lttitlegtJSP Filelt/titlegt
- lt/headgt
- ltbodygt
- lt if request.getParameter(name) null)
- out.println (You typed nothing)
-
- else out.println(You typed
request.getParameter(name)) - gt
- lt/bodygt
- lt/htmlgt
- request
- .jsp file
- response
23To Servlet API 1.GenericServlet
- ??a ta servlets ???p????? t? interface t??? µ?s?
µ?a? e? t?? d?? p?? ??t? ßas???? ???se?? - GenericServlet (javax.servlet package) - ?e????
servlets a?e???t?ta p??t??????? - HttpServlet (javax.servlet.http package) - http
servlets
24To servlet API 2.HttpServlet
25??????p???s? e??? servlet
- public class BookDBServlet ... public void
init(ServletConfig config) throws
ServletException // Store the
ServletConfig object and log the initialization
super.init(config)
// Open a database connection to prepare for
requests try databaseUrl
getInitParameter("databaseUrl") ... // get user
and password parameters the same way
connection DriverManager.getConnection(databaseU
rl, user, password)
catch(Exception e)
throw new UnavailableException (this,
"Could
not open a connection to the database")
...
26??????ep?d?as? µe t?? pe??t?
- ?ta? ??a servlet d??eta? ??a ???esµa ap? t??
pe??t? (client), ?aµß??e? d?? a?t??e?µe?a
(objects) - - ??a ServletRequest, p?? e?asfa???e? t??
ep????????a ap? t?? pe??t? p??? t?? server. - - ??a ServletResponse, p?? e?asfa???e? t??
ep????????a ap? t? servlet p?s? st?? pe??t?. - (?a ServletRequest ?a? ServletResponse e??a?
interfaces ???sµ??a st? javax.servlet package.) - ?as???? µ???d??
- - doGet
- - doPost
27??a ap?? servlet (Hello Client !)
- ? p?? ??t? class ????e? p????? t? servlet
- public class SimpleServlet extends HttpServlet
-
- / Handle the HTTP GET method by building a
simple web page. - /
- public void doGet (HttpServletRequest request,
- HttpServletResponse response)
- throws ServletException, IOException
-
- String title HelloClient"
- // set content type and other response header
fields first - response.setContentType("text/html")
- // then write the data of the response
- PrintWriter out response.getWriter()
- out.println("ltHTMLgtltHEADgtltTITLEgtHello
Client!lt/TITLEgt" - "lt/HEADgtltBODYgtHello Client!lt/BODYgtlt/HTMLgt")
- out.close()
-
28T? Unload e??? Servlet
- public class BookDBServlet extends
GenericServlet - private BookstoreDB books
- ... // the init method
- public void destroy()
- // Allow the database to be garbage collected
- books null
-
-
29? ?????? ???? e??? Servlet
- ???e servlet ??e? t?? ?d?? ????? ????
- ? server t? ???e? load ?a? t? a?????p??e? Â
- ?? servlet d??eta? µ?d?? ? ?a? pe??ss?te?a client
requests  - ? server t? ???e? remove (???sµ???? servers
e?te???? a?t? t? ß?µa µ??? ?ta? ?????? shut down)
30? ?????? ???? t?? Servlet
31??? ?a t?????µe ??a servlet
- ??ad??as?a
- 1) ?a e??atast?s??µe 1 servlet engine (p.?. Suns
JavaServer). ?e????e? t? JVM - 2) ?a p??µ??e?t??µe t? Java Servlet API ver 2.0
to t? ?p??? pe????e? t?? ???se??
javax.servlet javax.servlet.http - Note
- 1) O Javaserver p?? ?a p??µ??e?t??µe ta pe????e?
s??????. - 2) ?a ??????µe t? servlet class st?? java ?a? ?a
t? ?????µe Compile - 3) ?a t?p??et?s??µe t? class se ??a directory t??
servlet engine (Web directory) - 4) ?a ?e????s??µe t? servlet engine
- 5) To servlet engine t??a a?tap?????eta? se
a?t?se?? p?? ?????ta? st? port 8080 - e.g http//ServerName8080/servlets/Helloworld
- ?ote ?p????µe ?a t?????µe ??a servlet ?ate??e?a?
ap? ??p??a e??a?e?a Java e.g Symantec VisualCafe
3.0 , p?? ??e? d??? t?? servlet engine . - Â
32Servlets Database Connectivity
- ?a Servlets ?p?? ??a ta a??? p?????µµata Java
µp????? ?a s??de???? µe ß?se?? ded?µ???? µe t??
???s? drivers (Se ???e? p?atf??µe? µe JDBC, se
Windows JDBC-ODBC bridge) -  Ta JDBC e??a? database independent. ?? µe a??a??
2 ??aµµ?? ??d??a µp????µe ?a a??????µe t?? Sybase
ß?s? µa? se Oracle, ????? a??a?? t?? ?p????p??
??d??a -  ????µe ep????? ?a epe?e??ast??µe st???e?a ap?
d?af??et???? ?a? a??µ????e?e?? ß?se?? µ?s? t??
??d??a. - ????? p?e????t?µa e??a? ?t? ta Servlets µp?????
?a d?at????? Open Database Connections, µe
ap?t??esµa ?a µp????? p???? requests ?a
e??p??et????? ap? ??a ???esµa, se a?t??es? µe ta
CGI.
33?? ???? µp????µe ?a ?????µe µe ta Servlets ? (1/2)
- ?p?????? p????? t??p?? µe t??? ?p????? ??a
servlet µp??e? ?a ep????????se? µe ??a ????
servlet -
- a) Servlet Chaining ( ?????ta? d?ad????? Post,
Get ) - ?p????µe ?a a??s?d?s??µe µ?a se??? ap? servlets ,
µe - t?? ?d?? t??p? p?? ?a t? ???aµe µe ta CGIs
- Ta µp????se p?,?a e??a? µ?a d?ad????? ?ata????s?
ded?µ????.
34?? ???? µp????µe ?a ?????µe µe ta Servlets ? (2/2)
- ß) Servlet Interface through a Database ( p? ??a
??a Chat Room ) - ?p????µe ?a ?ata?????µe st???e?a ap? ??a servlet
se µ?a ß?s? ded?µ???? ?p??, µp??e? ?a ta
a?a?t?se? ??a ???? servlet ta?t?????a ?a? ?a
d??eta? ? e????a ?t? ep?????????? ta?t?????a.
35?e???????a JSP
36?e??e??µe?a ???t?ta? 3
- ?? JSP se??de? ?a? ta Servlets
- ? ????? t?? JSPs ?a? t?? Servlets
- ?? JSP se??de?
- ??a pa??de??µa JSP µe t? a?t?st???? Java bean
37?? JSP ?a? ta Servlets
- ???s?µ?p?????
- JSP Servlet Container
- J2EE Container
38O ????? t?? JSP ?a? t?? Servlets
- O? Entry point st?? efa?µ????
- O? a?????ep?d?as? µe t?? ??? ??sµ?(s?????? µ?s?
HTTP) - ? Client µp??e? ?a e??a?
- Browser
- Applet
- Desktop application (Java Web Start)
- Wireless Device
- Server application (B2B)
39?? JSP se??de?
- ?? JSP se??de? e??a? textual documents
- p?? pe???????
- ???t?pa ded?µ??a
- ???aµ??? p????f???a
- ?a? ?????? ???s?
- JavaBeans
- Tag Libraries
40??a pa??de??µa JSP se??da? (1/3)
- lt!-- Number Guess Game
- Written by Papadakis Nikos ltnkpap_at_hotmail.comgt,
- http//www.nkpap.com
- --gt
- lt_at_ page import "org.nkpap.test.NumberGuessBean"
gt - ltjspuseBean id"numguess" class"org.nkpap.test.N
umberGuessBean" scope"session"/gt - ltjspsetProperty name"numguess" property""/gt
- lthtmlgt
- ltheadgtlttitlegtNumber Guesslt/titlegtlt/headgt
- ltbody bgcolor"white"gt
- ltfont size4gt
- lt if (numguess.getNamez()null
numguess.getNamez().equals("")) gt - ltform methodgetgt
- What's your Name? ltinput typetext nameNamezgt
- ltinput typesubmit value"Submit"gt
41??a pa??de??µa JSP se??da? (2/3)
- lt else gt
- lt if (numguess.getSuccess()) gt
- Congratulations! ltfont color"FF0000"gtltfont
size"4"gt lt numguess.getNamez() gtlt/fontgt
lt/fontgt You got it. - And after just lt numguess.getNumGuesses() gt
tries.ltpgt - lt numguess.reset() gt
- Care to lta href"numguess.jsp"gttry againlt/agt?
- lt else if (numguess.getNumGuesses() 0) gt
- Welcome ltfont size"5"gtlt numguess.getNamez()
gt lt/fontgt to the Number Guess game.ltpgt -
- I'm thinking of a number between 1 and 100.ltpgt
- ltform methodgetgt
- What's your guess? ltinput typetext nameguessgt
- ltinput typesubmit value"Submit"gt
- lt/formgt
42??a pa??de??µa JSP se??da? (3/3)
- lt else gt
- Good guess, but nope. Try ltbgtlt
numguess.getHint() gtlt/bgt. - You have made lt numguess.getNumGuesses() gt
guesses.ltpgt - I'm thinking of a number between 1 and 100.ltpgt
- ltform methodgetgt
- What's your guess? ltinput typetext nameguessgt
- ltinput typesubmit value"Submit"gt
- lt/formgt
- lt gt
- lt/fontgt
- lt/bodygt
- lt/htmlgt
43??a pa??de??µa JSP se??da? (t? java bean)
- // Number Guess Game
- package num
- import java.util.
- public class NumberGuessBean
- int answer
- boolean success
- String hint
- int numGuesses
- public NumberGuessBean()
- reset()
-
- public void setGuess(String guess)
- numGuesses
- int g
- if (g answer)
- success true
-
- else if (g -1)
- hint "a number next time"
-
- else if (g lt answer)
- hint "higher"
-
- else if (g gt answer)
- hint "lower"
-
-
- public boolean getSuccess()
- return success
-
- public String getHint()
- return "" hint
44?e?? ?ata???e?? t?? a??e???
- ?a a??e?a JSP µp????? ?a ????? e?te t?? ?at?????
.jsp e?te t?? .jspf ? .jsf (s?????? ??a ta
fragments) -
- To top a??e?? ?a p??pe? ?µ?? ?a f??e? t??
?at????? .jsp
45Combining Data
JSP Page
Client
XML Source
???e? p????
?ML
46?e??e??µe?a ???t?ta? 4
47Links
- JSP home page http//java.sun.com/products/jsp
- Servlet home page http//java.sun.com/products/ser
vlet - Java 2 Platform, Standard Edition
http//java.sun.com/products/jdk/1.3 - Java 2 Platform, Enterprise Edition
http//java.sun.com/j2ee - XML in the Java Platform home page
http//java.sun.com/xml - JavaBeans technology home page
http//java.sun.com/beans - XML home page at W3C http//www.w3.org/XML
- HTML home page at W3C http//www.w3.org/MarkUp
- XML.org home page http//www.xml.org
48Industry Support