1.Servlet是一种独立于平台和协议的服务端的Java应用程序,通过Servlet可以动态的生成web页面。
2.Servlet处理web请求的主要过程:-----1》服务器接受从客户端发出的请求,-------》服务器将请求发送到Servlet,--------》Servlet进过处理以后。生成响应的内容。
3.ServletAPI:Servlet是两个单词server和applet合成的
4.Servlet的生命周期:加载和实例化------初始化(init)----提供服务(server-doget和dopost)-----销毁(destory).
5.穿件Servlet的三种方式:实现Servlet接口或者继承GenericServlet或者继承HttpServlet-----------经常用的是继承httpServlet在实现它的四个方法,init,doget.dopost,destory
Servelt的部署:在web.xml文件中怕配置<servlet>和<servlet-mapping>标签.
6.过滤器的:创建实现Servlet接口的类--------->实现Servlet的方法doFilter,在doFilter中编写过滤的方-------调用下一个过滤器或者web资源,-------在web.xml过滤器
7.监听器,需要在web.xml中配置监听器<Listener>
每次继承httpServlet生成doget和doPOST方法会生成很多没用的注释,可以在Servlet的模板中进行修改,以后使用myeclipse创建Servlet就按照自己设置的模板进行创建了
下图是Servlet的运行简单的过程。
l
Servlet
程序是由
WEB
服务器调用,
web
服务器收到客户端的
Servlet
访问请求后:
①
Web
服务器首先检查是否已经装载并创建了该
Servlet
的实例对象。如果是,则
直接执行第④步,否则,执行第②步。
②
装载并创建该
Servlet
的一个实例对象。
③
调用
Servlet
实例对象的
init()
方法。
④
创建一个用于封装
HTTP
请求消息的
HttpServletRequest
对象和一个代表
HTTP
响
应消息的
HttpServletResponse
对象,然后调用
Servlet
的
service()
方法并将请求
和响应对象作为参数传递进去。
⑤
WEB
应用程序被停止或重新启动之前,
Servlet
引擎将卸载
Servlet
,并在卸载之
前调用
Servlet
的
destroy()
方法。
lHttpServlet指能够处理HTTP请求的servlet,它在原有Servlet接口上添加了一
些与HTTP协议处理方法,它比Servlet接口的功能更为强大。因此开发人员在编写
Servlet时,通常应继承这个类,而避免直接去实现Servlet接口。
lHttpServlet在实现Servlet接口时,覆写了
service
方法,该方法体内的代码会
自动判断用户的请求方式,如为GET请求,则调用HttpServlet的doGet方法,如为
Post请求,则调用doPost方法。因此,开发人员在编写Servlet时,通常只需要覆
写doGet或doPost方法,而不要去覆写service方法。
<load-on-startup>2</load-on-startup>
l
由于客户端是通过
URL
地址访问
web
服务器中的资源,所以
Servlet
程序若想被外界访问,必须把
servlet
程序映射到一个
URL
地址上,这个工作在
web.xml
文件中使用
<
servlet
>
元素和
<
servlet
-
mapping>
元素完成。
l
<
servlet
>
元素用于注册
Servlet
,它包含有两个主要的子元素:
<
s
ervlet
-name>
和
<
servlet
-class>
,分别用于设置
Servlet
的注册名称和
Servlet
的完整类名。
一个
<
servlet
-mapping>
元素用于映射一个已注册的
Servlet
的一个对外访问路径,它包含有两个子
元素:<servlet-name>和<url-pattern>,分别用于指定Servlet的注册名称和Servlet的对外访问路径。
l
ServletConfig
对象中维护了
ServletContext
对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象。
l
l由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletContext对象来实现通讯。ServletContext对象通常也被称之为context
域对象。
l
如果某个
Servlet
的映射路径仅仅为一个正斜杠(
/
),那么这个
Servlet
就成为当前
Web
应用程序的缺省
Servlet
。