Java Servlet教程—创建 Servlet 示例

在 Apache Tomcat 服务器上创建 Servlet 示例通常涉及以下六个步骤:
- 创建目录结构:这是为了让 Web 容器知道在哪里可以找到不同类型的文件,以便正确响应客户端请求。通常,Servlet 类文件应该放在
classes
文件夹中,而web.xml
文件应该位于WEB-INF
文件夹下。 创建 Servlet:可以通过以下三种方式之一来创建 Servlet:
- 通过实现 Servlet 接口
- 通过继承 GenericServlet 类
- 通过继承 HttpServlet 类 通常,最常用的方法是继承 HttpServlet 类,因为它提供了处理 HTTP 请求的特定方法,如 doGet()、doPost()、doHead() 等。
- 编译 Servlet:需要加载用于编译 Servlet 的 JAR 文件。对于 Apache Tomcat,通常需要
servlet-api.jar
。 - 创建部署描述符(web.xml 文件):这是一个 XML 文件,Web 容器使用它来获取关于要调用的 Servlet 的信息。
- 启动服务器并部署项目:启动 Apache Tomcat 服务器通常涉及运行服务器安装目录下的
startup.bat
文件。 - 访问 Servlet:在浏览器中输入相应的 URL 来访问部署的 Servlet,格式通常为
http://hostname:portno/contextroot/urlpatternofservlet
。
例如:http://localhost:9999/demo/welcome。
请注意,以上步骤简述了创建和部署 Servlet 的过程,具体实现可能会根据您使用的服务器和开发环境而有所不同。
使用 Apache Tomcat 服务器创建 Servlet 示例的详细步骤如下:
1) 创建目录结构
目录结构定义了不同类型文件的存放位置,以便 Web 容器可以获取信息并响应客户端。Sun Microsystem 定义了所有服务器供应商都应遵循的标准。下面是创建 Servlet 时必须遵循的目录结构。
如您所见,Servlet 类文件必须放在 classes 文件夹中。web.xml 文件必须位于 WEB-INF 文件夹下。
2) 创建 Servlet
创建 Servlet 有三种方式:
- 通过实现 Servlet 接口
- 通过继承 GenericServlet 类
- 通过继承 HttpServlet 类
HttpServlet 类因为提供了处理 HTTP 请求的方法(如 doGet()、doPost()、doHead() 等)而被广泛使用。在这个示例中,我们将创建一个扩展 HttpServlet 类的 Servlet。在这个示例中,我们继承了 HttpServlet 类并提供了 doGet() 方法的实现。请注意,GET 请求是默认请求。
DemoServlet.java
1. **import** javax.servlet.http.*;
2. **import** javax.servlet.*;
3. **import** java.io.*;
4. **public** **class** DemoServlet **extends** HttpServlet{
5. **public** **void** doGet(HttpServletRequest req, HttpServletResponse res)
6. **throws** ServletException, IOException
7. {
8. res.setContentType("text/html"); //设置内容类型
9. PrintWriter pw = res.getWriter(); //获取写入数据的流
10.
11. //在流中写入 HTML
12. pw.println("<html><body>");
13. pw.println("欢迎来到 servlet");
14. pw.println("</body></html>");
15.
16. pw.close(); //关闭流
17. }}
3) 编译 Servlet
编译 Servlet 时需要加载 JAR 文件。不同的服务器提供不同的 JAR 文件:
JAR 文件 | 服务器 |
---|---|
1) servlet-api.jar | Apache Tomcat |
2) weblogic.jar | Weblogic |
3) javaee.jar | Glassfish |
4) javaee.jar | JBoss |
加载 JAR 文件有两种方式:
- 设置 classpath
- 将 JAR 文件粘贴到 JRE/lib/ext 文件夹
将 Java 文件放在任何文件夹中。编译 Java 文件后,将 Servlet 的 class 文件粘贴到 WEB-INF/classes 目录。
4) 创建部署描述符 (web.xml 文件)
部署描述符是一个 XML 文件,Web 容器通过它获取有关要调用的 Servlet 的信息。
Web 容器使用解析器从 web.xml 文件获取信息。存在多种 XML 解析器,如 SAX、DOM 和 Pull。
web.xml 文件中有许多元素。下面提供了运行简单 Servlet 程序所需的一些必要元素。
web.xml 文件
1. **<\**\*\*web-app\*\**\*>**
2.
3. **<\**\*\*servlet\*\**\*>**
4. **<\**\*\*servlet-name\*\**\*>\**sonoojaiswal\**</\**\*\*servlet-name\*\**\*>**
5. **<\**\*\*servlet-class\*\**\*>\**DemoServlet\**</\**\*\*servlet-class\*\**\*>**
6. **</\**\*\*servlet\*\**\*>**
7.
8. **<\**\*\*servlet-mapping\*\**\*>**
9. **<\**\*\*servlet-name\*\**\*>\**sonoojaiswal\**</\**\*\*servlet-name\*\**\*>**
10. **<\**\*\*url-pattern\*\**\*>**/welcome**</***\*url-pattern\****>**
11. **</\**\*\*servlet-mapping\*\**\*>**
12.
13. **</\**\*\*web-app\*\**\*>**
web.xml 文件的元素说明
web.xml 文件中有许多元素。下面是上述 web.xml 文件中使用的一些元素的说明:
<web-app> 代表整个应用程序。 |
---|
<servlet> 是 <web-app> 的子元素,代表 servlet。 |
<servlet-name> 是 <servlet> 的子元素,代表 servlet 的名称。 |
<servlet-class> 是 <servlet> 的子元素,代表 servlet 的类。 |
<servlet-mapping> 是 <web-app> 的子元素。它用于映射 servlet。 |
<url-pattern> 是 <servlet-mapping> 的子元素。这个模式用于客户端调用 servlet。 |
5) 启动服务器并部署项目
要启动 Apache Tomcat 服务器,请双击位于 apache-tomcat/bin 目录下的 startup.bat 文件。
Apache Tomcat 服务器的一次性配置
您需要执行两项任务:
- 在环境变量中设置 JAVA_HOME 或 JRE_HOME(启动服务器所需)。
- 更改 Tomcat 的端口号(可选)。如果同一端口(8080)上运行着另一个服务器,则需要此操作。
1) 如何在环境变量中设置 JAVA_HOME?
要启动 Apache Tomcat 服务器,必须在环境变量中设置 JAVA_HOME 和 JRE_HOME。
进入“我的电脑”属性 -> 点击高级标签然后进入环境变量 -> 点击用户变量的新建标签 -> 在变量名中写 JAVA_HOME 并在变量值中粘贴 jdk 文件夹的路径 -> 确定 -> 确定 -> 确定。
转到我的电脑属性:
单击高级系统设置选项卡,然后单击环境变量:
点击用户变量或系统变量的新选项卡:
在变量名中写入JAVA_HOME,并将jdk文件夹的路径粘贴到变量值中:
设置 JAVA_HOME 后双击 apache tomcat/bin 中的 startup.bat 文件。 请注意,有两种类型的 Tomcat 可用:
- 只需解压的 Apache Tomcat(无需安装)
- 需要安装的 Apache Tomcat 这是只需解压的 Apache Tomcat 的示例。
现在服务器已成功启动。
2) 如何更改 Apache Tomcat 的端口号
如果同一系统上的另一个服务器以相同的端口号运行,则需要更改端口号。假设您安装了 oracle,您需要更改 Apache Tomcat 的端口号,因为两者都使用默认端口号 8080。
在记事本中打开 server.xml 文件。它位于 apache-tomcat/conf 目录中。更改 Connector port = 8080 并将 8080 替换为任何四位数。让我们将其替换为 9999 并保存此文件。
5) 如何部署 servlet 项目
将项目复制并粘贴到 apache tomcat 下的 webapps 文件夹中。
![在 apache tomcat 服务器中部署 servlet 的方式]
但部署项目有几种方式,包括:
- 将上下文(项目)文件夹复制到 webapps 目录中
- 将 war 文件夹复制到 webapps 目录中
- 从服务器选择文件夹路径
- 从服务器选择 war 文件
在这里,我们使用第一种方法。
您也可以创建 war 文件,并将其粘贴到 webapps 目录中。为此,您需要使用 jar 工具创建 war 文件。进入项目目录(WEB-INF 之前),然后写:
- projectfolder> jar cvf myproject.war *
创建 war 文件的优势在于从一个位置移动项目到另一个位置所需的时间较少。
6) 如何访问 servlet
打开浏览器并编写 http://hostname:portno/contextroot/urlpatternofservlet。例如:
- http://localhost:9999/demo/welcome