40
Objectives:1. Investigate the Web application deployment descriptor 2. Install and deploy Tomcat and struts 3. Design and deploy a struts application Struts Deployment

Objectives:1. Investigate the Web application deployment descriptor 2. Install and deploy Tomcat and struts 3. Design and deploy a struts application Struts

  • View
    229

  • Download
    2

Embed Size (px)

Citation preview

Objectives: 1. Investigate the Web application deployment descriptor

2. Install and deploy Tomcat and struts

3. Design and deploy a struts application

Struts Deployment

Topics

To learn how to create and deploy WAR files Deployment Descriptor (web.xml) Installing and Configuring Tomcat Installing Struts The struts-config.xml file Designing a Struts Application Deploying a Struts Application

Packaging a Web Application for

Deployment

Servlet Specification 2.2 specified the use of a single web archive file - *.war

An extension of the .jar fileHas the same form as the .zip file (.jar and .war)

Why use a WAR file?

Simplify deploymentEasy to installSingle file to each server in cluster

Improve securityNo access between Web applications

Packaging for third-party applications

Structure of a WAR File

beans

WEB-INF

classes

Packagedirectories

lib

web.xml

Class files

JAR files

JSP pages, HTML documents, image files

JSP pages, HTML documents, image files

app.war

Class files

Contentdirectories

tlds TLD files

Creating a WAR file

Use the jar command line tool Use .war for the extension of the file name

Accessing the WAR File

All WAR contents are associated with a top-level URL directory:

http://myserver.com/app/…URLs for assets in top-level and content

directories are assigned automatically.URLs for WEB-INF assets must be explicitly

specified.

Configuring WEB-INF Assets

Primarily controlled via the deployment descriptor:

WEB-INF/web.xmlDeployment descriptor is an XML document:

<?xml version=”1.0” encoding=”UTF-8” ?><!DOCTYPE web-app PUBLIC -//Sun Microsystems, Inc.//DTD Web Application

2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">

Has the root element of:<web-app>…

Elements of a Web Application

Application configuration Context parameters Servlet configuration Session Configuration Servlet Mapping MIME types Default pages Custom Tag Libraries

Application Configuration

<icon> <small-icon>wdk/widget/image/illustration/button/

dctmlogo16x16.gif</small-icon>

<large-icon>wdk/widget/image/illustration/button/dctmlogo32x32.gif</large-icon>

</icon>

<display-name>Sample Library Services Client </display-name>

<description>This web application provides an example of how to leverage library services.</description>

Context Parameters

Name/value pairs that become available in the ServletContext object using the getInitParameter() method <context-param> <param-name>dbUser</param-name> <param-value>joe</param-value> </context-param> <context-param> <param-name>dbPwd</param-name> <param-value>zebra</param-value> </context-param>

Servlet Configuration

A web application’s servlets are specified in the deployment descriptor via the <servlet> tag and its subelements

Mandatory tags for each servlet definintion:<servlet-name> tag - specifies a logical name for the servlet<servlet-class> tag - specifies the Java class that

implements the servlet Optional tags:

<description>, <display-name>, <icon> <init-param> parameters passed to the init() method of the

servlet <load-on-startup> signifies that the servlet should be loaded

into JVM at container startup. Value of the element signifies its relative order. It may be an empty tag

Servlet Configuration

<servlet> <servlet-name>MyGreatServlet</servlet-name> <servlet-class>

com.BigCompany.RJServlet </servlet-class> <description>Great Servlet</description> <init-param> <param-name>GreatnessLevel</param-name> <param-value>6</param-value> </init-param> <load-on-startup>1</load-on-startup></servlet>

Servlet Mapping

Used to hide the implementation of the application by giving a servlet a logical name in the form of a URI

<web-apps>

<servlet-mapping><servlet-name>MyGreatServlet</servlet-name>

<url-pattern>/GServ</url-pattern>

</servlet-mapping>

</web-apps>

Session Configuration

Sets the session timeout

<web-app> … <session-config>

<session-timeout>60</session-timeout> </session-config> …</web-app>

MIME Types

Maps file extensions to MIME Types

<mime-mapping> <extension>pdf</extension> <mime-type>application/pdf</mime-type> </mime-mapping>

<mime-mapping> <extension>html</extension> <mime-type>text/html</mime-type> </mime-mapping>

Default Pages and Distributable Servlets

<welcome-file-list><welcome-file>default.html</welcome-file>

<welcome-file>index.jsp</welcome-file>

<welcome-file-list>

<distributable/>

<welcome-file-list> specifies which file within an application directory should be displayed when a URL is requested that contains only a directory

<distributable/>

has no content signals whether an application can run in multiple JSP

containers simultaneously

Custom Tag Libraries

<webapp>…

<taglib><taglib-uri>/greatTags</taglib-uri>

<taglib-location>/WEB-INF/tlds/greatTags_1_0.tld</taglib-location>

</taglib>

</webapp>

Tomcat JSP/Servlet Container

Open-source Java-based Web application container

Initially through the Jakarta project of the Apache Software Foundation

