Servlets - 例子
Servlet是服务HTTP请求并实现javax.servlet.Servlet接口的Java类。 Web应用程序开发人员通常编写扩展javax.servlet.http.HttpServlet的servlet,这是一个实现Servlet接口的抽象类,专门用于处理HTTP请求。
示例代码 (Sample Code)
以下是显示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应用程序位于路径
如果您具有com.myorg.MyServlet的完全限定类名,则此servlet类必须位于WEB-INF/classes/com/myorg/MyServlet.class中。
现在,让我们将HelloWorld.class复制到
<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文件中提供的
你差不多完成了,现在让我们使用