- Servlet 教程
- Servlet - 首页
- Servlet - 概述
- Servlet - 环境搭建
- Servlet - 生命周期
- Servlet - 示例
- Servlet - 表单数据
- Servlet - 客户端请求
- Servlet - 服务器响应
- Servlet - HTTP 状态码
- Servlet - 编写过滤器
- Servlet - 异常处理
- Servlet - Cookie 处理
- Servlet - Session跟踪
- Servlet - 数据库访问
- Servlet - 文件上传
- Servlet - 日期处理
- Servlet - 页面重定向
- Servlet - 点击计数器
- Servlet - 自动刷新
- Servlet - 发送邮件
- Servlet - 打包
- Servlet - 调试
- Servlet - 国际化
- Servlet - 注解
- Servlet 有用资源
- Servlet - 问答
- Servlet - 快速指南
- Servlet - 有用资源
- Servlet - 讨论
Servlet - 示例
Servlet 是处理 HTTP 请求并实现 javax.servlet.Servlet 接口的 Java 类。Web 应用程序开发者通常编写扩展 javax.servlet.http.HttpServlet 的 Servlet,这是一个实现了 Servlet 接口并专门用于处理 HTTP 请求的抽象类。
示例代码
下面是一个显示“Hello World”的 Servlet 示例的示例源代码结构:
// Import required java libraries import java.io.*; import javax.servlet.*; import javax.servlet.http.*; // Extend HttpServlet class public class HelloWorld extends HttpServlet { private String message; public void init() throws ServletException { // Do required initialization message = "Hello World"; } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Set response content type response.setContentType("text/html"); // Actual logic goes here. PrintWriter out = response.getWriter(); out.println("<h1>" + message + "</h1>"); } public void destroy() { // do nothing. } }
编译 Servlet
让我们创建一个名为 HelloWorld.java 的文件,其中包含上面显示的代码。将此文件放在 C:\ServletDevel(在 Windows 中)或 /usr/ServletDevel(在 Unix 中)。在继续之前,必须将此路径位置添加到 CLASSPATH。
假设您的环境已正确设置,请进入 ServletDevel 目录并按如下方式编译 HelloWorld.java:
$ javac HelloWorld.java
如果 servlet 依赖于任何其他库,则还必须在 CLASSPATH 中包含这些 JAR 文件。我只包含 servlet-api.jar JAR 文件,因为我在 Hello World 程序中没有使用任何其他库。
此命令行使用随 Sun Microsystems Java 软件开发工具包 (JDK) 附带的内置 javac 编译器。为了使此命令正常工作,您必须在 PATH 环境变量中包含您正在使用的 Java SDK 的位置。
如果一切顺利,上面的编译将在同一目录中生成 HelloWorld.class 文件。下一节将解释如何在生产环境中部署已编译的 servlet。
Servlet 部署
默认情况下,servlet 应用程序位于路径 <Tomcat安装目录>/webapps/ROOT,类文件位于 <Tomcat安装目录>/webapps/ROOT/WEB-INF/classes。
如果您有完整的类名 com.myorg.MyServlet,则此 servlet 类必须位于 WEB-INF/classes/com/myorg/MyServlet.class。
现在,让我们将 HelloWorld.class 复制到 <Tomcat安装目录>/webapps/ROOT/WEB-INF/classes,并在位于 <Tomcat安装目录>/webapps/ROOT/WEB-INF/ 的 web.xml 文件中创建以下条目:
<servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>HelloWorld</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/HelloWorld</url-pattern> </servlet-mapping>
以上条目需要在 web.xml 文件中已有的 <web-app>...</web-app> 标签内创建。此表中可能已经存在各种条目,但这没关系。
您快完成了,现在让我们使用 <Tomcat安装目录>\bin\startup.bat(在 Windows 上)或 <Tomcat安装目录>/bin/startup.sh(在 Linux/Solaris 等上)启动 tomcat 服务器,最后在浏览器的地址栏中输入 https://127.0.0.1:8080/HelloWorld。如果一切顺利,您将得到以下结果: