乐鱼电竞

  • 教育行业A股IPO第一股(股票代码 003032)

    全国咨询/投诉热线: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
    0 分享到:
    和我们在线交谈!
    【网站地图】【sitemap】