java web第四章 Day42020080605018

请求和响应

学习目标

  1. HttpServletResponse对象
  2. HttpServletResponse应用

一、 HttpServletResponse对象:Servlet最主要的作用就是处理客户端请求,并向客户做出响应。为此,针对Servlet的每次请求,Web服务器在调用servlet ()方法之前都会创建两个对象分别是HttpServletRequest和HttpServletResponse。其中,HttpServletRequest用于封装HTTP请求消息,简称request对象。HttpServletResponse用于封装HTTP响应消息,简称reponse对象。这两个对象在Servlet过程至关重要。如图:
在这里插入图片描述
需要注意的是,在Web服务器运行阶段,每个Servlet都只会创建一个实例。然而,每次HTTP请求,Web服务器都会调用所请求的Servlet实例的servlet(HttpServletRequest request,HttpServletResponse response)方法,重新创建一个request对象和一个response对象。

课堂实例:
在这里插入图片描述
一、浏览器通过 localhost:8080 连接服务器;
二、服务器在 webapps 目录下寻找 web01 目录,找到后进入web01 目录内寻找 WEB-INF 目录,在进入 WEB-INF 目录内寻找 web.xml 文件;
三、再进入 web.xml 文件中找到 greeting,从而找到对应的 servlet-name,再找到某个 servlet 的子类,并创建该类的实例对象;
四、再调用该对象的 service 方法,并传入 request 和 response 两个对象参数,service 方法会从 request 对象中获取到 name=zs,然后执行 service 方法中的业务逻辑语句,并把结果写入到 response 中;
五、而后 server 会从response 中获得结果传送给浏览器显示出来。

HttpServletResponse对象
在Servlet API中,定义了一个HttpServletResponse接口,它继承自ServletResonse接口,专门用来封装HTTP响应消息。由于HTTP响应消息分为状态行、响应消息头、消息体三部分。因此在HttpServletResponse接口中定义了向客户端发送响应状态码、响应消息头、响应消息体的方法。

二、发送状态码相关的方法
当Servlet向客户端回送响应消息时,需要在响应消息中设置状态码。为此在HttpServletResponse接口中,定义了两个发送状态码。

1.setStatus(int status)方法
该方法用于设置HTTP响应消息的状态码,并生成响应状态行。由于在响应状态行中的状态描述信息直接与状态码相关,而HTTP版本由服务器确定,由此,只要通过setStatus(int status) 方法设置了状态码,即可实现状态行的发送。需要注意的是,正常情况下,Web服务器会默认产生一个状态码为200的状态行。

2.sendError(int sc)方法
该方法用于发送表示错误消息的状态码,例如,404状态码表示找不到客户端请求的资源在response对象中,提供了两个重载的sendError(int sc)方法,具体如下。

public void sendError(int code) throws java.io.IOException
public void sendError(int cide, String message) throws java.io.IOException

上面重载方法中,第一个只是发送错误信息状态码,第二个方法除了发送状态码外,还可以增加一条用于提示说明的文本信息,该文本信息将出现在发送给客户端的正文内容中。

三、发送响应消息头相关的方法
在这里插入图片描述
四、请求转发、重定向
在这里插入图片描述

五、总结:

本章主要介绍了HttpServlet对象以及应用其中,HttpServleresponse对象封装http响应的消息,HttpServleResponse对象与应用在web、开发中至关重要。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值