首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaEE从入门到放弃(二):Servlet简介与实战

Servlet 简介

如何理解 Servlet

Servlet = Server + Applet(Applet,小程序)

Servlet是运行在 Web 服务器或应用服务器上的Java “小”程序。

使用 Servlet,可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,即与用户交互,还可以动态创建网页。也就是说,它几乎可以完成网站的所有功能。

广义的 Servlet 指任何实现了 Servlet 接口的 Java 程序。

Servlet 是学习 JSP 的基础。

Servlet 在 网络中所处的位置如下 :

Servlet 的生命周期

当 Servlet 第一次被调用的时候,其实例会被装在内存中。这个过程只会进行一次。

Servlet 的 service 函数将被调用。

在之后的访问中,service 函数直接被调用。

当 web 应用 reload 或者服务器被关闭时,Servlet 的实例被销毁。

实战:开发 HelloServlet 程序

Servlet 是 Web 应用的一部分,需要部署在服务器中。

这里,我们使用 Eclipse 的 JavaEE 版本结合 Tomcat 服务器进行开发。

部署 Tomcat 的办法请参考:在 Tomcat 中部署JAVA WEB应用

下列内容参考自 How2J.cn,这个网站为我学习 Java 提供了很大帮助,有学习的各个阶段所需的实战小练习,感谢站长!

Eclipse 等 IDE 可以很方便地创建使用 Servlet 的 Web 程序,但对于初学者来说,建议先通过手动配置加深理解。

创建普通 Java 项目

打开 Eclipse ,File->New->Java Project,创建项目 MyServlet

导入必须的servlet-api.jar包

开发 Servlet 需要用到 servlet-api.jar 这个包里的相关类。

servlet-api.jar 包位于 \tomcat\lib\servlet-api.jar

(我的路径为 D:\apache-tomcat-9.0.10\lib\servlet-api.jar)

导入办法:

右键点击项目 -> Properties -> Java Build Path ->Libraries -> Add External JARs,按上面的路径导入 jar 包,然后 Apply。

编写 Servlet

HttpServlet实现了专门用于响应HTTP请求的 Servlet,提供了响应对应 HTTP 标准请求的 doGet()、doPost() 等方法。

在项目中新建继承 HttpServlet 的 HelloServlet 类,代码如下

配置 web.xml

在 MyServlet 下创建 web 文件夹,接着再创建目录 web/WEB-INF,然后在 WEB-INF 目录中创建 web.xml(也可以在资源管理器中创建)

web.xml 提供了路径与 servlet 的映射关系,把 /hello(url-pattern) 这个路径,映射到 HelloServlet 这个类上。

servlet 标签下的 与 标签下的 必须一样。

与 可以不一样,但是为了便于理解与维护,一般都会写的一样。

指定项目输出到 classes 目录

在 ecilpse中,默认输出的 class 是在 bin 目录下,但是 tomcat 在默认情况下,会到WEB-INF/classes 这个目录下去寻找。 所以需要通过配置,使得 eclipse 的 class 文件输出到WEB-INF/classes目录下。

更改方法:

首先在 WEB-INF 目录下新建 classes 文件夹

项目右键->properties->Java Build Path->Source->Browse

选择 MyServlet/web/WEB-INF/classes

配置 Tomcat 的server.xml 中的

打开 tomcat/conf/sever.xml,在 标签的最后加一行

1

其中 docBase 的值为项目的 web 文件夹。path=”/” 表示可以直接通过设置的路径 \hello 访问项目。

启动 Tomcat,访问 localhost/hello

运行 tomcat\bin\startup.bat

这里我的 Tomcat 端口是8080,故在浏览器输入地址 http://localhost:8080/hello ,就可以看到 Servlet 的输出结果啦!

总结

在实际的项目开发中很少直接用到 Servlet,但它是 JavaEE 的重要组成部分,是日后进阶学习的基础,对深入理解 Java 企业级应用的开发有重要作用。Servlet 并不复杂,相信经过一些小小的实践,作为初学者的我们可以牢牢掌握这部分的知识!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180724G1VKES00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券