您的位置:首页 > 其它

servlet

2016-06-15 20:26 225 查看
动态web资源开发技术有两种:servletjsp

servlet:动态web资源开发技术。sun公司提供了一个servlet接口,若想开发一个动态web资源,需完成:1、编写一个java类,实现servlet接口;2、把开发好的java类部署到web服务器中。

servlet的生命周期:用户第一次访问servlet时创建servlet对象,这个对象就驻留在内存,供后续请求;servlet被创建时,init()方法会执行;客户端的每次请求会导致service()方法执行;servlet被摧毁时,destroy()方法执行,web应用关闭或删除时,servlet对象会被摧毁。

注:在servlet的整个生命周期内,servlet的init方法只被调用一次(因为对象只创建一个)。而对一个servlet的每次访问请求都导致servlet引擎调用一次servlet的service方法。对于每次访问请求,servlet引擎都会创建一个新的HttpServletRequest请求对象和一个新的HttpServletResponse响应对象,然后将这两个对象作为参数传递给它调用的servlet的service方法,service方法再根据请求方式分别调用doXXX方法。

Servlet运行过程:servlet程序是由web服务器调用。

web服务器中调用servlet的程序叫做servlet引擎

servlet是供其他java程序(servlet引擎)调用的java类,它不能独立运行,它的运行完全由servlet引擎来控制和调度。

web服务器收到客户端的servlet访问请求后:

1. web服务器首先检查是否已经装载并创建了该servlet的实例对象。如果是,则直接执行第4步;否则,执行第2步。

2. 装载并创建该servlet的一个实例对象。

3. 调用servlet实例对象的init()方法。

4. 创建一个用于封装HTTP请求的HttpServletRequest对象和一个代表HTTP响应消息的HttpServletResponse对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。

5. web应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。

:针对客户端的多次servlet请求,通常,服务器只会创建一个servlet实例对象,也就是说servlet实例对象一旦创建,它就会驻留在内存中,为后续的其他请求服务,直至web容器退出,servlet实例对象才会销毁。

Servlet接口实现类:GenericServlet、HttpServlet

HttpServlet:能够处理http请求的servlet,HttpServlet在实现servlet接口时,覆盖了service方法,该方法会自动判断用户的请求方式,若为GET请求,则调用HttpServlet的doGet方法;若为POST请求,则调用doPost方法。因此在编写servlet时,只需覆盖doGet或doPost即可,而不要覆盖service方法。

servlet映射到URL地址

客户端是通过URL地址访问web服务器中的资源,所以servlet程序若想被外界访问,必须把servlet程序映射到一个URL地址上。同一个servlet可以被映射到多个URL上,Servlet映射到的URL也可以使用
*
通配符,但只能有两种固定的格式:一种是”
*.扩展名
“(例:
*.html
*.do
),另一种是以正斜杠(/)开头并以“
/*
”结尾(例:
/*
/action/*
)。

:1、多个servlet都匹配到请求URL,
*
在前的servlet优先级最低。

2、如果某个servlet的映射路径仅仅为一个正斜杠(/),那么这个servlet就成为当前web应用程序的缺省servlet。缺省servlet用于处理所有其他servlet都不处理的访问请求。当访问服务器中某个静态HTML文件和图片时,实际上就在访问这个缺省servlet
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  servlet