关于Servlet的小结

   Servlet,顾名思义,是服务端小程序。它通过提供Java的一些接口和类及其方法来达到跨平台的目的,Servlet在启用 Java 的 Web 服务器或应用服务器上运行并扩展了该服务器的能力。Java servlet对于Web服务器就好象Java applet对于Web浏览器。Servlet装入Web服务器并在其中执行,而applet装入Web浏览器并在Web浏览器内执行。

    Servlet工作机理,
它通过创建一个框架来在 Web 上进行请求和响应服务,以达到扩展服务器的目的。当启动 Web 服务器或客户机第一次请求服务时,可以自动装入 Servlet这是通过在服务器上进行相应配置后由服务器特殊功能实现的。当客户机发送请求(比如由HttpServletRequest)至服务器时,服务器可以将请求信息发送给 Servlet,并让 Servlet 建立起服务器返回给客户机的响应(比如由HttpServletResponse)

    Servlet的生命周期,
始于将它装入 Web 服务器的内存时,并在终止或重新装入 Servlet 时结束。
(1) 初始化
  在下列时刻装入 Servlet:
 如果已配置自动装入选项,则在启动服务器时自动装入
 在服务器启动后,客户机首次向 Servlet 发出请求时
 重新装入 Servlet 时装入 Servlet 后,服务器创建一个 Servlet 实例并且调用 Servlet 的 init() 方法。在初始化阶段,Servlet 初始化参数被传递给 Servlet 配置对象。
  (2) 请求处理
  对于到达服务器的客户机请求,服务器创建特定于请求的一个“请求”对象和一个“响应”对象。服务器调用 Servlet 的 service() 方法,该方法用于传递“请求”和“响应”对象。service() 方法从“请求”对象获得请求信息、处理该请求并用“响应”对象的方法以将响应传回客户机。service() 方法可以调用其它方法来处理请求,例如 doGet()、doPost() 或其它的方法。对于多个请求同时访问同一Servlet时,大家使用同一个Servlet对象,每个请求调用一遍service()-service-doGet()/doPost(),并且以多线程的方式运行,因此,在Servlet中不要设计成员变量,那样会造成多个用户使用同一个变量!
  (3) 终止
  当服务器不再需要 Servlet, 或重新装入 Servlet 的新实例时,服务器会调用 Servlet 的 destroy() 方法。

    Servlet API中的几个重要接口,类和方法。Servlet接口,GenericServlet抽象类,HttpServlet类,Service()方法。
GenericServlet和HttpServlet实现了Servlet接口,我们写程序如果要想响应客户端的HTTP请求就应该继承HttpServlet,并且重写它的一些方法。我们从Servlet API中可以看到,Servlet接口和GenericServlet抽象类以及HttpServlet类,都有service(ServletRequest,ServletResponse),而且HttpServlet类又提供了一个新的service(HttpServletRequest,HttpServletResponse)。由于Servlet接口GenericServlet抽象类都只提供了一些粗糙的信息,并没有包含请求的具体信息(比如用的什么协议和放到什么服务器上处理等),所以它们的service(ServletRequest,ServletResponse)都只是声明或者抽象的,而HttpServlet类提供了具体信息,它进行了service方法的具体实现,并且它用service(ServletRequest,ServletResponse)进行散发客户端请求到service(HttpServletRequest,HttpServletResponse)处理,即service(ServletRequest,ServletResponse)调用service(HttpServletRequest,HttpServletResponse)再由service(HttpServletRequest,HttpServletResponse)调用别的方法(如doGet(),doPost())。对于具体什么时候用doGet(),什么时候用doPost(),默认采用doGet(),只有在表单中method属性指定采用post提交方式时才调用doPost()。

    Servlet具体写时的注意细节,在浏览器中的访问路径:http://ip:port/项目名称/在web中配置的url;在form表单中指定servlet处理类,可以用绝对路径
http://ip:port/项目名称/在web中配置的url,也可以用项目名称/在web中配置的url。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值