J2EE Overview J2EE Overview Web Programming Web Programming CSCI 4300 CSCI 4300
Jan 02, 2016
J2EE multi-tier architectureJ2EE 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 ArchitectureJ2EE 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 Application Descriptor, web.xmlweb.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 prologWeb.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 elementWeb.xml root element
<web-app>
… web application contents.
</web-app>
• Can contain:– Servlet definitions– Servlet paths– Parameters– Etc, etc.
Servlet elementServlet 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 elementServlet-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 athttp://ganesha.cs.uga.edu/myapp/gonzo
Welcome pageWelcome 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 elementsError 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 pageBasic 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 Declaration, scriptlet, and expressionexpression
<%! 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 previousEquivalent 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!
JavaBeanJavaBean
• Helper class that holds information
• Separates Java code from HTML
• Implements Model component of MVC architecture
• Useful for holding session data
JavaBean ExampleJavaBean Example
• Store functionality: user enters name -email pair for storage in bean
• Fetch functionality: user enters name, bean replies with email
JSP-Bean communicationJSP-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