1 / 20

CS320 Web and Internet Programming JSP Scripting Elements and Page Directives

CS320 Web and Internet Programming JSP Scripting Elements and Page Directives. Chengyu Sun California State University, Los Angeles. Java Server Page (JSP). Why? It’s tedious to generate HTML using println() Separate presentation from processing How? Java code embedded in HTML documents.

weavere
Télécharger la présentation

CS320 Web and Internet Programming JSP Scripting Elements and Page Directives

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS320 Web and Internet ProgrammingJSP Scripting Elements and Page Directives Chengyu Sun California State University, Los Angeles

  2. Java Server Page (JSP) • Why? • It’s tedious to generate HTML using println() • Separate presentation from processing • How? • Java code embedded in HTML documents

  3. HelloJSP1.jsp <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD><TITLE>Hello JSP 1</TITLE></HEAD> <BODY>A JSP without J or S.</BODY> </HTML>

  4. HelloJSP2.jsp <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD><TITLE>JSP Hello World</TITLE></HEAD> <BODY>Hello World on <%= new java.util.Date() %>. </BODY> </HTML>

  5. How Does JSP Work? • Look under $CATALINA_HOME/work/Catalina/localhost/context_name convert compile execute JSP Servlet ByteCode automatically done by server

  6. Some Simple Observations about the JSP/Servlets • In package org.apache.jsp • _jspService() handles everything • replaces service() in HttpServlet • What happened to doGet(), doPost(), ...?? • HTML text  out.write(...)

  7. JSP Components • HTML template text • Code elements of Java • Directives • Comments • Scripting elements • Beans • Expression language • Custom tag libraries

  8. Directives • Affect the overall structure of the JSP • <%@typeattr=“value” ...%> • Three types of directives • page • include • taglib

  9. Some Page Directives <%@ page import=“java.util.*, java.util.zip.*” %> <%@ page contentType=“text/html” %> <%@ page pageEncoding=“Shift_JIS” %> <%@ page session=“false” %> <%-- default is true --%>

  10. Comments • <%-- Hidden Comments --%> • <!-- Output (HTML) Comments -->

  11. JSP Scripting Elements • JSP Expressions • JSP Scriptlets • JSP Declarations

  12. JSP Expressions • <%= Java expression %> • What’s an expression?? <%= expression %> in JSP out.write( expression ) in _jspService()

  13. Example: Add.jsp • Add two integer parameters and display the sum

  14. Pre-defined Variables • request, response, out • session, application • config, pageContext • page The same request, response, session etc. that are used in servlets – see the Servlet API documentation for what you can do with them.

  15. JSP Scriptlets • <% Java code %> • All code goes inside_jspService()

  16. Example: Add.jsp Again • Add the code to validate the parameters

  17. Another Scriptlet Example <% if( Math.random() < 0.5) { %> <H1>Have a <I>nice</I> day!</H1> <% } else { %> <H1>Have a <I>lousy</I> day!</H1> <% } %>

  18. JSP Declarations • <%! class variables or methods %> • All code goes outside_jspService()

  19. Example: RequestCounter.jsp • Initialize a counter as a class variable • Increment the counter each time the JSP is requested

  20. About JSP Scripting Elements • There is a straightforward mapping between JSP with scripting elements and servlet • Mixing presentation and processing • hard to debug • hard to maintain • No clean and easy way to reuse code

More Related