Servlets 简明教程
Servlets - Examples
Servlet 是服务 HTTP 请求并实现 javax.servlet.Servlet 接口的 Java 类。Web 应用程序开发人员通常编写扩展 javax.servlet.http.HttpServlet、实现 Servlet 接口并专门设计用于处理 HTTP 请求的抽象类的 servlet。
Servlets are Java classes which service HTTP requests and implement the javax.servlet.Servlet interface. Web application developers typically write servlets that extend javax.servlet.http.HttpServlet, an abstract class that implements the Servlet interface and is specially designed to handle HTTP requests.
Sample Code
以下为显示 Hello World 的 servlet 示例的示例源代码结构 -
Following is the sample source code structure of a servlet example to show Hello World −
// 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.
}
}
Compiling a Servlet
让我们创建一个名为 HelloWorld.java 的文件,其中包含上面所示的代码。将此文件放置在 C:\ServletDevel(在 Windows 中)或 /usr/ServletDevel(在 Unix 中)。在继续进一步操作之前,必须将此路径位置添加到 CLASSPATH 中。
Let us create a file with name HelloWorld.java with the code shown above. Place this file at C:\ServletDevel (in Windows) or at /usr/ServletDevel (in Unix). This path location must be added to CLASSPATH before proceeding further.
假设您的环境已正确设置,请进入 ServletDevel 目录,并按如下方式编译 HelloWorld.java -
Assuming your environment is setup properly, go in ServletDevel directory and compile HelloWorld.java as follows −
$ javac HelloWorld.java
如果 servlet 依赖于任何其他库,则还必须在 CLASSPATH 上包含这些 JAR 文件。我仅包含 servlet-api.jar JAR 文件,因为我在 Hello World 程序中未使用任何其他库。
If the servlet depends on any other libraries, you have to include those JAR files on your CLASSPATH as well. I have included only servlet-api.jar JAR file because I’m not using any other library in Hello World program.
此命令行使用随 Sun Microsystems Java 软件开发工具包 (JDK) 提供的内置 javac 编译器。为了使此命令正常工作,您必须在 PATH 环境变量中包含您正在使用的 Java SDK 的位置。
This command line uses the built-in javac compiler that comes with the Sun Microsystems Java Software Development Kit (JDK). For this command to work properly, you have to include the location of the Java SDK that you are using in the PATH environment variable.
如果一切都正常,上述编译将在同一目录中生成 HelloWorld.class 文件。下一部分将说明如何将已编译的 servlet 部署到生产环境中。
If everything goes fine, above compilation would produce HelloWorld.class file in the same directory. Next section would explain how a compiled servlet would be deployed in production.
Servlet Deployment
默认情况下,servlet 应用程序位于路径 <Tomcat-installationdirectory>/webapps/ROOT 中,类文件将驻留在 <Tomcat-installationdirectory>/webapps/ROOT/WEB-INF/classes 中。
By default, a servlet application is located at the path <Tomcat-installationdirectory>/webapps/ROOT and the class file would reside in <Tomcat-installationdirectory>/webapps/ROOT/WEB-INF/classes.
如果您拥有 com.myorg.MyServlet 的完全限定类名,则此 servlet 类必须位于 WEB-INF/classes/com/myorg/MyServlet.class 中。
If you have a fully qualified class name of com.myorg.MyServlet, then this servlet class must be located in WEB-INF/classes/com/myorg/MyServlet.class.
现在,让我们将 HelloWorld.class 复制到 <Tomcat-installationdirectory>/webapps/ROOT/WEB-INF/classes 中,并创建位于 <Tomcat-installation-directory>/webapps/ROOT/WEB-INF/ 中 web.xml 文件中的以下条目
For now, let us copy HelloWorld.class into <Tomcat-installationdirectory>/webapps/ROOT/WEB-INF/classes and create following entries in web.xml file located in <Tomcat-installation-directory>/webapps/ROOT/WEB-INF/
<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-app>…</web-app> web.xml 文件内。此表格中可能已经存在各种条目,但不必担心。
Above entries to be created inside <web-app>…</web-app> tags available in web.xml file. There could be various entries in this table already available, but never mind.
您几乎完成了,现在,让我们使用 <Tomcat-installationdirectory>\bin\startup.bat(在 Windows 中)或 <Tomcat-installationdirectory>/bin/startup.sh(在 Linux/Solaris 等中)启动 tomcat 服务器,最后在浏览器的地址栏中键入 http://localhost:8080/HelloWorld 。如果一切顺利,您将获得以下结果
You are almost done, now let us start tomcat server using <Tomcat-installationdirectory>\bin\startup.bat (on Windows) or <Tomcat-installationdirectory>/bin/startup.sh (on Linux/Solaris etc.) and finally type http://localhost:8080/HelloWorld in the browser’s address box. If everything goes fine, you would get the following result