开发第一个 Servlet

开发第一个 Servlet

Servlet 本身不能独立运行,需要在一个 Web 应用中运行,而一个 Web 应用是部署在 Tomcat 服务器中。

开发一个 Servlet 需要如下几个步骤

  1. 创建 Web 应用项目
  2. 编写 Servlet 代码
  3. 部署到 Tomcat 中

开发 Web 应用项目的 IDE 可以选择 Eclipse 的 EE 版,MyEclipse 和 IDEA 等。

选择使用 Eclipse EE 版 结合独立的 Tomcat 进行一次 Java 普通项目的创建。通过最原始的方式创建一个 web 应用,掌握最基本的知识。

基于 Tomcat 的程序要成功运行,对于配置文件的正确性有着苛刻的要求,任何一个地方出错了,都会导致运行失败。

创建一个 Java 项目

依次选择 File -> New -> Other -> Java -> Java Project,输入项目名 xxx,创建一个单纯的基于 Java 的项目。

暂时不使用 File -> New -> Other - Web -> Dynamic Web Project 这种方式。这是 Eclipse EE 创建项目的方式,它会自动生成与 Tomcat 相关的各种配置文件。

导入 servlet-api.jar 包

开发 Servlet 需要用到 servlet-api.jar 包中的相关类。servlet-api.jar 包位于 Tomcat 目录\lib\servlet-api.jar

导入方式:右键点击项目 -> properties -> Java Build Path -> Libraries -> Add External JARs -> 查找选择 servlet-api.jar 文件

编写一个 Servlet

创建 HelloServlet:右键点击项目 -> New -> Class

注意: Eclipse 创建时会带有一个包名,不使用包名,让包名置空。

HelloServlet 继承了 HttpServlet 并且提供了一个 doGet 方法。在浏览器中输入地址提交数据的方式是 GET。 所以该 Servlet 需要提供一个对应的 doGet 方法。

HelloServlet.java

import java.io.IOException;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloServlet extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
	    // 输出标题元素 <h1> 和当前时间的字符串到 HTML 中
		resp.getWriter().println("<h1>Hello Servlet!</h1>");
		resp.getWriter().println(new Date().toLocaleString());
	}
	
}

配置 web.xml

首先在项目 xxx 下创建目录 web,接着再创建目录 web/WEB-INF,然后在 WEB-INF 目录下创建 web.xml

web.xml 提供路径与 Servlet 的映射关系,把 /hello 这个路径,映射到 HelloServlet 这个类上

<servlet> 标签下的 <servlet-name><servlet-mapping> 标签下的 <servlet-name> 必须一样。<servlet-name><servlet-class> 可以不一样,但是为了便于理解与维护,一般都会写成一样。

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
 
    <servlet>
        <servlet-name>HelloServlet</servlet-name>
        <servlet-class>HelloServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>HelloServlet</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
 
</web-app>

指定项目输出到 classes 目录

首先在 WEB-INF 下创建 classes 目录,然后把项目的 class 文件输出由原来的 xxx/bin 设置到 xxx/web/WEB-INF/classes 下。

步骤: 项目右键 -> properties -> Java Build Path -> Source -> 右下角的 Brower -> 指定位置是 /web/WEB-INF/classes

在 Ecilpse 中默认输出的 class 是在 bin 目录下。但是 Tomcat 启动之后,在默认情况下,不会去 bin 目录找这些 class 文件,而是到 WEB-INF/classes 这个目录下去寻找。通过这一步的配置,使得 Eclipse 的 class 文件输出到 WEB-INF/classes 目录下,那么就和 Tomcat 兼容。

配置 Tomcat 的 server.xml

xxx/web 这个目录部署到 Tomcat 中,进行如下操作:

  1. 打开 Tomcat 的 /conf/sever.xml
  2. <Host...>...</Host> 标签中添加 <Context path="/xxx" docBase="xxx项目完整路径\\web" debug="0" reloadable="false" />

path="/xxx" 表示通过 http://127.0.0.1/xxx/hello 访问网页。如果是 path="/" 则表示直接通过 http://127.0.0.1/hello 就可以访问网页。但是这样配置为 path="/"webapps 下的 ROOT 目录冲突,要删除 ROOT 目录才能使用这种方式。

启动 Tomcat,访问 Servlet

运行 startup.bat 启动 Tomcat 服务器,访问 http://127.0.0.1/xxx/hello 就可以看到 Servlet 的输出,并且每一次刷新,都能看到输出新的时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值