230 likes | 825 Views
J2EE Overview. Web Programming CSCI 4300. J2EE multi-tier architecture. Servlet : Java class loaded into Web server JSP page : enhanced HTML page that is compiled into a servlet for deployment JavaBean : data holding class (part of Model in MVC). J2EE Architecture.
E N D
J2EE Overview Web Programming CSCI 4300
J2EE multi-tier architecture • Servlet: Java class loaded into Web server • JSP page: enhanced HTML page that is compiled into a servlet for deployment • JavaBean: data holding class (part of Model in MVC)
J2EE Architecture • Applets and special clients: downloaded, connect back to server • Enterprise Java Beans: long-term, application-scope data storage and business logic
Web Application Descriptor, web.xml • Defines servlets and maps them to URL paths • Declares the welcome file for the app • Specifies pages or servlets to handle various errors • Provides initialization parameters to servlets • Provides links to external resources such as database connections
Web.xml prolog <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" http://java.sun.com/dtd/web- app_2_3.dtd> • You can validate your web.xml using the W3C validator service (recommended1) • When you change your web.xml, you must ask Chris or me to reload your web-app
Web.xml root element <web-app> … web application contents. </web-app> • Can contain: • Servlet definitions • Servlet paths • Parameters • Etc, etc.
Servlet element <servlet> <servlet-name>GonzoServlet</servlet-name> <servlet-class>cs4300.Gonzo</servlet-class> </servlet> Or <servlet> <servlet-name>GonzoServlet</servlet-name> <jsp-page>gonzo.jsp</jsp-page> </servlet>
Servlet-mapping element <servlet-mapping> <servlet-name>GonzoServlet</servlet-name> <url-pattern>/gonzo</url-pattern> </servlet-mapping> If the web application root is http://ganesha.cs.uga.edu/myapp, GonzoServlet is accessed at http://ganesha.cs.uga.edu/myapp/gonzo
Welcome page <welcome-file-list> <welcome-file> index.jsp </welcome-file> </welcome-file-list> • Index.jsp is the file served at the URL http://ganesha.cs.uga.edu/myapp
Error page elements <error-page> <error-code>404</error-code> <location>notFound.jsp</location> </error-page> <error-page> <exception-type> org.xml.sax.SaxParseException </exception-type> <location>parseError.jsp</location> </error-page>
Basic JSP page <%@ page contentType="text/html; charset=UTF-8" %> <html> <head> <Static HTML code…> • Declarations • Java expressions • Scriptlets (chunks of Java code) Try to minimize the mixing of HTML with Java (violates Model 2 architecture)
Declaration, scriptlet, and expression <%! int i; String[] userName %> <table border=1> <% for (i=0;i<userName.length;i++) { %> <tr><td><%=i+1 %> </td> <td> <%=userName[i] %> </td></tr> <% } %> </table>
Equivalent HTML from previous <table border=1> <tr><td>1</td><td>Michael Adams</td></tr> <tr><td>2</td><td>Dan Everett</td></tr> <tr><td>1</td><td>Hunter Thompson</td></tr> </table> • But note that we try to avoid such mixing of Java and HTML!
JavaBean • Helper class that holds information • Separates Java code from HTML • Implements Model component of MVC architecture • Useful for holding session data
JavaBean Example • Store functionality: user enters name -email pair for storage in bean • Fetch functionality: user enters name, bean replies with email
JSP-Bean communication • Make <INPUT> element names in JSP correspond to variable names in Bean • Write Bean class with setX() and getX() setter and getter methods • <jsp:setProperty> sends inputs to Bean • <jsp:getProperty> gets values from Bean
Acknowledgements • J2EE architecture diagrams: Sun J2EE tutorial, http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.html • Object scopes: jGuru Java Server Pages fundamentals, http://java.sun.com/developer/onlineTraining/JSPIntro/contents.html#JSPIntro6_3