Runs servlets on Catalina container portion Runs JSP on Jasper container portion Sun’s reference implementation for servlet and

JSP specifications http://tomcat.apache.org

Installing and Configuring Tomcat

Make sure a current and compatible version of the Java SDK, Standard Edition is installed Acquired at http://java.sun.com/javase

Extract Tomcat server from downloaded archive Set JAVA_HOME to location of Java SE

installation

Testing Tomcat Installation

Open up a command prompt window or shell Navigate to the Tomcat installation directory Start the Tomcat server

bin\startup

Open your browser and type in the following URL

http://localhost:8080

Verify JSP Container Operation

Select JSP Examples link

Jakarta Struts Project

Open-source Java-based Web application development framework

Initially developed through the Jakarta project of the Apache Software Foundation

Provides control layer based on standard technologies Servlets JavaBeans ResourceBundles XML

http://struts.apache.org

Supporting Web Applications with Struts

Extract Struts files from downloaded archive

For each Web Application Copy JAR files to /WEB-INF/lib directory Make sure a web.xml file exists in /WEB-INF Create a struts-config.xml file and store in /WEB-INF

• Deployment descriptor for Struts applications• Integrates the MVC components into a working

application

Struts and JBoss

Go to http://struts.apache.org Download version 1 release Extract Struts files from downloaded archive

Copy struts-taglib and struts-core file to: $JBOSS/server/all/deploy/jboss-web.deployer $JBOSS/server/all/lib

Copy all commons*.jar files to: $JBOSS/server/all/deploy/jboss-web.deployer

When creating Web application: copy struts tlds to WEB-INF/tlds directory in

application war file create appropriate web.xml file add struts-config.xml file to WEB-INF directory

A basic struts-config.xml file

<?xml version=“1.0” encoding=“ISO-8859-1” ?><!DOCTYPE struts-config PUBLIC “-//Apache Software

Foundation//DTD Struts Configuration 1.3//EN” “http://jakarta.apache.org/struts/dtds/struts-config_1_3.dtd”>

<struts-config>

<message-resourcesparameter=“company.ApplicationResources” />

</struts-config>

Tag-Library Descriptors

To use specialized struts tags Specify a taglib entry in web.xml Copy struts-html.tld to /WEB-INF/tlds

<taglib> <taglib-uri>/struts-html.tld</taglib-uri> <taglib-location>/WEB-INF/tlds/struts-

html.tld</taglib-location></taglib>

Steps for Designing a Struts Application

Define and create all the Views Add ActionForms used to support views

Create the controller components ActionServlet Action

Define View-Controller relationships in struts-config.xml

Describe the struts components to the Web server web.xml

Run the application

Creating the Views

Views composed ofHTML JSPStruts tag libraries

• Bean• HTML• Logic

Struts-specific Form Tags

The struts HTML tag library offers struts-specific functionality

<html:form action=“/Lookup.do">Product ID: <html:text property="product" /><br>

<html:submit/></html:form>

Flow of Control

Upon submission of JSP View, ActionForm object will be created, populated with the request parameters, and stored in the session.

The action referenced by the <html:form/> will be invoked and passed a reference to the populated ActionForm.

ActionForm

Properties are populated by request parameters of the same name

Struts uses JavaBean reflection Design patterns must be followed

private String product;

public void setProduct(String prod);

public String getProduct();

reset() method restores baseline state

Define the Form Bean

Make the form bean known to the struts framework

Declare the following element in struts-config.xml

<form-beans>

<form-bean name="lookupForm" type="ssps.LookupForm"/>

</form-beans>

Create the Controller

Composed of two components A single implementation of

org.apache.struts.action.ActionServlet• Dispatching component

One or more implementations of org.apache.struts.action.Action

• Performs business logic• Entry point is execute() method

Controller-View Flow

Within the execute() method, targets are determined which dictate the next page in the Web application sequence.

The execute() method returns an instance of ActionForward

..target = new String(“success”);

return (mapping.findForward(target));

Deploying Actions

Add an entry to the <action-mappings> section of struts-config.xml

<action path="/Lookup"type="ssps.LookupAction"name="lookupForm”input="/prompt.jsp">

<forward name="success" path="/results.jsp"/><forward name="failure" path="/prompt.jsp"/></action>

Deploy the Struts Application

Define the ActionServlet to the Web application Inform the ActionServlet of the location of

struts-config.xml Specify that the ActionServlet is preloaded

Deploy the Struts Application – web.xml

<servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet

</servlet-class> <init-param><param-name>config</param-name><param-value>/WEB-INF/struts-config.xml</param-value>

</init-param> <load-on-startup>1</load-on-startup></servlet>

Deploy the Struts Application – web.xml

<servlet-mapping>

<servlet-name>action</servlet-name>

<url-pattern>*.do</url-pattern>

</servlet-mapping>

Review

To learn how to create and deploy WAR files Deployment Descriptor (web.xml) Installing and Configuring Tomcat Installing Struts The struts-config.xml file Designing a Struts Application Deploying a Struts Application