HttpServletRequest和HttpServletResponse对象介绍

一、HttpServletRequest对象介绍
  • 客户端对于Servlet的每次访问请求,Servlet容器(如Tomcat)都会创建一个封装HTTP请求的对象和一个代表HTTP响应的对象,当调用Servlet的doGet或doPost方法时,这两个对象会作为参数被传递进去
  • HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,所发出的HTTP请求消息被封装在此对象之中,通过这个对象提供的方法,即可获得客户端发出的请求消息
  • HTTP GET请求示例
HttpServletRequest和HttpServletResponse对象介绍_第1张图片
  • HTTP POST请求示例
HttpServletRequest和HttpServletResponse对象介绍_第2张图片

2.读取请求行和请求消息头
获取(部分)请求行和请求头信息示例,Tomcat自带示例

3.读取请求参数
HttpServletRequest对象 最基本的应用获取 浏览器传递给Web服务器的 请求参数信息
3.1GET和POST方式下的请求参数
请求参数:
  • GET方式下,URL地址后的附加信息
  • POST方式下,HTTP请求消息中的实体内容部分
  • GET方式传递参数
HttpServletRequest和HttpServletResponse对象介绍_第3张图片

  • POST方式传递参数
HttpServletRequest和HttpServletResponse对象介绍_第4张图片

读取请求参数的方法
  • 通过HttpServletRequest对象的以下方法读取GET/POST方式下传递的参数
    • getParameter(), 单值读取,该方法用于返回某个指定名称的请求参数的值
      • public String getParameter(String name);
    • getParameterValues(), 多值读取,该方法用于返回某个指定名称的所有参数的值
      • public String[] getParameterValues(String name);
表单中action属性说明
action属性值指定,提交表单时输入的数据提交至服务器端程序的地址,可以用相对路径或绝对路径
  • 绝对路径形式: http://localhost:8080/RequestDecmo/servlet/Servlet1
  • 相对路径形式:
    • 以 "/" 开头,此处的 "/" 代表站点根目录,非Web应用根目录,即http://localhost:8080/之后
    • 不以 "/" 开头,相对于当前URL,
如,下图中指定表单提交至 <%= request.getContextPath()%>/courses/ saveBatch4


地址写法
  • 配置文件,web.xml配置Servlet访问路径,以 "/" 开头,此处代表当前应用根目录
  • 页面文件,相对地若以 "/" 开头,此处代表当前站点根目录
二、HttpServletResponse对象介绍
HttpServletResponse对象代表服务器端对客户端的响应,用于封装HTTP响应消息
  • HTTP响应示例
HttpServletRequest和HttpServletResponse对象介绍_第5张图片

  • 输出响应正文的方法
    • getWriter()
      • 返回一个(文本)字符输出流对象
      • 专用于输出内容为文本字符的网页文档
      • 该方法返回一个PrintWriter类型的字符输出流对象,专用于输出内容为文本字符的网页文档
      • 响应正文不是直接发送到客户端,而是首先写入Servlet容器提供的一个输出缓冲区,然后由Servlet容器返回给Web服务器程序,再经由Web服务器程序发送给客户端
      • PrintWriter对象的flush方法用来清理缓冲,close方法用来关闭输出流对象,释放资源。程序中也可以不显示调用,由Servlet容器自动关闭,并清理缓冲
      • 如: PrintWriter out = response.getWriter();
        • out.print();
        • out.println();
        • out.write();
        • out.writeln();
    • getOutPutStream()
      • 返回一个字节输出流对象
      • 如果要输出二进制格式的响应正文,应该使用该方法





你可能感兴趣的:(http)