javaweb-HttpServletResponse对象

Posted 名字真的很急用

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javaweb-HttpServletResponse对象相关的知识,希望对你有一定的参考价值。

HttpServletResponse是一个接口,它的父接口是ServletResponse,在开发中通常使用HttpServletResponse。

响应信息分为三部分:响应行,响应头,响应正文

发送状态码的相关方法
setStatus(int sc):参数是状态码
常见的状态码:200 响应成功
302 重定向
404 请求资源找不到
500 服务器代码出异常

错误信息方法:
sendError(int sc,String sm)参数是状态码

@WebServlet("/resp00")
public class 响应行的方法 extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        resp.sendError(404,"请求资源找不到!!!!");
    }
}

setStatus(int sc,String sm)第一个参数是状态码,第二个参数就是状态码的描述。

@WebServlet("/resp01")
public class response01 extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setStatus(302);
        resp.setHeader("LOCATION","/login.html");
    }
}

发送响应消息头相关的方法:
响应消息头的数据格式:key-value形式,有的是一个key,一个value,有的是一个key,多个value。

设置响应头消息:
一个key,一个value
setHeader(String key,String value)
比如:setHeader(“aa”,“AA”)
如果多次操作就会覆盖前面的value值。

一个key,对应多个value,
addHeader(String key,String value)
比如:addHeader(“aa”,“bb”);
addHeader(“aa”,“cc”);
最终的结果:aa这个头对应的值为bb,cc

设置响应数据的长度
setContentLength(int src);

设置处理乱码的方法:
setCharacterEncoding(String a);参数就是一个码表格式,比如:utf-8
setContentType(String a);参数代表响应数据的类型和码表格式,比如:text/html;charset=utf-8;

发送响应体相关的方法
getOutputstream(),通过Response向浏览器返回图片,视频等二进制文件,当然也可以向浏览器返回文本数据。
getWriter(),通常response向浏览器返回文本数据,不能向浏览器返回图片,视频等二进制文件。

实现页面定时刷新

@WebServlet("/shauxin001")
public class 刷新 extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        resp.setHeader("Refresh","5");
        resp.getWriter().write(String.valueOf(new Date()));
    }
}
@WebServlet("/resh")
public class Refesh extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        resp.setHeader("Refresh","5;/form.html");
    }
}

实现简单的重定向

<body>
<form action="/login">
<h2>密码或者用户名错误!请重新输入......</h2>
    用户名:<input type="text" name="name">
<br>
    密码:<input type="password" name="pass">

    <br>
    <input type="submit" value="提交">

</form>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>欢迎来到对抗路!!!!</h1>
</body>
</html>
@WebServlet("/login")
public class logins extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        String name = req.getParameter("name");
        String pass = req.getParameter("pass");

        if("admin".equals(name) && "12345".equals(pass)){
            resp.sendRedirect("/success.html");
        }
        else {
            resp.sendRedirect("/login.html");
        }
    }
}

重定向的特点:
1.浏览器的地址栏发生了变换
2.发送了二次请求,都是由浏览器发送的请求
重定向路径:由于是浏览器发送得到的请求,所以路径最好携带项目名称。

以上是关于javaweb-HttpServletResponse对象的主要内容,如果未能解决你的问题,请参考以下文章

HttpServletrequest 与HttpServletResponse总结

14_Response对象

HttpServletResponse对象实现文件下载

HttpServletResponse对象实现文件下载

HttpServletrequest 与HttpServletResponse总结

java代码生成器怎么用