response响应

响应的构成部分

1.状态行
protocol: http协议版本
status code: 状态码

  • 1xx: 信息响应类,表示接收到请求并且继续处理
  • 2xx: 处理成功响应类,表示动作被成功接收、理解和接受
  • 3xx: 重定向响应类,为了完成指定的动作,必须接受进一步处理
  • 4xx: 客户端错误,客户请求包含语法错误或者是不能正确执行
  • 5xx: 服务端错误,服务器不能正确执行一个正确的请求 OK 表示状态描述,只是一个文本的描述。

status message: 状态描述

2.响应头
服务器定义内容, 把内容通过http响应返回到客户端!

3.响应内容
响应是从服务器向客户端(浏览器)写入的!

响应总共有两个类型

1.响应文本 字符串
把字符串传输到浏览器, 然后由浏览器负责解析!

//响应文本
response.getWriter();

2.响应流 文件
文件下载

//响应流
response.getOutputStream();

常用方法

package com.javakc.web1.user;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;//response常用方法
public class UserServlet7 extends HttpServlet {@Overrideprotected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//从服务器端向客户端返回响应头信息response.setHeader("username", "admin");//响应文本//向客户端返回htmlresponse.setContentType("text/html;charset=UTF-8");PrintWriter writer = response.getWriter();writer.write("<h1>Hello world</h1>");writer.flush();writer.close();//向客户端返回jsonresponse.setContentType("application/json;charset=UTF-8");PrintWriter writer1 = response.getWriter();String json = "{\"name\": \"admin\", \"age\": 21}";writer1.write(json);writer1.flush();writer1.close();//响应流//1.指定响应类型 图片response.setContentType("image/jpeg");//2.获取文件输入流String path = "C:\\Users\\a\\Pictures\\谭晓聪\\txc.jpg";//3.获取响应流OutputStream out = response.getOutputStream();out.write(Files.readAllBytes(Path.of(path)));out.flush();out.close();//1.指定响应类型 图片response.setContentType("image/jpeg");//2.获取文件输入流String path = "C:\\Users\\a\\Pictures\\谭晓聪\\txc.jpg";File imageFile = new File(path);InputStream input = new FileInputStream(imageFile);//2.获取响应流OutputStream out = response.getOutputStream();int len = 0;byte[] b = new byte[1024];while ((len = input.read(b)) > 0) {out.write(b, 0, len);}out.flush();out.close();//文件下载//1.指定响应类型 图片response.setContentType("image/jpeg");//2.获取文件输入流String path = "C:\\Users\\a\\Pictures\\谭晓聪\\txc.jpg";//3.获取响应流//重置响应response.reset();//通知浏览器 响应类型response.setHeader("Content-Disposition", "attachment;filename=1.jpg");OutputStream out = response.getOutputStream();out.write(Files.readAllBytes(Path.of(path)));out.flush();out.close();//1.指定响应类型 图片response.setContentType("image/jpeg");//2.获取文件输入流String path = "C:\\Users\\a\\Pictures\\谭晓聪\\txc.jpg";File imageFile = new File(path);InputStream input = new FileInputStream(imageFile);//3.获取响应流//重置响应response.reset();//通知浏览器 响应类型response.setHeader("Content-Disposition", "attachment;filename=1.jpg");OutputStream out = response.getOutputStream();int len = 0;byte[] b = new byte[1024];while ((len = input.read(b)) > 0) {out.write(b, 0, len);}out.flush();out.close();}
}

分发器重定向

package com.javakc.web1.user;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;public class UserServlet8 extends HttpServlet {@Overrideprotected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//分发器跳转页面request.getRequestDispatcher("/success.html").forward(request, response);//重定向跳转response.sendRedirect(request.getContextPath() + "/success1.html");}
}
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>success</title>
</head>
<body>
success
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>success1</title>
</head>
<body>
success1
</body>
</html>

分发器、重定向区别

分发器 重定向
是否携在参数 携在参数 不携在参数
请求次数 一次请求 两次请求
跨域 不支持 支持
地址栏 不会发生改变 会发生改变,新地址是重定向后的地址

错误提示

web.xml

 <!--错误页面--><error-page><error-code>404</error-code><location>/error/404.html</location></error-page>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>404</title>
</head>
<body>
很遗憾,页面找不到
</body>
</html>

