Servlet学习笔记(三)HttpServlet的讲解

1 概述

Servlet是Java Web应用的最核心组件,Servlet运行在Servlet容器(比如tomcat)中,能够为用户的请求提供各式各样的服务:

  1. 动态生成Html文档

  2. 把请求转发给同一个Web应用中的其他Sevlet组件,或者是jsp组件

  3. 把请求转发给其他Web应用中的Servlet组件

  4. 读取客户端的Cookie,以及向客户端写入Cookie

  5. 访问其他服务器资源,(比如数据库)

servlet之所以能完成如此众多的功能,主要依赖于几个常用的武器:

  • 请求对象(ServletRequest和HttpServletRequest):servlet可以从该对象获取客户端的请求信息
  • 响应对象(ServletResponse和HttpServletResponse):Servlet通过该对象来生成响应结果
  • 配置对象:当容器初始化一个Servlet对象时,会向Servlet提供一个ServletConfig对象,Servlet通过该对象来获取初始化参数信息以及ServletContext对象。
  • 上下文对象(ServletContext):通过该对象来访问容器为当前Web应用提供各种资源

2 Servlet核心接口

javax.servlet.Servlet接口是Servlet Api的核心,所有的Servlet类都必须实现这个接口。这个接口提供了5个方法,其中有三个方法是容器自动调用的:

  • init(ServletConfig config):该方法负责初始化Servlet对象。容器在创建好了Servlet对象之后,就会立马调用该方法

  • service(ServletRequest req, ServletResponse resp):该方法负责响应客户端的请求,为客户提供响应服务。容器接收到客户端要求访问特定Servlet对象的请求时,就会调用对应的Servlet的service方法

  • destory():负责释放Servlet对象占用的资源。当Servlet对象结束生命周期的时候,容器会自动调用

  • Servlet接口还定义了两个返回Servlet相关信息的方法,Java Web应用中我们自己可以调用这两个方法:

  • getServletConfig():返回一个ServletConfig对象,该对象中包含了Servlet的初始化参数信息

  • getServletInfo():返回一个字符串,该字符包含了Servlet的创建者,版本和版权信息。

3 GenericServlet抽象类

GenericServlet抽象类为Servlet接口提供了通用的实现。我们之前用的LoginServlet就是继承GenericServlet来实现的。
但是在以后做项目的话就不会用到这个类了,一般就是用的是HttpServlet这个类在里面

4 HttpServlet抽象类

HttpServlet抽象类是GenericServlet的子类。HttpServlet类为Servlet接口提供了和Http协议相关的通用实现。我们以后编写的给予Http协议的Java程序,我们自定义的Servlet类一般都是扩展HttpServlet抽象类。
HttpServlet重写了GenericServlet的service方法,它在service方法中首先获取客户端提交上来的Http Method,如果是GET请求调用doGet方法,如果是POST请求doPost方法,以此类推。

HttpServlet对应的serivce方法的具体实现:

protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
   
    String method = req.getMethod();
    long lastModified;
    if (method.equals("GET")) {
   
        lastModified = this.getLastModified(req);
        if (lastModified == -1L) {
   
            this.doGet(req
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值