Servlet入门——Tomcat部署

在web应用的服务器端,与通信相关的处理都是由服务器软件负责,这些服务器软件一般都是由第三方软件厂商提供,开发人员只需将应用程序部署到web服务器中,客户端便可通过浏览器对其进行访问。在这个示例中,使用的是Apache Tomcat8服务器。Apache Tomcat是用于测试servlet和JSP技术的开源web服务器。
*在开始之前,需要安装两个软件:
Java/JDK 8
Tomcat 8
注意:Java安装好后,需要将到系统的环境变量中。可参考 http:/www.yiibai.com/java_environment_setup.html

安装Tomcat
在编写代码之前,需要自己下载最新版本的Tomcat Servlet并将其安装在计算机上。打开地址:http://tomcat.apache.org/download-80.cgi下载apache-tomcat-8.5.23-windows-x64.zip,如下图所示—
Servlet入门——Tomcat部署
下载完成后,将它解压到一个合适的位置,如:D:softwareapache-tomcat-8.5.4.,然后运行Tomcat服务器测试运行情况,可通过双击文件:D:softwareapache-tomcat-8.5.40 instartup.bat 来启动,如下所示-

Servlet入门——Tomcat部署

测试运行Tomcat服务器运行情况,打开浏览器,访问地址:http://localhost:8080应该会看到类似的界面-
Servlet入门——Tomcat部署
在机器上安装Tomcat Servlet后,请按照以下步骤操作:

  1. 创建应用程序目录结构。
  2. 创建一个Servlet
  3. 编译Servlet
  4. 创建应用程序部署描述符
  5. 启动服务器并部署应用程序

下面详细介绍所有这五个步骤,首先创建第一个Servlet应用程序。

1.创建应用程序目录结构

Sun Microsystem定义了创建servlet应用程序必须遵守的目录结构。这里介绍一个名称为:First的应用为示例,接受一个经典servlet应用程序的目录结构-
Servlet入门——Tomcat部署
在Apsche-Tomcatwebapps目录下创建上述目录结构。所有HTML,静态文件(图像,css等)都直接保存在web应用程序(webapps)文件夹下。而所有Servlet类都保存在class文件夹中。
web.xml(部署描述符)文件保存在WEB-INF文件夹下。

创建一个Servlet

创建servlet有三种不同的方法。

  • 通过实现Servlet接口
  • 扩展GenericServlet类
  • 通过扩展HttpServlet类

但是大部分servlet是通过扩展HttpServlet抽象类创建的。如前所述HttpServlet给出了Servlet接口的service()方法的定义。我们将创建Servlet类但不需要覆盖service()方法。Servlet类将仅覆盖doGet()或doPost()方法。
当servlet的请求进入时,Web容器首先将调用servlet的service()方法,并根据service()方法的请求类型来调用doGet()或doPost()方法)。
*注意:默认情况下,请求是Get请求。

创建一个类:MyServlet.java,并将这个类文件放在F:workspservletFirst目录下,其代码如下所示 -

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class MyServlet extends HttpServlet
{
 public void doGet(HttpServletRequest request,HttpServletResponse response) 
                     throws ServletException, IOException 
 {
   response.setContentType("text/html");
   PrintWriter out = response.getWriter();
   out.println("<html><body>");
   out.prin;Hello Servlet ~</h2>");
   out.println("</body></html>");
 }
}

然后编译它(在下一步中解释),并将类生成的MyServlet.class文件粘贴到WEB-INF/classes/目录中,此WEB-INF/classes/目录必须在Tomcat/webapps目录中创建。

3.编译Servlet类

要编译Servlet,需要一个JAR文件。不同的服务器需要不同的JAR文件。在Apache Tomcat服务器需要的是servlet-api.jar文件来编译servlet类。

编译Servlet的步骤如下 -

首先需要确定是否已将JDK加到系统环境变量中,可通过在命令行上输入验证:java -version,如已添加,则应该返回类似的结果 -Servlet入门——Tomcat部署
下载servlet-api.jar文件,下载地址:http://mvnrepository.com/artifact/javax.servlet/servlet-api/3.0-alpha-1 或者从Tomcat的安apache-tomcat-8.5.23lib 中找到。
将下载好的servlet-api.jar文件粘贴到一个目录,如:F:workspservletlibrary目录下,用于编译Servlet类。

4.创建部署描述符

部署描述符(DD)是由Web容器用于运行Servlet和JSP页面的XML文档。部署描述符用于完成几个重要的工作,如:

  • 将URL映射到Servlet类
  • 初始化参数
  • 定义错误页面
  • 安全角色
  • 声明标签库

稍后将详细讨论所有这些。现在来看看我们为这个Web应用程序创建一个简单的web.xml文件。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>MyFirstServlet</display-name>
  <welcome-file-list>
    <!--// 默认主页-->
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <display-name>MyServlet</display-name><!--// 类的显示名称 -->
    <servlet-name>MyServlet</servlet-name><!--// 类的别名 -->
    <servlet-class>MyServlet</servlet-class><!--// 类的名称 -->
  </servlet>
  <servlet-mapping>
    <servlet-name>MyServlet</servlet-name><!--// 类的别名 -->
    <url-pattern>/hello</url-pattern><!--// 请求此类的对应URL -->
  </servlet-mapping>
</web-app>

web.xml文件元素的说明

web.xml文件中的元素太多。以下是上述web.xml文件中使用的一些元素的说明 -

<web-app>表示整个应用程序。
<servlet>是<web-app>的子元素,代表servlet。
<servlet-name>是<servlet>的子元素,表示servlet的名称。
<servlet-class>是<servlet>的子元素,表示servlet的类。
<servlet-mapping>是<web-app>的子元素。它用于映射servlet。
<url-pattern>是<servlet-mapping>的子元素。客户端使用此模式来调用servlet。

5.启动服务器并部署应用程序

将目录F:workspservletFirst apache-tomcat-8.5.23webapps 下部署这个应用程序。

双击startup.bat文件启动Apache Tomcat服务器。

或者,在Windows机器上在命令行提示执行以下命令。

D:softwareapache-tomcat-8.5.23in> startup.bat

运行Servlet应用程序,打开浏览器输入并访问网址:http:localhost:8080/First/hello ,应该会看到类似的结果 -