response响应,常用方法,分发器重定向,错误提示相关推荐

  1. angularjs 表单校验指令_angular4.0的模板式表单、响应式表单及其错误提示

    模板式表单 NgForm.NgModel.NgModelGroup是FormModule里的内容,NgForm会自动拦截标准的表单处理事件(eg.提交),angular用ngSubmit代替标准的表单 ...

  2. 【前端备份】20个国外非常漂亮的404错误提示网页模板

    404是W3C规定的HTTP状态码中的一种步骤阅读错误提示是WWW网站访问比较经常出现的错误. 收集了20个国外非常漂亮的404提示网页模板. [1]手里拿着网页404错误提示牌子页面模板 文件大小: ...

  3. response响应

    在service()中可以使用request来获取请求数据,还可以使用response向客户端响应,response有响应流.request和response是一次性的,即每次请求都要创建新的. re ...

  4. web api开启错误提示_当HTTP状态代码不足时:处理Web API错误报告

    web api开启错误提示 RESTful Web API设计的一个领域(经常被忽视)是如何报告与业务或应用程序有关的错误和问题. 首先要想到HTTP状态代码的正确用法,尽管非常方便,但通常它的信息量 ...

  5. SVN各种错误提示产生原因及处理方法

    SVN各种错误提示产生原因及处理方法大全 1. svn: Server sent unexpected return value (500 Internal Server Error) in resp ...

  6. http协议之response响应详解

    1,http响应 HTTP/1.1 200 OK             --响应行 Server: Apache-Coyote/1.1    --多个响应头 Content-Length: 51 D ...

  7. Spring boot自定义拦截器和拦截器重定向配置简单介绍~!

    大家好: 本文简单介绍一下用于权限控制的Spring boot拦截器配置,拦截器重定向问题. 开发工具:jdk1.8   idea2017(付费版,网上找的破解教程) 1,首先使用idea创建一个Sp ...

  8. AJAX,SpringMVC,拦截器(Ajax发送请求 经过SpringMVC拦截器重定向其他页面失败)

    Ajax发送请求 经过SpringMVC拦截器重定向其他页面失败 借鉴出处 Ajax是通过异步请求后台,获取数据,局部刷新页面,因此,即使后台进行页面跳转的编码,前台请求完毕以后,只会执行ajax的回 ...

  9. SVN各种错误提示产生原因及处理方法大全

    SVN各种错误提示产生原因及处理方法大全 1.  svn: Server sent unexpected return value (500 Internal Server Error) in res ...

最新文章

  1. 如何卸载office201032位_微软官方安装卸载修复工具、恶意软件删除工具,了解下!...
  2. SAP PM维护计划
  3. BC26通过LWM2M协议连接ONENET,AT流程,STM32代码
  4. USTC English Club Note20171012(4)
  5. linux下面使用飞书个人版预览doc
  6. linux强制将数据写入磁盘,防止丢失内存的数据
  7. C++函数模板机制结论
  8. FragmentActivity和Activity的区别
  9. Linux的tar解压命令
  10. 【毕业季】致毕业生的一句话:天高任鸟飞,海阔凭鱼跃
  11. python进制转换问题“输入十进制整数和欲转换的进制数r,将十进制转换为r进制数(r>=2)”
  12. u盘服务器安装win7系统,服务器u盘安装win7系统
  13. 消费者行为学的典型营销案例
  14. php的seeder是什么,Seeder(一)
  15. 亿级视频内容如何实时更新?
  16. python判断字符串包含中文、数字、英文
  17. uni-app中使用腾旭位置服务,实现周边搜索功能,并获取到前往对应位置所需的时间(步行或驾车)
  18. python足球联赛赛程_足球联赛赛程表工作表
  19. 虚拟机搭建Ubuntu16.04系统
  20. HEVC帧间预测原理

热门文章

  1. 5G加速,为什么说紫光股份是运营商市场的大赢家?
  2. [npm]npm包删除善后
  3. 网页设计各种颜色搭配 并且哪几种颜色可以做成哪种风格
  4. HTML中z index属性是用来,css中z-index 属性与用法详解
  5. 对比面向对象和面向服务
  6. (附源码)spring boot网上商品定制系统 毕业设计 180915
  7. 测试中case是什么
  8. Unity3d 2019.3 通过 Ctrl 键让移动是固定步距
  9. 语义分析——TEST编译器(3)
  10. 苹果6如何截屏_苹果商量里需要花6元,才能买到的游戏:论如何建立一个修仙门派,到底好不好玩...