Tomcat Raiders
With the popularity of Java, its application on the Web is getting wider and wider, as an open source servlet container, the application prospect is getting wider, this article will tell you some of Tomcat.
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 run Tomcat requires setting Java_Home variables
Set java_home = c: / jdk (Win98, use in MSDOS mode, or put in autoexec.bat)
Export java_home = / usr / local / jdk (Used under Linux, put it in / etc / bashrc or / etc / profile)
(3): After running, you can run the Tomcat server, enter the bin directory of Tomcat, start Tomcat with Startup with Startup, linux with startup.sh, the corresponding shutdown 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): The directory structure of the directory structure Tomcat is as follows:
Content Name Introduction BIN Starts and Off Tomcat Script Conf contains different profiles, Server.xml (main configuration files for Tomcat) and Web.xmlWork store the Class file WebApp generated after the JSP compile, you have to deploy The application also puts this directory logs Logs Log file LIB / JAPSER / COMMON These three directory mainly store Tomcat's JAR file (II): Server.xml Configuration Introduction Let's tell the basic configuration information in this file, More specific configuration information see Tomcat documents
Element Name Properties Interpretation ServerPort Specifies a port, this port is responsible for monitoring the request Shutdown specifying Shutdown Specifying the command string service to port serviceName Specifying the name of the service in the client and services port specifying the server side to create The port number, and in this fracture, the process requested by the process request from the client's request minprocessors server startup MAXPROCESSORS MaxProcessors can create the number of process requests Enablelookups If true, you can perform DNS query by calling request.getRemotehost () To get the actual host name of the remote client, if the DNS query is not performed for False, but returns its IP address redirectport specifies that the server is processing the HTTP request to receive a SSL transmission request and the port number ACCEPTCOUNT specified when all can be used. When the number of processes requested is used, it can be placed on the number of requests in the process queue. If the request exceeds this number will not process the timeout (in milliseconds) of the connectionTimeout (in milliseconds), which is specified in milliseconds. Processor, Receive, and Processing Requests from Connector) DefaultHost Specifies the host name of the default processing request, which at least one of the name attribute values of one of the host elements is the same content (represents a web application, usually a WAR file, Regarding the specific information of WAR, see the servlet specification. The path of the DOCBASE application or the path stored by the WAR file Path indicates the prefix of the URL of this web application, so the requested URL is http: // localhost: 8080 / path / *** * Reloadable This property is very important. If true, Tomcat automatically detects changes in the application's / web-inf / lib and / web-inf / class directory, automatically loads new applications, we can do not count Tomcat In the case where the application host (represents a virtual host) name specifies the basic directory of the hostname 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 War Run the application logger in the file classname to specify the class name used by the Logger used. This class must implement org.apache.catalina.logger interface prefix specified log File prefix Suffix Specifies the suffix timestamp of the log file If true, the log file name is to join the time, as in the following example: localhost_log.2001-10-04.txt realm (indicating that the username, password, and ROLE database) classname specified Realm used class names, such must implement org.apache.catalina.Realm interface Valve (functionality is similar to Logger, its prefix, and suffix attributes, the same example) classname specifies the class name used by Valve,> Use Org.Apache .catalina.valves.accessLogvalve class You can record the application's access information Directory specifies that the location of the log file is stored in Pattern, and the Common mode records the remote host name or IP address, user name, date, first line requested string, HTTP response code, 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 cannot detect this file (heavy up Tomcat can be), and the 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, the Tomcat will not be able to access the application. 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 application Enter http: // localhost: 8080 / manager / relocalhost: 8080 / manager / recocalhost: 8080 / manager / repline? Path = / example, the browser is shown below:
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: Display session information Enter http: // localhost: 8080 / manager / sessions? Path = / examples, browser is shown in the browser:
OK - Session Information For Application At Context Path / Examples Default Maximum Session Inactive Interval 30 Minutes5: Start and close Applications Enter http: // localhost: 8080 / manager / start? Path = / examples and http: /////// Localhost: 8080 / manager / stop? path = / examples Start and close the Examples application, respectively. 6: Deployment and revocation of WAR has two organizations, one is to organize files according to a certain directory structure, one is a compression package for a suffix, so there are two ways to deploy: (1): Browse Enter: http: // localhost: 8080 / manager / install? Path = / examples & war: / c: / examples will be deployed by the Table of Table of Table (2): If you enter: http: // localhost : 8080 / manager / install? Path = / examples & war = jar: file: / c: /examples.war! / Will press the WAR deployment of the compression package organization, 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 will revoke the application just deployed. (4): Although Tomcat can also make a web server, but it has a static HTML speed 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 the connection name specifies the connection name, the Provider can only be WARP, the Port port is consistent with your Tomcat configuration file server.xml. The document is as follows:
Port = "8008" MINPROCESSORS = "5" maxprocessors = "75" Enablelookups = "True" Acceptcount = "10" debug = "0" /> ****** Service> 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 problem general JSP garbled problem can be solved by adding <% @ page contentty = "text / html; charset = GB2312"%> by joining in JSP, as for servlet2.3 can be used in servlet2.3 HTTPServeletRequest.setCharacterencoding function. For more detailed Chinese issues, please see the Chinese character encoding problem in JSP / servlet. IV: Summary Tomcat acts as a servlet (JSP is also compiled into a servlet) container, and its application prospect is very good. If combined with JBOSS, you can implement Sun's J2EE specification (with 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.