Servlet学习总结(4)----HttpServlet学习笔记

1、GenericServlet

全名是javax.servlet.GenericServlet,是javax.servlet.http.HttpServlet的直接父类,一种与协议无关的servlet。
通用Servlet。

2、HttpServlet

javax.servlet.http.HttpServlet
<1>抽象类
<2>继承于GenericServlet
<3>实现了java.io.Serializable接口
<4>HttpServlet的子类必须重写我们常用的doPost或doGet方法中的一种,这里需要说明一下,因为我们之前了解到的是当访问Servlet时,会去调用Servlet的service方法,那这里我们为什么会去重写doPost或者doGet方法呢?原因就是HttpServlet的源码中,service方法中根据市GET请求还是POST请求,跳转到对应的doPost或者doGet方法,具体请见:http://blog.csdn.net/jin970505/article/details/78935152
<5>doGet是给GET方式的HTTP请求做响应的doPost是给POST方式的HTTP请求做响应的
<6>看一个httpservlet的代码:重写了doGet方法,并且在doPost方法中调用了doGet方法,于是无论调用哪个那个方法都会去使用doGet的业务逻辑。

package one;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HttpServletDemo extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("doGet方法被调用");
        resp.getOutputStream().write("doGet方法被调用".getBytes());
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req,resp);
    }



}

你可能感兴趣的:(Java,Web)