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 并不复杂,相信经过一些小小的实践,作为初学者的我们可以牢牢掌握这部分的知识!
领取专属 10元无门槛券
私享最新 技术干货