Invoking Java Code with Invoking Java Code with JSP Scripting Elements

27 274 0
Invoking Java Code with Invoking Java Code with JSP Scripting Elements

Đ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

© 2010 Marty Hall Invoking Java Code with Invoking Java Code with JSP Scripting Elements Ori g inals of Slides and Source Code for Examples: http://courses.coreservlets.com/Course-Materials/csajsp2.html Customized Java EE Training: http://courses.coreservlets.com/ Servlets, JSP, JSF 2.0, Struts, Ajax, GWT 2.0, Spring, Hibernate, SOAP & RESTful Web Services, Java 6. Developed and taught by well-known author and developer. At public venues or onsite at your location. 2 © 2010 Marty Hall For live Java EE training, please see training courses at http://courses.coreservlets.com/. at http://courses.coreservlets.com/. Servlets, JSP, Struts, JSF 1.x, JSF 2.0, Ajax (with jQuery, Dojo, Prototype, Ext-JS, Google Closure, etc.), GWT 2.0 (with GXT), Java 5, Java 6, SOAP-based and RESTful Web Services, Sprin g , g Hibernate/JPA, and customized combinations of topics. Taught by the author of Core Servlets and JSP, More Servlets and JSP and this tutorial Available at public Customized Java EE Training: http://courses.coreservlets.com/ Servlets, JSP, JSF 2.0, Struts, Ajax, GWT 2.0, Spring, Hibernate, SOAP & RESTful Web Services, Java 6. Developed and taught by well-known author and developer. At public venues or onsite at your location. Servlets and JSP , and this tutorial . Available at public venues, or customized versions can be held on-site at your organization. Contact hall@coreservlets.com for details. Agenda • Static vs. dynamic text • Dynamic code and good JSP design • JSP expressions • Servlets vs. JSP pages for similar tasks • JSP scriptlets • JSP declarations • Predefined variables • Comparison of expressions, scriptlets, and declarations XML syntax for JSP pages • XML syntax for JSP pages 4 © 2010 Marty Hall Intro Customized Java EE Training: http://courses.coreservlets.com/ Servlets, JSP, JSF 2.0, Struts, Ajax, GWT 2.0, Spring, Hibernate, SOAP & RESTful Web Services, Java 6. Developed and taught by well-known author and developer. At public venues or onsite at your location. 5 Uses of JSP Constructs • Scripting elements calling servlet Scripting elements calling servlet code directly • Scriptin g elements callin g servlet Simple Application gg code indirectly (by means of utility classes) B • B eans • Servlet/JSP combo (MVC) MVC ith JSP i l • MVC w ith JSP express i on l anguage • Custom tags MVC ith b t t d Complex Application • MVC w ith b eans, cus t om t ags, an d a framework like Struts or JSF 6 Application Design Strategy: Limit Java Code in JSP Pages Code in JSP Pages • You have two options – Put 25 lines of Java code directly in the JSP page – Put those 25 lines in a separate Java class and put 1 line in the JSP page that invokes it in the JSP page that invokes it • Why is the second option much better? – Develo p ment. You write the se p arate class in a J ava p pJ environment (editor or IDE), not an HTML environment – Debugging. If you have syntax errors, you see them immediately at compile time Simple print statements can immediately at compile time . Simple print statements can be seen. – Testin g . You can write a test routine with a loo p that g p does 10,000 tests and reapply it after each change. – Reuse. You can use the same class from multiple pages. 7 Basic Syntax • HTML Text H1 Bl h /H1 – < H1 > Bl a h < /H1 > – Passed through to client. Really turned into servlet code that looks like • out.print("<H1>Blah</H1>"); • HTML Comments – <! Comment > <! Comment > – Same as other HTML: passed through to client • JSP Comments – <% Comment %> – Not sent to client • Escaping <% • Escaping <% – To get <% in output, use <\% 8 Types of Scripting Elements • Expressions F %i% – F ormat: < % = express i on % > – Evaluated and inserted into the servlet’s output. I.e., results in something like out.print(expression) Sitlt • S cr i p tl e t s – Format: <% code %> – Inserted verbatim into the servlet’s _ j s p Service method ( called b y _ jp (y service) • Declarations – Format: < %! code % > Format: %! code % – Inserted verbatim into the body of the servlet class, outside of any existing methods • XML syntax XML syntax – See slides at end of the lecture for an XML-compatible way of representing JSP pages and scripting elements 9 © 2010 Marty Hall JSP Expressions: JSP Expressions: <%= value %> Customized Java EE Training: http://courses.coreservlets.com/ Servlets, JSP, JSF 2.0, Struts, Ajax, GWT 2.0, Spring, Hibernate, SOAP & RESTful Web Services, Java 6. Developed and taught by well-known author and developer. At public venues or onsite at your location. 10 JSP Expressions • Format <% JE i %> – <% = J ava E xpress i on %> • Result – Ex p ression evaluated , converted to Strin g, and p laced p, g,p into HTML page at the place it occurred in JSP page – That is, expression placed in _jspService inside out.print • Examples • Examples – Current time: <%= new java.util.Date() %> – Your hostname: <%= request.getRemoteHost() %> • XML-compatible syntax – <jsp:expression>Java Expression</jsp:expression> – You cannot mix versions within a single page You must You cannot mix versions within a single page . You must use XML for entire page if you use jsp:expression. • See slides at end of this lecture 11 JSP/Servlet Correspondence • Original JSP < H1>A Random Number</H1> <%= Math.random() %> • Representative resulting servlet code public void _jspService(HttpServletRequest request, Htt p ServletRes p onse res p onse ) ppp) throws ServletException, IOException { response.setContentType("text/html"); Htt p Session session = re q uest. g etSession (); p q g (); JspWriter out = response.getWriter(); out.println("<H1>A Random Number</H1>"); out. p rintln(Math.random()); p } 12 JSP Expressions: Example …<BODY> 2S i /2 < H 2 >J S P Express i ons< / H 2> <UL> <LI>Current time: <%= new java.util.Date() %> < LI>Server: < %= application.getServerInfo() % > <LI>Session ID: <%= session.getId() %> <LI>The <CODE>testParam</CODE> form parameter: < %= request.getParameter("testParam") % > </UL> </BODY></HTML> 13 Predefined Variables • request – The HttpServletRequest (1st argument to service/doGet) • response Th H S l R (2 d i /d G ) – Th e H ttp S erv l et R esponse (2 n d arg to serv i ce /d o G et ) • out The Writer (a buffered version of type JspWriter) used to – The Writer (a buffered version of type JspWriter) used to send output to the client • session – The HttpSession associated with the request (unless disabled with the session attribute of the page directive) • application • application – The ServletContext (for sharing data) as obtained via getServletContext(). 14 Comparing Servlets to JSP: Reading Three Params (Servlet) Reading Three Params (Servlet) public class ThreeParams extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { … out.println(docType + "<HTML > \n" + "<HEAD><TITLE>"+title + "</TITLE></HEAD>\n" + "<BODY BGCOLOR=\"#FDF5E6\">\n" + "<H1 ALIGN=\"CENTE R \">" + title + "</H1 > \n" + "<UL>\n" + " <LI><B>param1</B>: " + request.getParameter("param1") + "\n" + " <LI><B> p aram2</B>: " p + request.getParameter("param2") + "\n" + " <LI><B>param3</B>: " + request.getParameter("param3") + "\n" + "</UL > \n" + "</BODY></HTML>"); } } 15 Reading Three Params (Servlet): Result Result 16 Comparing Servlets to JSP: Reading Three Params (JSP) Reading Three Params (JSP) <!DOCTYPE …> < HTML > <HEAD> <TITLE>Reading Three Request Parameters</TITLE> <LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css"> </HEAD> <BODY> <BODY> <H1>Reading Three Request Parameters</H1> <UL> < LI><B>param1</B>: < %= request.getParameter("param1") % > <LI><B>param2</B>: <%= request.getParameter("param2") %> <LI><B>param3</B>: <LI><B>param3</B>: <%= request.getParameter("param3") %> </UL> < /BODY></HTML > 17 Reading Three Params (Servlet): Result (Servlet): Result 18 © 2010 Marty Hall JSP Scriptlets: JSP Scriptlets: <% Code %> Customized Java EE Training: http://courses.coreservlets.com/ Servlets, JSP, JSF 2.0, Struts, Ajax, GWT 2.0, Spring, Hibernate, SOAP & RESTful Web Services, Java 6. Developed and taught by well-known author and developer. At public venues or onsite at your location. 19 JSP Scriptlets • Format – <% Java Code %> • Result Cd ii d b i i l’ jS i – C o d e i s i nserte d ver b at i m i nto serv l et ’ s_ j sp S erv i ce • Example <% – <% String queryData = request.getQueryString(); out.println("Attached GET data: " + queryData); %> %> – <% response.setContentType("text/plain"); %> • XML - compatible syntax XML compatible syntax – <jsp:scriptlet>Java Code</jsp:scriptlet> 20 JSP/Servlet Correspondence • Original JSP <H2>foo</H2> <H2>foo</H2> <%= bar() %> <% baz(); %> • Representative resulting servlet code public void _jspService(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); HttpSession session = request.getSession(); JspWriter out = response getWriter(); JspWriter out response . getWriter(); out.println("<H2>foo</H2>"); out.println(bar()); baz(); } 21 [...]... Sample (XML Syntax) Num1: Math.random()*10< /jsp: expression> double d bl num2 = M th 2 Math.random()*100; d ()*100 < /jsp: scriptlet> Num2: num2< /jsp: expression> private d bl num3 = M th i t double 3 Math.random()*1000; d ()*1000 < /jsp: declaration> Num3: num3< /jsp: expression> ... separate Java class • XML-compatible syntax – Java Code 27 JSP/ Servlet Correspondence • Original JSP Some Heading g() • Better alternative: – Make randomHeading a static method in a separate class 28 JSP/ Servlet Correspondence • Possible resulting servlet code. .. 29 } JSP Declarations: Example JSP Declarations / JSP Declarations Accesses to page since server reboot: 30 JSP Declarations: Result 31 JSP Declarations: the jspInit and jspDestroy Methods • JSP. .. 25 © 2010 Marty Hall JSP Declarations: Customized Java EE Training: http://courses.coreservlets.com/ 26 Servlets, JSP, JSF 2.0, Struts, Ajax, GWT 2.0, Spring, Hibernate, SOAP & RESTful Web Services, Java 6 Developed and taught by well-known author and developer At public venues or onsite at your location JSP Declarations • Format – Code • Result – Code is inserted verbatim... _jspService • JSP Scriptlets – Format: – Inserted verbatim into the servlet’s _jspService method • JSP Declarations – Format: – I Inserted verbatim into the body of the servlet class d b i i h b d f h l l • Predefined variables – request, response, out, session, application • Limit the Java code that is directly in page – Use helper classes, beans, servlet /JSP combo (MVC), JSP expression... Generated with XML Syntax Text Number: Math.random()*10< /jsp: expression> 53 Summary • JSP Expressions – Format: mlns jsp "http //ja a s n com /JSP/ Page"> other namespaces for other custom tag libraries For JSP pages in XML syntax, default content Some Title type is text/xml body bgcolor="#fdf5e6"> / 50 Sample XHTML Page: XML Syntax (sample.jspx) (sample jspx) 51 Sample (XML Syntax)

Ngày đăng: 13/05/2014, 10:59

Từ khóa liên quan

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

Tài liệu liên quan