通用 Servlet 类
GenericServlet 实现了 Servlet 接口,并为它的所有方法提供了一个实现,除了service() 方法,因此它是抽象的。 GenericServlet 类定义了一个独立于协议(HTTP-less)的 servlet。但是,在构建网站或在线应用程序时,我们可能希望拥有 HTTP 协议,在这种情况下,我们必须扩展 HttpServlet 而不是 GenericServlet。通过扩展 GenericServlet 来开发 Servlet 非常容易,因为我们只需要为service()方法提供实现。 GenericServlet 类位于 javax.servlet 包 (javax.servlet.GenericServlet) 中。
服务()方法
service()方法的原型是:
public void service (ServletRequest req, ServletResponse resp) throws ServletException,IOException
只要 GenericServlet 的请求到达,服务器就会自动调用此方法。 service()方法接受两个参数:
- 一个 ServletRequestObject
- 一个 SerlvetResponseObject
ServletRequest 对象允许读取客户端请求提供的数据,ServletResponse 对象用于向客户端发送响应
通过扩展 GenericServlet 类的 Servlet “Hello World”示例
Java
import java.io.*;
import javax.servlet.*;
public class MyFirstServlet extends GenericServlet
{
public void service(ServletRequest req,
ServletResponse resp)
throws ServletException, IOException
{
resp.setContentType("text/html");
PrintWriter pw = resp.getWriter();
pw.println("");
pw.println("My first Servlet ");
pw.println("");
pw.println("Welcome To Servlet World!
");
pw.println("");
pw.println("");
pw.close();
}
}
XML
MyFirstServlet
MyFirstServlet
MyFirstServlet
/MyFirstServlet
编译程序
在编译程序之前,我们需要在类路径中设置 servlet-api.jar 文件。这是因为 javax.servlet 包在这个 jar 文件中。文件 servlet-api.jar 在 Tomcat 的 lib 文件夹中可用。所以假设 Tomcat 在 h:\ 驱动器中,我们设置类路径的命令是:
h:\Apache Software Foundation\Tomcat 8.0\lib\servlet-api.jar ;.;%classpath%
现在我们可以使用通常的 javac 命令编译代码
javac MyFirstServlet.java
这样做将生成 MyFirstServlet.class 文件,我们必须将其部署在我们的网络服务器中
部署 Servlet
要在我们的 Web 服务器中部署 servlet,我们需要执行以下操作
- 创建适当的目录结构
- 设计 web.xml 文件
- 将 .class 文件放在应用程序的 classes 子目录中
创建目录
为了创建 Web 应用程序,我们应该遵循 Sun Microsystem 提供的独立于服务器的标准目录结构。根据此应用程序包含具有任何名称的应用程序根文件夹。
- 在根文件夹下,需要一个名为 WEB-INF 的子文件夹。
- 在 WEB-INF 下需要两个子文件夹,称为 classes 和 lib。
- 所有 jar 文件都放在 lib 文件夹中。
- 所有 .class 文件,包括 servlet 的 .class 文件都放在 classes 文件夹中。
- 所有图像、html、.js、jsp 等文件都放在应用程序根文件夹中。
- 同样在WEB-INF文件夹下,我们需要放置web.xml文件
web.xml 文件
- Java Web 应用程序使用部署描述符文件来确定 URL 如何映射到 servlet。
- 此文件名为 web.xml,位于应用程序的 WEB-INF/ 目录中,是 Web 应用程序 servlet 标准的一部分
设计 web.xml 文件
XML
MyFirstServlet
MyFirstServlet
MyFirstServlet
/MyFirstServlet
配置 Servlet
一旦目录结构到位,我们就可以将 MyFirstServlet.class 文件复制到应用程序的 classes 文件夹中。将 .class 文件放在 classes 文件夹中是我们 servlet 的强制性要求。
运行应用程序
完成所有部署后,我们需要测试我们的 servlet,为此,我们需要执行以下操作:
- 通过单击 Tomcat 的 bin 文件夹中的 Tomcat 8.5.file 启动 Tomcat 服务器。
- 打开浏览器并输入以下 URL:
http://localhost:2021/sumit/MyFirstServlet
输出: