全国咨询/投诉热线:400-618-4000

Java培训之response如何发送状态码

更新时间:2016年07月27日14时13分 来源:传智播客Java培训学院 浏览次数:

在上一节服务器如何处理客户端请求中,我们了解,request对象中封装了请求信息,使用response对象可以向客户端响应消息。在Http协议详解之响应中,我们知道响应首行信息中包含了响应状态码,而今天,我们要学习的就是如何使用response向客户端发送状态码。
response对象的类型是HttpServletResponse。Servlet的生命周期方法之一service()方法,它的两个参数的类型分别是ServletRequest和ServletResponse。其中HttpServletResponse和ServletResponse是子与父的关系,在HttpServlet类中,生命周期方法service()将它的参数都强转成HttpServletRequest类型和HttpServletResponse 类型。
ServletRequest和ServletResponse是与协议无关的两个接口,而HttpServletRequest和HttpServletResponse是与http协议有关的两个接口。
下面我们来了解HttpServletResponse,首先查看该接口的API,如图1-1所示:
图1-1 HttpServletResponse接口方法
图1-1中,有三个方法被红色标注,它们是发送状态码的相关方法,与Http协议相关,因此该方法是在HttpServletResponse类中定义。
接下来对着三个方法进行分析,如下所示:
(1)void sendError(int sc)
  该方法是向客户端发生错误的状态码,例如404、500等。
(2)void sendError(int sc,java.lang.String msg)
  该方法是向客户端发送错误的状态码,并且添加错误信息,例如,404,您访问的资源不存在。
(3)void setStatus(int sc)
  该方法是向客户端发送成功的状态码,还可以用来发送302状态码。
下面我们来看一个案例,使用response向客户端发送404状态码,具体如下:
(1)创建web应用,Example01,在该应用中新建一个Servlet类,StatusServlet,主要代码如例1-1所示:
例1-1 StatusServlet.java
public class StatusServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response)
           throws ServletException, IOException {
            response.sendError(404,"您访问的资源不存在");
    }
}
(2)StatusServlet在web.xml文件中配置的访问路径是“/StatusServlet”;
(3)将Example10发布到Tomcat服务器中,然后启动服务器,在浏览器地址栏上输入:http://localhost:8080/Example01/StatusServlet,浏览器显示结果如图1-2所示:
图1-2 浏览器显示结果
由图1-2所示,在StatusServlet类中,使用response发送404状态码发送成功,这里要注意的是,当使用response的setStatus(int sc)方法发送404状态码时,不起任何作用。

本文版权归传智播客Java培训学院所有,欢迎转载,转载请注明作者出处。谢谢!
作者:传智播客Java培训学院
首发:http://www.itcast.cn/javaee

javaee

python

web

ui

cloud

test

c

netmarket

pm

Linux

movies

robot

uids

北京校区

    14天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    20天免费试学

    基础班入门课程限时免费

    申请试学名额

    8天免费试学

    基础班入门课程限时免费

    申请试学名额

    20天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    0天免费试学

    基础班入门课程限时免费

    申请试学名额

    12天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    10天免费试学

    基础班入门课程限时免费

    申请试学名额