servlet的总结

14 篇文章 1 订阅

首先看javaEE7的官方解释
在这里插入图片描述 途中框出来的分别是servlet的实现类和servlet的功能,所有已知的实现类分别是 FacesServlet, GenericServlet, HttpServlet ,其中HttpServlet是使用最为平凡的。
servlet的是java的一个小程序运行在web上的用来接收来自客户端的response和request请求的。

servlet的生命周期

void init(ServletConfig config)  //servlet的初始化由服务器完成,在服务器启动的时候会由服务器调用执行一次
void service(ServletRequest req, ServletResponse res)  //这是servlet的处理核心业务的函数,接收request和response请求完成对应的业务操作,客户短每发送一次请求就会执行一次该方法
void destroy()  //在服务器关闭的时候回被执行一次。

原生的servlet使用的较少,在日常的开发中我们使用最多的还他的子类HttpServlet,
HttpServlet
虽然我们在javaEE7的文档中看到的HttpServle是servlet的子类但是实际上从它的源码中我们可以看到HttpServlet并不是直接继承的Servlet而是直接继承的Servlet的另一个子类GenericServlet
HTTPServlet的常用方法

protected void doGet(HttpServletRequest req, HttpServletResponse resp)  
protected void doPost(HttpServletRequest req, HttpServletResponse resp)  

来看看doGet和doPost的内部代码

protected void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException
    {
        String protocol = req.getProtocol();
        String msg = lStrings.getString("http.method_post_not_supported");
        if (protocol.endsWith("1.1")) {
            resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, msg);
        } else {
            resp.sendError(HttpServletResponse.SC_BAD_REQUEST, msg);
        }
    }
   protected void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException
    {
        String protocol = req.getProtocol();
        String msg = lStrings.getString("http.method_get_not_supported");
        if (protocol.endsWith("1.1")) {
            resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, msg);
        } else {
            resp.sendError(HttpServletResponse.SC_BAD_REQUEST, msg);
        }
    } 

内部都一样的代码就是对亲求参数的判断,HttpServlet会自动对请求方法进行判断,然后分发到对应的方法中,这个分发就是重写的Servlet 的Service方法来实现的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值