传智播客Servlet学习,Servlet执行时一般要实现的几个方法

   今天继续学习Servlet, 张老师讲了编写一个Servlet类要继承的GenericServlet与HttpServlet类和一般要实现的几个方法。举的例子代码敲了一遍,加深理解。
  GenericServlet与HttpServlet类,GenericServlet类是一个实现了Servlet的基本特征和功能的基类,其完整名称为javax.servlet.GenericServlet,它实现了Servlet和ServletConfig接口。HttpServlet类是GenericServlet的子类,其完整名称为javax.servlet.HttpServlet,它提供了处理HTTP协议的基本构架。如果一个Servlet类要充分使用Http协议的功能,就应该继承HttpServlet。在HttpServlet类及其子类中,除可以调用HttpServlet类内部新定义的方法外,还可以调用包括Servlet,ServletConfig接口和GenericServlet类中的一些方法。
 Servlet执行时一般要实现的方法
public void init(ServletConfig config)
public ServletConfig getServletConfig()
public String getServletInfo()
public void service(ServletRequest request,ServletResponse response)
public void destroy()

init ()方法在servlet的生命周期中仅执行一次,在servlet引擎创建servlet对象后执行。Servlet在调用init方法时,会传递一个包含servlet的配置和运行环境信息的ServletConfig对象。如果初始化代码中要使用到ServletConfig对象,则初始化代码就只能在Servlet的init方法中编写,而不能在构造方法中编写。缺省的init()方法通常是符合要求的,不过也可以根据需要进行 override,比如管理服务器端资源,初始化数据库连接等,缺省的inti()方法设置了servlet的初始化参数,并用它 的ServeltConfig对象参数来启动配置,所以覆盖init()方法时,应调用super.init()以确保仍然执行这些任务。

service ()方法是servlet的核心,用于响应对Servlet的访问请求。对于HttpServlet,每当客户请求一个 HttpServlet对象,该对象的service()方法就要被调用,HttpServlet缺省的service()方法的服务功能就是调用与 HTTP请求的方法相应的do功能,doPost()和doGet(),所以对于HttpServlet,一般都是重写doPost()和doGet() 方法。

destroy()方法在servlet的生命周期中也仅执行一次,即在服务器停止卸载servlet之前被调用,把servlet作为 服务器进程的一部分关闭。缺省的destroy()方法通常是符合要求的,但也可以override,来完成与init方法相反的功能。比如在卸载servlet时将统计数字保存在文件 中,或是关闭数据库连接或IO流。

getServletConfig()方法返回一个servletConfig对象,该对象用来返回初始化参数和servletContext。servletContext接口提供有关servlet的环境信息。

getServletInfo()方法提供有关servlet的描述信息,如作者,版本,版权。可以对它进行覆盖。

doxxx方法  客户端可以用HTTP协议中规定的各种请求方式来访问Servlet,Servlet采取不同的访问方式进行处理。不管那种请求方式访问Servlet,Servlet引擎都会调用Servlet的service方法,service方法是所有请求方式的入口。
   doGet 用于处理Get请求
  doPost用于处理Post请求
doHead用于处理Head请求
doPut 用于处理Put请求
doDelete 用于处理Delete请求
doTrace 用于处理Trace请求
doOptions用于处理OPTIONS请求

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值