前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HttpServlet类型介绍

HttpServlet类型介绍

作者头像
星哥玩云
发布2022-09-14 20:50:36
2980
发布2022-09-14 20:50:36
举报
文章被收录于专栏:开源部署

一、HttpServlet概述

HttpServlet类是GenericServlet的子类,它提供了对HTTP请求的特殊支持,所以通常我们都会通过继承HttpServlet来完成自定义的Servlet。

二、HttpServlet覆盖了service()方法

HttpServlet类中提供了service(HttpServletRequest,HttpServletResponse)方法,这个方法是HttpServlet自己的方法,不是从Servlet继承来的。

在HttpServlet的service(ServletRequest,ServletResponse)方法中会把ServletRequest和ServletResponse强转成HttpServletRequest和HttpServletResponse,然后调用service(HttpServletRequest,HttpServletResponse)方法,这说明子类可以去覆盖service(HttpServletRequest,HttpServletResponse)方法即可,这就不用自己去强转请求和响应对象了。

其实子类也不用去覆盖service(HttpServletRequest,HttpServletResponse)方法,因为HttpServlet还要做另一步简化操作,下面会介绍。

HttpServlet.java

代码语言:javascript
复制
public abstract class HttpServlet extends GenericServlet {
    protected void service(HttpServletRequest req, 
                           HttpServletResponse resp)
        throws ServletException, IOException {
        //根据request对象是GET请求还是POST请求,然后去调用
        //doGet方法或者doPost方法
        /*
        	if(req.getMethod=="GET"){
        		doGet(req,resp);
        	}
        	else{
        		doPost(req,resp);
        	}
        */
	}
    @Override
    public void service(ServletRequest req, ServletResponse res)
        throws ServletException, IOException {

        HttpServletRequest  request;
        HttpServletResponse response;

        try {
            request = (HttpServletRequest) req;
            response = (HttpServletResponse) res;
         } catch (ClassCastException e) {
            throw new ServletException("non-HTTP request or response");
        }
        service(request, response); 
	}
	……
}

三、doGet()和doPost()

在HttpServlet的service(HttpServletRequest,HttpServletResponse)方法会去判断当前请求是GET还是POST,如果是GET请求,那么会去调用本类的doGet()方法,如果是POST请求会去调用doPost()方法,这说明我们在子类中去覆盖doGet()或doPost()方法即可。

代码语言:javascript
复制
public class AServlet extends HttpServlet {
	public void doGet(HttpServletRequest request, 
                      	HttpServletResponse response)
						throws ServletException, IOException {
		System.out.println("hello doGet()...");
	}
}
代码语言:javascript
复制
public class BServlet extends HttpServlet {
	public void doPost(HttpServletRequest request, 
                       	HttpServletResponse response)
						throws ServletException, IOException {
		System.out.println("hello doPost()...");
	}
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、HttpServlet概述
  • 二、HttpServlet覆盖了service()方法
  • 三、doGet()和doPost()
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档