servlet

动态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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值