📜  Servlet-示例

📅  最后修改于: 2020-11-12 05:36:06             🧑  作者: Mango


Servlet是Java类,用于服务HTTP请求并实现javax.servlet.Servlet接口。 Web应用程序开发人员通常会编写扩展javax.servlet.http.HttpServlet的servlet,javax.servlet.http.HttpServlet是实现Servlet接口并专门设计用于处理HTTP请求的抽象类。

样例代码

以下是servlet示例的示例源代码结构,以显示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("

" + message + "

"); } 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应用程序位于路径 / webapps / ROOT中,并且该类文件位于 / webapps / ROOT / WEB-INF / classes中。

如果您具有com.myorg.MyServlet的完全限定的类名,则此Servlet类必须位于WEB-INF / classes / com / myorg / MyServlet.class中。

现在,让我们将HelloWorld.class复制到 / webapps / ROOT / WEB-INF / classes中,并在 / webapps / ROOT / WEB-中的web.xml文件中创建以下条目。 INF /


   HelloWorld
   HelloWorld



   HelloWorld
   /HelloWorld

以上要在web.xml文件中的标记内创建的条目。该表中可能已经有各种条目可用,但是没关系。

您几乎完成了,现在让我们使用 \ bin \ startup.bat(在Windows上)或 /bin/startup.sh(在Linux / Solaris等上)启动tomcat服务器,然后键入浏览器地址栏中的http:// localhost:8080 / HelloWorld 。如果一切顺利,您将获得以下结果

Servlet示例