Java 中的 Servlet
本教程介绍了 servlet 是什么以及如何在 Java 中创建 servlet。
什么是小服务程序
Servlet 是一种服务器端技术,用于在 Java 中创建 Web 应用程序。它创建动态 Web 应用程序并提供由多个类和接口组成的 API 来管理应用程序。
使用 Servlet 的优点
在 servlet 出现之前,CGI(通用网关接口
)程序用于创建存在多个性能问题的服务器端程序。Servlet 比 CGI 具有优势,并提供以下优点:
- 由于多线程概念而具有更高的性能
- 无平台依赖性
- 便携的
- 由于 Java 字节码,安全可靠。
在 Java 中如何创建一个 Servlet
有多种方法可以创建 servlet 应用程序,例如使用以下任何类或接口:
- 实现
Servlet
接口 - 继承
GenericServlet
类 - 继承
HttpServlet
类
这些是用于创建 servlet 应用程序的一些类和接口。它们包含诸如 doPost()
和 doGet()
之类的方法来处理 HTTP 请求。
servlet 应用程序遵循特定的目录/项目结构,并包含一些必需的步骤,例如:
- 创建一个 servlet
- 创建部署描述符
- 将 servlet 应用程序部署到服务器 (apache tomcat)。
如前所述,要创建 servlet,我们需要扩展 HttpServlet
类并覆盖其方法。在这里,我们使用 doGet()
方法来处理 Get 请求。
下面是一个基本的 servlet 代码。
创建一个小服务程序
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
// Extending HttpServlet class
public class HelloServlet extends HttpServlet {
private String msg;
public void init() throws ServletException {
// Do required initialization
msg = "Hello Servlet";
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Setting content type for response
response.setContentType("text/html");
// printing msg to browser in h1 heading
PrintWriter out = response.getWriter();
out.println("<h1>" + msg + "</>");
}
public void destroy() {
// code to execute while destroy servlet.
}
}
输出:
此 servlet 代码将向浏览器打印以下消息。
创建部署描述符
这是一个 XML 文件,其中包含有关 servlet 的信息,Web 容器从该文件中获取所有信息。该文件使用了几个标签,例如 <web-app>
、<servlet>
、<servlet-mapping>
等。
它们都用于设置容器的信息。容器使用解析器来提取此信息。
请参阅我们的 HelloServlet 类的 servlet 描述符 (web.xml)。
<web-app>
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/helloservlet</url-pattern>
</servlet-mapping>
</web-app>
创建此 XML 文件后,编译 servlet 文件并将整个项目部署到 web 服务器,例如 apache tomcat。这是一个 Web 应用程序,因此它需要一个服务器才能运行。
部署项目后,启动服务器,通过输入浏览器的映射 URL’helloservlet’来访问 servlet。
Servlet 的重要包
Servlet API 包含两个主要的包,它们包含所有的类和接口。
- javax.servlet
- javax.servlet.http
Servlet 类
这些是一些常用的 servlet 类:
GenericServlet
ServletInputStream
ServletOutputStream
ServletRequestWrapper
ServletResponseWrapper
ServletRequestEvent
ServletContextEvent
HttpServlet
Cookie
HttpServletRequestWrapper
HttpServletResponseWrapper
HttpSessionEvent
小服务程序接口
这些是一些常用的 servlet 接口:
Servlet
ServletRequest
ServletResponse
RequestDispatcher
ServletConfig
ServletContext
Filter
FilterConfig
FilterChain
ServletRequestListener
HttpServletRequest
HttpServletResponse
HttpSession
HttpSessionListener