使用HttpServletResponse修改响应数据:
response.setStatus(404) 设置状态码
response.setHeader("name","value") 修改响应头
response.getWriter().write() 以字符形式发送实体内容
response.getOutputStream().write() 以字节形式发送实体内容
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置状态码
//response.setStatus(404);
//response.sendError(404); // 404+404错误页面
//修改响应头
response.setHeader("server", "webLogic");
//修改实体内容
response.getWriter().write("this is content!"); //字符流
//response.getOutputStream().write("this is content!!!".getBytes()); //字节流
}
请求重写向案例:
定时刷新或每隔n秒跳转页面案例:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//定时2秒刷新
//response.setHeader("refresh", "2");
response.setContentType("text/html;charset=utf-8");
//每隔n秒跳转页面
response.getWriter().write("注册成功!3秒之后会跳转到主页");
//设置refresh
response.setHeader("refresh", "3;/ServletStudy/register.html");
}
content-type案例:
服务器发送给浏览器的数据类型和数据编码格式
具体MIME类型可以参考:
设置数据编码格式 两个作用:
- 设置输出数据的编码
- 告诉浏览器自动适应输出数据的编码
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置content-type响应
//response.setHeader("content-type", "text/html;charset=utf-8");
//response.setContentType("text/html;charset=utf-8");//等价于上面的代码
response.setContentType("text/html;charset=utf-8"); //和下面的代码是效果是一样的。
//response.setCharacterEncoding("utf-8"); //不会告诉浏览器自动跳转解码的码表
response.getWriter().write("<b>程序员撸码一生</b>");
}