Tomcat tutorail

19
Tomcat and Servlets Haifeng Liu

Transcript of Tomcat tutorail

Page 1: Tomcat tutorail

Tomcat and Servlets

Haifeng Liu

Page 2: Tomcat tutorail

Tutorial Overview

Tomcat OverviewSetting Up and Running Tomcat on CDFInstalling and Running Servlets on CDFSetting up Sysdeo Eclipse Tomcat Launcher pluginFAQ?

Page 3: Tomcat tutorail

Tomcat Overview

Tomcat is the servlet containerHistory:

ASF: JServ – performance Sun: Servlet Engine -- specification

Requirements and Quality Goals:Strict adherence to Sun’s JSP/Servlet specification, Interoperability, Modifiability, Performance, Scalability, High-Availability, Security, …

--- Jakarta Tomcat

Page 4: Tomcat tutorail

Tomcat System

Page 5: Tomcat tutorail

Setting Up Tomcat on CDF

Status: Installed with user privileges in /u/csc309h/lib/brad/tomcat-5.0.27

Step 1 – go to website, read instructionshttp://www.cs.toronto.edu/~delara/courses/csc309/resources/csc

309guide.html#WebServerStep 2 – download the tar file tomcat.tar.gzStep 3 – untar it (tar xvz tomcat.tar.gz) and copy the files into a working directory which is refered as

e.g. ~/csc309/Inside tomcat:

Bin, conf, logs, webapps, work

Page 6: Tomcat tutorail

Start Tomcat Server

Step 1 -- cd ~/csc309/tomcat/binStep 2 -- Run the script start.sh (may need to chmod a+x *.sh ) ./start.shStep 3 -- Enter the port number. Tomcat will use 3 ports, the number entered and the next two (e.g., if you are assigned port 32000, tomcat will use 32000, 32001, 32002). Step 4 – check /bin/ps -ef | grep your_user_idStep 5 – view http://localhost:your_port_number

Page 7: Tomcat tutorail
Page 8: Tomcat tutorail

Stop Tomcat Server

To stop your server, run bin/stop.sh. Always remember to stop your server before logging off CDF.

Page 9: Tomcat tutorail

Directory Structure

Bin – Startup/shutdown scripts and other useful files. Conf – Configuration files, including modules.xml, server.xml, and a number of apps-<name>.xml. Logs – event log file for each dayWebapps – web application filesWok -- intermediate files (such as compiled JSP files) during its work. If you delete this directory while Tomcat is running you will not be able to execute JSP pages!

Page 10: Tomcat tutorail

Installing and Compiling Servlets

Step 1 -- Download the sample files, untar it, put into webappsStep 2 -- Compile the Java class

Include the following jar file in your CLASSPATH /u/csc309h/lib/tomcat-5.0.27/common/lib/servlet-api.jar. setenv CLASSPATH ${CLASSPATH}: /u/csc309h/lib/tomcat-5.0.27/common/lib/servlet-api.jarcd ~/csc309/tomcat/webapps/csc309/WEB-INF/classesCompile the servlet javac HelloWorld.java

Step 3 -- Start Tomcat Step 4 – Start Browser: http://127.0.0.1:yourPortNumber/csc309/servlet/HelloWorld

Page 11: Tomcat tutorail

HelloWorld Interface

Page 12: Tomcat tutorail

Adding a Servlet to a Web ApplicationStep 1 – Download PrintEnv.java and copy it to ~/csc309/tomcat/webapps/csc309/WEB-INF/classesStep 2 -- Compile PrintEnv.javaStep 3 – Add the following entries to the application descriptor located at ~/csc309/tomcat/webapps/csc309/WEB-INF/web.xml. <servlet>

<servlet-name>PrintEnv</servlet-name> <servlet-class>PrintEnv</servlet-class>

</servlet> <servlet-mapping>

<servlet-name>PrintEnv</servlet-name> <url-pattern>/servlet/PrintEnv</url-pattern>

</servlet-mapping>Step 4 -- Restart Tomcat Step 5 – Open browser to http://127.0.0.1:yourPortNumber/csc309/servlet/PrintEnv

Page 13: Tomcat tutorail

PrintEnv Interface

Page 14: Tomcat tutorail

Sysdeo Eclipse Tomcat Launcher plugin

Starting, stopping and restarting Tomcat 4.x, 5.0.x, 3.3 Registering Tomcat process to Eclipse debugger Creating a WAR project (wizard can update server.xml file) Adding Java Projects to Tomcat classpathSetting Tomcat JVM parameters, classpath and bootclasspathExporting a Tomcat project to a WAR File Choosing Tomcat configuration file Capability to use a special Tomcat classloader to have classes in several java projects loaded at the same classloader level than classes in a Tomcat project, see readmeDevLoader.html (Thanks Martin Kahr)

Page 15: Tomcat tutorail

Software Prerequisite

Tomcat Server –”http://jakarta.apache.org/tomcat/”Eclipse 3.X –“http://www.eclipse.org/downloads/index.php ”Sysdeo Eclipse tomcat Launcher plugin --”http://www.sysdeo.com/eclipse/tomcatPlugin.html”

Page 16: Tomcat tutorail

Setup Tomcat in Eclipse

Enable tomcatGo to the menu "Window-> Preferences" go to "Tomcat" and select your Tomcat version adjust the field "Tomcat Home" to point to the install directory

Add a new userscroll down the menu point "Tomcat" and click the item "Tomcat Manager App" add a username and a password click on "Add user to tomcat-users.xml"

Test Start Tomcat Server

Page 17: Tomcat tutorail

HelloWorld ExampleOpen a new project

select "Tomcat Project"..., click Next buttoncall our new project "Hello World" adjust URI http://localhost:8080/HelloWorld/hello

create a new class named HelloServlet in the directory WEB-INF/srccreate the file web.xml in the directory WEB-INF (Note: not in WEB-INF/src!!!) Start browser "http://localhost:8080/HelloWorld/hello"

Page 18: Tomcat tutorail

HelloServlet

import java.io.*;import javax.servlet.http.*;import javax.servlet.*;public class HelloServlet extends HttpServlet {

public void doGet (HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException {

PrintWriter out = res.getWriter();out.println("Hello, Brave new World!");out.close();

}}

Page 19: Tomcat tutorail

Web.xml

<!DOCTYPE web-app PUBLIC'-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN''http://java.sun.com/dtd/web-app_2_3.dtd'>

<web-app><servlet>

<servlet-name>hello</servlet-name><servlet-class>HelloServlet</servlet-class>

</servlet><servlet-mapping>

<servlet-name>hello</servlet-name><url-pattern>/hello</url-pattern>

</servlet-mapping></web-app>