博前“废话”
前面总结到jQuery相关知识,掌握了如何在前端使用Ajax技术与Web服务器通信,在前端我们使用JavaScript进行数据处理、html进行内容展示、css进行页面样式设计。那么我们后台使用什么? 对于java来说,毫无疑问是Servlet。虽说现在有什么SSH、SSM等框架,其实都是封装了Servlet的框架。由此可见,Servlet的地位不一般。
Servlet是什么?
Servlet是java编写的Web服务端程序。它有什么作用呢?
根据上图可以知道它的作用如下:
1. 读取用户通过浏览器发送的所有数据
2. 查询HTttp请求所包含的参数信息
3. 根据请求处理数据并生成相应的结果
4. 设置要返回给浏览器的Http响应参数
5. 将处理的结果和设置的Http响应参数一并发送给浏览器
Servlet生命周期
前面讲到servlet既然是一个程序,那么就应该有他的生命周期。从初始化阶段——>响应客户请求阶段——>销毁阶段。如下图所示:
从图中可以看出,servlet的生命周期具体是怎样的。每个阶段都有相对应的方法,下面将对其中每个方法一一总结
方法名 | 何时调用 | 描述 | 能否重写 |
---|---|---|---|
init() | 当Servlet被实例化之后,第一次调用Servlet时,容器会调用该方法 | 在Servlet处理用户请求之前,可以调用init() | 可以重写该方法,得到数据库连接或加载一些系统参数 |
service(…) | 每收到一个用户发来的请求时,servlet就开启一个新的线程,并调用service(…)方法处理用户的请求 | service(…)会根据Http请求,判断请求类型(Get/Post)并调用相应的方法进行处理 | 可以重写,使用这样的方式可以自己封装处理用户不同方式的请求 |
doGet(…)/doPost(…) | 这是service(…)方法根据Http请求的请求类型调用doGet(…)或doPost(…) | Get请求调用doGet(…)进行处理;Post请求调用doPost(…)进行处理 | 至少重写其中一个 |
destroy() | 当服务器销毁Servlet对象之前 | servlet可以清理资源 | 可以重写,做一些清理资源操作 |
Servlet的配置
掌握了Servlet的生命周期,接下来我在来看看Servlet有哪些配置,Web项目的配置文件路径:MySite/WebRoot/web-INF/web.xml。那么Servlet的配置也在该文件中,其中分为<servlet>、<servlet-mapping>
两大元素。
< servlet >元素
该元素下存在四个子元素:
元素名 | 说明 |
---|---|
< servlet-name> | 定义servlet的名字 |
< servlet-class> | 指定Servlet的类,全限定名 |
< init-param> | 定义servlet的初始化参数,可以定义多个参宿 |
< load-on-startup> | Web应用启动时,装载Servlet的顺序,数值小的最先被加载,依次类推 |
< servlet-mapping >元素
该元素有两个子元素:
元素名 | 说明 |
---|---|
< servlet-name> | 定义servlet的名字,根据此名字查找对应的< servlet>元素 |
< url-pattern> | 访问Servlet的相对路径,相对于上下文路径 |
总结
了解了什么是servlet之后,对javaWeb开发就有了更清晰的认识了。