Servlet的 GenericServlet 和 HttpServlet

一、GenericServlet?

servlet 是一个接口  下面有两个抽象类  GenericServlet 和 HttpServlet  需要被 继承并重写其中的方法。
package javaweb;

import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
@WebServlet("/zxh")  //注解配置  不需要xml配置
public class GenericServletDemo  extends GenericServlet {
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("servlet 的儿子  generic servlet  是一个抽象类  子类继承时 需要重写他的一个抽象方法! ");
    }
}

二、HttpServlet?

package javaweb;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.io.IOException;
/*

一  HttpServlet?
    HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,
    HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户的这些信息。

二 HttpServletRequest常用方法?
    getRequestURL方法返回客户端发出请求时的完整URL
    getRequestURI方法返回请求行中的资源名部分
    getQueryString方法返回请求行中的参数部分(参数名+值)
    getRemoteAddr方法返回发出请求的客户机的IP地址
    getRemoteHost方法返回发出请求的客户机的完整主机名
    getRemotePort方法返回web服务器所使用的网络端口号
    getLocalPort方法返回web服务器所使用的网络端口号
    getLocalAddr方法返回web服务器的IP地址
    getLocalName方法返回web服务器的主机名

三  request?和 response?
        1.原理?
             由服务器创建 可以使用它
             request 对象获取请求消息  response对象是响应

        3.request继承关系
             request------- servletrequest--------httpservletrequest(由Tomcat创建)

        4.方法?【获取请求行的数据】
             1  获取请求的方式   getMethod();
             2 目录的路径     getContextPath();    *****
             3 获取servlet路径 getServletPath();
             4 获得get请求参数   getQueryString();
             5获取请求的url    getRequestURI();
                               getRequestURL();     *****
             6 获得协议版本   getProtocol();
             7  获取客户的ip   getRemoteAddr();

        5.其他方法?【获取请求参数的通用方式】 get post 都可以
               1 getParameter(String name);
               2 根据参数的名称获得参数的数组   getParameterValues(String name)
               3 getParameterNames()  获得所有的请求参数的名称
               4 getParameterMap()  获得所有参数的集合  map
 */
@WebServlet("/text.html")
public class HttpServletDemo extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("提交方式为Post");
//        1  获取请求的方式   getMethod();
        String method = request.getMethod();
        System.out.println(method);
//        2 目录的路径     getContextPath();    *****
        String contextPath = request.getContextPath();
        System.out.println(contextPath);
//        3 获取servlet路径 getServletPath();
        String servletPath = request.getServletPath();
        System.out.println(servletPath);
//        4 获得get请求参数   getQueryString();
        String s = request.getQueryString();
        System.out.println(s);
//        5获取请求的url    getRequestURI();
        String re = request.getRequestURI();
//        getRequestURL();     *****
        System.out.println(re);
//        6 获得协议版本   getProtocol();
        String protocol = request.getProtocol();
        System.out.println(protocol);
//        7  获取客户的ip   getRemoteAddr();
        String remoteAddr = request.getRemoteAddr();
        System.out.println(remoteAddr);


    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("提交方式为get");
    }
}
原文地址:https://www.cnblogs.com/ZXF6/p/10686629.html