HttpServlet类

1.Servlet的主要功能是接受从浏览器发送过来的HTTP请求(request),并返回HTTP响应(response)。

2.Servlet的主要功能:

(1)、创建并返回包含客户端请求性质的动态内容HTML页面;

(2)、创建可嵌入页面到现有的HTML页面;

(3)、与其他服务器资源进行通信;

(4)、用多个客户机处理连接,接收客户机的输入;

(5)、将定制的处理提供给所有服务器的例行程序。 Servlet 通过创建一个框架来扩展服务器的能力,以提供在 Web 上进行请求和响应服务。

3.HttpServlet:

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 源码
    public abstract class HttpServlet extends GenericServlet {

        @Override
        public void service(ServletRequest req, ServletResponse res)
                    throws ServletException, IOException {
            HttpServletRequest  httpServletRequest;
            HttpServletResponse httpServletResponse;
            try {
                httpServletRequest = (HttpServletRequest) req;   [强转]
                httpServletResponse = (HttpServletResponse) res;   [强转]
            } catch (ClassCastException e) {
                throw new ServletException("non-HTTP request or response");
            }
            service(httpServletRequest, httpServletResponse);      [调用下面service()方法]
        }

        protected void service(HttpServletRequest req, HttpServletResponse resp)
                    throws ServletException, IOException {
            ……
        }
    }​​​​​​https://blog.csdn.net/weixin_42472048/article/details/81592310?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165054798816780255299229%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165054798816780255299229&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-81592310.142^v9^control,157^v4^control&utm_term=httpservlet%E7%B1%BB&spm=1018.2226.3001.4187icon-default.png?t=M3K6https://blog.csdn.net/weixin_42472048/article/details/81592310?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165054798816780255299229%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165054798816780255299229&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-81592310.142^v9^control,157^v4^control&utm_term=httpservlet%E7%B1%BB&spm=1018.2226.3001.4187

4.doGet() 和 doPost():

(1)、servlet服务器会根据service(HttpServletRequest,HttpServletResponse)方法判断是采用doGet()还是doPost()方法;

(2)、二者的区别:都接受请求 (HttpServletRequest)和响应 (HttpServletResponse)。 这两种方法有本质的区别,get只有一个流,大小个数有严格限制且只能是字符串。 post的参数是通过另外的流传递的,不通过url,所以可以很大,也可以传递二进制数据,如文件的上传。再者,doGet()方法会将页面输入的用户名密码在URL地址末尾显示出来,所以保密性能略逊一筹。在方法没有明确是采用哪一种方法的时候默认采用doGet()。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值