HttpServlet的子类要从HTTP请求中获得请求参数,应该调用哪个方法?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HttpServlet的子类要从HTTP请求中获得请求参数,应该调用哪个方法?相关的知识,希望对你有一定的参考价值。

A.调用HttpServletRequest对象的getAttribute()方法
B.调用ServletContext对象的getAttribute()方法
C.调用HttpServletRequest对象的getParameter()方法
D.调用HttpServletRequest对象的getHeader()方法

参考技术A 回答
HttpServlet的子类要从HTTP请求中获得请求参数,应该调用哪个方法?
A.调用HttpServletRequest对象的getAttribute()方法B.调用ServletContext对象的getAttribute()方法C.调用HttpServletRequest对象的getParameter()方法D.调用HttpServletRequest对象的getHeader()方法
展开
javascript

HttpServlet类

HttpServlet类

javax. servlet. http包中定义了使用HTTP协议创建的Servlet所需要的接口和类。其中某些接口和类扩展了javax. servlet包中对应的接口和类来实现对HTTP协议的支持。

  • HttpServlet 抽象类: 它用于创建支持HTTP协议的Servlet。
  • HttpServletRequest接口: 是基于HTTP协议的请求对象,它继承了ServletRequest接口。
  • HttpServletResponse接口: 是基于HTTP协议的响应对象,它继承了ServletResponse接口。
  • HttpSession接口: 实现会话管理的接口,也用来存储用户信息。.
  • Cookie类: 创建Cookie对象的一个实现类。

HttpServlet抽象类

HttpServlet抽象类扩展了GenericServlet类,它用来实现针对 HTTP协议的Servlet,在HttpServlet类中增加了一个新的service(),格式如下:

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException

该方法是Servlet向客户请求提供服务的一个方法﹐我们编写的Servlet可以覆盖该方法。

此外,在HttpServlet中针对不同的HTTP请求方法定义了不同的处理方法,如处理GET请求的doGet()格式如下:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException

通常,我们编写的Servlet需要继承HttpServlet类并覆盖doGet()或doPost()方法。

HttpServletRequest接口

HttpServletRequest接口继承了ServletRequest接口并提供了针对HTTP请求的操作方法,如定义了从请求对象中获取HTTP请求头,Cookie等信息的方法。

HttpServletResponse接口

HttpServletResponse接口继承了ServletResponse接口并提供了针对 HTTP的发送响应的方法。它定义了为响应设置如HTTP头,Cookie信息的方法。

代码演示

在我们用idea创建javaweb项目时,项目已经自动给我们创建一个默认的HttpServlet类,如下所示
在这里插入图片描述

下面对代码进行修改

package com.example.DemoTest;

import javax.servlet.ServletException;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.time.LocalDate;
import java.time.LocalTime;

@WebServlet(name = "helloServlet", value = "/hello-servlet")
public class HelloServlet extends HttpServlet {
    /* 重写父类方法 */
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
        resp.setContentType("text/html; charset = utf-8"); //接口调用抽象方法设置响应的内容类型
        PrintWriter out = resp.getWriter(); //接口调用抽象方法获得输出流对象
        /* 向浏览器写出html数据*/
        out.print("<html>");
        out.print("<body><title>Hello Servlet</title>");
        out.print("<h1 style = 'color: # 00f'>Hello,World!</h1>");
        out.println("今天的日期:" + LocalDate.now() + "<br>");
        out.println("今天的时间:" + LocalTime.now() + "<br>") ;
        out.println("</body>");
        out.println("</html>");
    }
}

运行结果
在这里插入图片描述

以上是关于HttpServlet的子类要从HTTP请求中获得请求参数,应该调用哪个方法?的主要内容,如果未能解决你的问题,请参考以下文章

HttpServlet容器响应Web客户请求流程?

servlet入门

Servlet,GenericServlet和HttpServlet的继承关系

哪一个对象可以用于获得浏览器发送的请求。

HttpServlet类

HttpServlet类