Zongfeng Northwestern University Computer Department Masters in December 2001 As Java's popularity, its application on the web is getting wider and wider, Tomcat is an open source servlet container, the application prospect is getting wider, this article will tell you Tomcat Some knowledge. I: Introduction Tomcat is an important subproject in the Jakarta project, which is selected as the most innovative Java Product in 2001, and it is a SUN officially recommended servlet and JSP. Containers (specifically see http: //java.sun.com/products/jsp/tomcat/), so it is more and more loved by software companies and developers. The latest specifications for servlet and JSP can be implemented in the new version of Tomcat. 2: Installation and configuration of Tomcat latest version is 4.0.1, this version uses a new servlet container Catalina, fully implements servlet2.3 and jsp1.2 specification. Note that your system must have JDK1.2 or higher before installation. (1): Installation 1: Windows platform download jakarta-tomcat-4.0.1.exe from the Tomcat website, install Tomcat, install the Tomcat, install it, you will automatically look for your JDK and JRE when installing steps. 2: Linux platform Download jakarta-tomcat-4.0.1.tar.gz, unzip it to a directory. (2): Configuring the Tomcat need to set the java_home variable set java_home = c: / jdk (Win98, use in msdos mode, or put it in autoexec.bat) Export java_home = / usr / local / jdk (use under Linux, put it under Linux In / etc / bashrc or / etc / profile) (3): After running, you can run Tomcat servers, enter Tomcat's bin directory, Win98 starts Tomcat with Startup, linux with startup.sh, correspondingly closed Tomcat command is Shutdown and Shutdown.sh. Enter http: // localhost: 8080 / test in the browser after startup, because the Tomcat itself has a web server function, so we don't have to install Apache, of course, it can also be integrated with Apache, which will be introduced below. Below you can test their own JSP and servlet examples.
Three: Application (1): Directory Structure Tomcat directory structure is as follows: Directory Name Introduction BIN Starts and Off Tomcat Script Conf Contains Different Profiles, Server.xml (Main Profile of Tomcat) and Web.xml Work Store JSP Compile After the Class file WebApp stores the application example, the application you want to deploy will also put it in this directory log file lib / japser / common these three directory mainly store the JAR file required by Tomcat (2): Server .XML configuration Introduction Next We will tell the basic configuration information in this file, more specific configuration information See Tomcat's document element name property interpretation Server port specifies a port, this port is responsible for monitoring shutdown request Shutdown Specifying the command sent to the port String service name Specifies the port number of the server to create the server side to create the port number to create in this fracture, and the client and service is listened to the number of processes created when the client's request minprocessors server starts. The maximum number of processing requests that MaxProcessors can create Enablelookups If true, you can get the actual host name of the remote client by calling the repaSt.getRemoteHost (). If false does not perform DNS queries, but return it IP Address RedirectPort Specifies that the server is processing the HTTP request to receive an SSL transfer request, the port number acceptCount, which can be placed when all the threads that can be used, can be placed in the process queue, exceeding this The number of requests will not process the timeout (in milliseconds) of the timeout (in milliseconds) Engine (in milliseconds), which specifies the default processing request, which specifies the default processing request, which specifies the request processor, receive and processing from the Connector. At least one of the name attribute values of one of the host elements is the same Context (represents a web application, usually a WAR file, the specific information of WAR, see the path to the servlet specification) DOCBASE application, or the path to the WAR file is stored in Path Representation The prefix of this web application URL, such requested URL is http: // localhost: 8080 / path / **** Relo This property is very important. If True, Tomcat automatically detects the application's / web-inf / lib and / web-inf / classes directory, automatically loads new applications, we can do not wear Tomcat In the case, change the application host (representing a virtual host) Name Specifies the Basic Directory of the Host Name AppBase application, that is, the directory where the application is placed. If TRUE is true, Tomcat will automatically decompress the WAR file, otherwise it is not extracted, directly from the WAR file directly ClassName Specifies the class name of the logger used by the application logger (indicating log, debugging, and error message), which must implement org.apache.catalina.logger interface prefix Specifies the prefix for the log file specified for the suffix of the log file TimeStamp if true Then, the log file name is to join the time, such as the following example: localhost_log.2001-10-04.txt realm (indicating that the username, password, and ROLE database) classname Specifies the class name used by Realm, this class must implement org.apache .catalina.realm interface Valve (functionality and Logger is similar,
Its Prefix and SUFFIX attributes interprets and loggers) ClassName Specifies the class names used by Valve, such as using org.apache.catalina.valves.accessLogvalve class to log application access information Directory specified Log file storage Pattern has two Value, Common mode records the remote host name or IP address, user name, date, first line requested string, HTTP response code, and the number of bytes sent. Combined approaches more than the value recorded by the Common mode: 1: After I test, I set up PATH = / "/", reloadable = true, then put a WAR file to the webapps directory, the result of Tomcat can't detect this file ( Tomcat can be restored, and this file is decompressed, and Tomcat will automatically detect this new application. If the WAR file cannot be automatically detected, we can use the methods described below to deploy applications. 2: In the default server.xml, the Realm element only sets a className property, but in this file, several examples connected via JDBC to the database (commented), we can implement container security through Realm elements. Container Managed Security. 3: There are still some elements. We have not introduced, such as parameter, loader, you can get information about these elements through Tomcat documents. (3) Management 1: Before confirming specific management, let's add a user to Tomcat, so that this user has permission to manage. Open the Tomcat-Users.xml file under the conf directory, add the following line in the appropriate location: Note: The last part of this line must be />, Tomcat's document, if there is no / symbol, Tomcat restarts Applications will not be accessed. You can see the details of this error by logs / catalina.out file.
Then recover Tomcat, enter http: // localhost: 8080 / manager /, will pop up in the browser, enter the username and password above.
2: Application list
Enter http: // localhost: 8080 / manager / list in your browser, the browser will display the following information:
OK - Listed Applications for Virtual Host Localhost
/ EX: RUNNING: 1
/ Examples: Running: 1
/ WebDAV: Running: 0
/ Tomcat-Docs: Running: 0
/ Manager: Running: 0
/: Running: 0
The information of the surface is the path of the application, the current state (running or stopped), which is connected to this program.
3: Re-load the app
Enter http: // localhost: 8080 / manager / relocalhost: 8080 / manager / relocalhost: 8080 / manager / repline? Path = / example, the browser is shown:
OK - Reloaded Application AT Context Path / Examples
Indicates that the Example application is loaded. If we set the reloadable property of Server.xml's Context element to True (see above), it is not necessary to reload the application using this manner because Tomcat will be loaded.
4: Show session information
Enter http: // localhost: 8080 / manager / sessions? Path = / example, browser in the browser, display: OK - Session Information for Application At Context Path / Examples Default Maximum SessioninActive Interval 30 Minutes
5: Start and close the app
Enter http: // localhost: 8080 / manager / start? Path = / example: 8080 / manager / stop? Path = / examples, in your browser.
6: Deployment and revocation deployment
There are two ways to organize files in a certain directory structure, one is a compression package that suffixs for WAR, so it has two ways:
(1): Enter: http:// localhost: 8080 / manager / install? Path = / examples & war = file: / c: / example
WAR deployment will be organized according to the directory structure
(2): If you enter: http:// localhost: 8080 / manager / install? Path = / examples & war = jar: file: / c: /examples.war! /
The WAR deployed by the compression package will be deployed, note that the second half of this URL must have! / 号.
You can access by http: // localhost: 8080 / examples after deployment.
Enter: http: // localhost: 8080 / manager / remove? PATH = / Examples
The application that has just been deployed will be revoked.
(4) Integration with Apache
Although Tomcat can also make a web server, it processes static HTML than Apache, and its functionality as a web server is far less than Apache, so we want to integrate Apache and Tomcat.
We use the Linux system as an example.
Download the Apache 1.3.22 source version from the Apache website, then configure the installation of Apache using the following command:
MKDIR / USR / local / Apache
Tar zxvf apache.1.32.tar.gz
CD Apache.1.32
./configure --prefix = / usr / local / apache --enable-module = so
Make
Make Install
Note that the configure command specifies the target installation directory and joins the DSO (Dynamic Shared Object) support, and be careful not to forget this option.
Then download the WebApp module, and put the mod_webapp.so file after decompression into the Libexec directory of Apache, edit the httpd.conf under Apache's confed, and add the following three lines in this file:
LoadModule WebApp_Module Libexec / Mod_Webapp.so
WebAppConnection WarpConnection Warp localhost: 8008
WebAppDeploy Examples WarpConnection / Examples / EXAMPLES /
The first line is to join the WebApp module. If you do not add DSO support when compiling Apache, you cannot use the loadModule instruction, the second line specifies the connection of Tomcat and Apache, and the third line specifies the application application. The two instructions use the format as follows:
WebAppConnection [Connection Name] [PROVIDER] [Host: Port] WebAppDeploy [Application Name] [Connection Name] [URL PATH]
Where Connection Name specifies the connection name, the Provider can only be WARP, the Port port is consistent with the last few lines of the last few rows of Tomcat's configuration file server.xml. The document is as follows:
Port = / "8008 /" minprocessors = / "5 /" maxprocessors = / "75 /"
Enablelookups = / "true /"
Acceptcount = / "10 /" debug = / "0 /" />
******
Application Name consistent with the app name you deployed in Tomcat, the URL PATH specifies the URL to access this application. For example, the above example can access the Examples app in Tomcat via http: // localhost / example.
(5): Chinese issues
General JSP's garbled problem can be solved by adding <% @ Page ContentType = / "text / html; charset = GB2312 /" in JSP, as for servlet garbled in the HttpServeletRequest.setCharacterenceEnding function provided in servlet2.3 . For more detailed Chinese issues, please see the Chinese character encoding problem in JSP / servlet.
Four: Summary
Tomcat acts as a servlet (JSP is also compiled into a servlet) container, its application prospect is very good, if combined with JBOSS, you can implement Sun's J2EE specification (using JBoss as an EJB server). JBoss's official website also provides JBoss integrated Tomcat3.2 * for download. Another open source application server (ENHYDRA) is also based on Tomcat, which provides a more friendly management interface, and deploying applications is also simpler and more powerful.
Reference:
Tomcat documentation
Tomcat FAQ for www.jguru.com
Apache's documentation
About author
Zongfeng: Master of Computer, Northwestern University, is interested in Web-based new technologies.