- 使用Tomcat服务器创建Servlet的步骤
- 创建目录结构
- 创建一个Servlet
- 编译Servlet
- 创建部署描述符
- 启动服务器并部署应用程序
给出了创建servlet示例的6个步骤。所有服务器都需要执行这些步骤。
可以通过三种方式创建servlet示例:
- 通过实现Servlet接口,
- 通过继承GenericServlet类, (或)
- 通过继承HttpServlet类
最常用的方法是扩展HttpServlet, 因为它提供了HTTP请求特定的方法, 例如doGet(), doPost(), doHead()等。
在这里, 我们将在此示例中使用apache tomcat服务器。步骤如下:
- 创建目录结构
- 创建一个Servlet
- 编译Servlet
- 创建部署描述符
- 启动服务器并部署项目
- 访问servlet
下载此servlet示例
通过扩展GenericServlet下载servlet的示例
通过实现Servlet接口下载servlet的示例
1)创建目录结构
目录结构定义了放置不同类型文件的位置, 以便Web容器可以获取信息并响应客户端。
Sun Microsystem定义了所有服务器供应商都必须遵循的唯一标准。让我们看看创建servlet必须遵循的目录结构。
如你所见, servlet类文件必须位于classes文件夹中。 web.xml文件必须位于WEB-INF文件夹下。
2)创建一个Servlet
有三种创建servlet的方法。通过实现Servlet接口通过继承GenericServlet类通过继承HttpServlet类HttpServlet类广泛用于创建servlet, 因为它提供了处理诸如getGet(), doPost, doHead()等HTTP请求的方法。 |
在此示例中, 我们将创建一个扩展HttpServlet类的servlet。在此示例中, 我们继承了HttpServlet类, 并提供了doGet()方法的实现。请注意, get request是默认请求。 |
DemoServlet.java
import javax.servlet.http.*;
import javax.servlet.*;
import java.io.*;
public class DemoServlet extends HttpServlet{
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
res.setContentType("text/html");//setting the content type
PrintWriter pw=res.getWriter();//get the stream to write the data
//writing html in the stream
pw.println("<html><body>");
pw.println("Welcome to servlet");
pw.println("</body></html>");
pw.close();//closing the stream
}}
3)编译servlet
为了编译Servlet, 需要加载jar文件。不同的服务器提供不同的jar文件:
Jar file | Server |
---|---|
1)servlet-api.jar | Apache Tomcat |
2)weblogic.jar | Weblogic |
3)javaee.jar | Glassfish |
4)javaee.jar | JBoss |
两种方式加载jar文件
- 设置类路径
- 将jar文件粘贴到JRE / lib / ext文件夹中
将java文件放在任何文件夹中。编译完Java文件后, 将servlet的类文件粘贴到WEB-INF / classes目录中。
4)创建部署描述符(web.xml文件)
部署描述符是一个xml文件, Web容器从该文件中获取有关要调用的服务器的信息。
Web容器使用解析器从web.xml文件中获取信息。有很多XML解析器, 例如SAX, DOM和Pull。
web.xml文件中包含许多元素。这里给出了一些运行简单servlet程序的必要元素。
web.xml文件
<web-app>
<servlet>
<servlet-name>sonoojaiswal</servlet-name>
<servlet-class>DemoServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>sonoojaiswal</servlet-name>
<url-pattern>/welcome</url-pattern>
</servlet-mapping>
</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服务器的一次性配置
你需要执行2个任务:
- 在环境变量中设置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目录中。更改连接器端口= 8080, 并用任意四位数而不是8080替换8080。让我们用9999替换并保存此文件。
5)如何部署servlet项目
复制该项目并将其粘贴到apache tomcat下的webapps文件夹中。
但是有几种方法可以部署项目。它们如下:
- 通过将context(project)文件夹复制到webapps目录中
- 通过将war文件夹复制到webapps目录中
- 通过从服务器选择文件夹路径
- 通过从服务器选择war文件
在这里, 我们使用第一种方法。
你还可以创建war文件, 并将其粘贴到webapps目录中。为此, 你需要使用jar工具来创建war文件。进入项目目录(在WEB-INF之前), 然后输入:
projectfolder> jar cvf myproject.war *
创建战争文件的优点是将项目从一个位置移动到另一位置所需的时间更少。
6)如何访问servlet
打开broser并编写http:// hostname:portno / contextroot / urlpatternofservlet。例如:
http://localhost:9999/demo/welcome
下载此Servlet示例(使用记事本)
通过扩展GenericServlet下载servlet的示例
通过实现Servlet接口下载servlet的示例