在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,如下图所示—
下载完成后,将它解压到一个合适的位置,如:D:softwareapache-tomcat-8.5.4.,然后运行Tomcat服务器测试运行情况,可通过双击文件:D:softwareapache-tomcat-8.5.40 instartup.bat 来启动,如下所示-
测试运行Tomcat服务器运行情况,打开浏览器,访问地址:http://localhost:8080应该会看到类似的界面-
在机器上安装Tomcat Servlet后,请按照以下步骤操作:
下面详细介绍所有这五个步骤,首先创建第一个Servlet应用程序。
Sun Microsystem定义了创建servlet应用程序必须遵守的目录结构。这里介绍一个名称为:First的应用为示例,接受一个经典servlet应用程序的目录结构-
在Apsche-Tomcatwebapps目录下创建上述目录结构。所有HTML,静态文件(图像,css等)都直接保存在web应用程序(webapps)文件夹下。而所有Servlet类都保存在class文件夹中。
web.xml(部署描述符)文件保存在WEB-INF文件夹下。
创建servlet有三种不同的方法。
但是大部分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("");
out.prin;Hello Servlet ~");
out.println("");
}
}
然后编译它(在下一步中解释),并将类生成的MyServlet.class文件粘贴到WEB-INF/classes/目录中,此WEB-INF/classes/目录必须在Tomcat/webapps目录中创建。
要编译Servlet,需要一个JAR文件。不同的服务器需要不同的JAR文件。在Apache Tomcat服务器需要的是servlet-api.jar文件来编译servlet类。
编译Servlet的步骤如下 -
首先需要确定是否已将JDK加到系统环境变量中,可通过在命令行上输入验证:java -version,如已添加,则应该返回类似的结果 -
下载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类。
部署描述符(DD)是由Web容器用于运行Servlet和JSP页面的XML文档。部署描述符用于完成几个重要的工作,如:
稍后将详细讨论所有这些。现在来看看我们为这个Web应用程序创建一个简单的web.xml文件。
MyFirstServlet
index.html
index.html
index.jsp
default.html
default.html
default.jsp
MyServlet
MyServlet
MyServlet
MyServlet
/hello
web.xml文件元素的说明
web.xml文件中的元素太多。以下是上述web.xml文件中使用的一些元素的说明 -
表示整个应用程序。
是的子元素,代表servlet。
是的子元素,表示servlet的名称。
是的子元素,表示servlet的类。
是的子元素。它用于映射servlet。
是的子元素。客户端使用此模式来调用servlet。
将目录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 ,应该会看到类似的结果 -