当前位置: 首页 > news >正文

太仓建设银行网站金蝶云企业云平台

太仓建设银行网站,金蝶云企业云平台,发稿时间是什么意思,wordpress设置数字形链接报404🍎道阻且长,行则将至。🍓 本文是javaweb的第三篇,介绍了Request请求转发与Response响应。 上一篇:JavaWeb《二》Servlet、Request请求 下一篇:敬请期待 目录一、Request请求转发🍏二、Response对…
🍎道阻且长,行则将至。🍓

本文是javaweb的第三篇,介绍了Request请求转发与Response响应。
上一篇:JavaWeb《二》Servlet、Request请求
下一篇:敬请期待


目录

  • 一、Request请求转发🍏
  • 二、Response对象🍓
    • 1.响应数据
    • 2.Respones请求重定向
    • 3.响应字符数据
    • 4.响应字节数据


一、Request请求转发🍏

请求转发(forward)是一种在服务器内部的资源跳转方式。例如浏览器发送请求给服务器,服务器中对应的资源A接收到请求,A处理完请求后将请求发给资源B,B处理完后将结果响应给浏览器,这个过程就是请求转发。
在这里插入图片描述

  • 实现方式:
    req.getRequestDispatcher(“资源B路径”).forward(req,resp);
    继续上一篇的,我们创建两个servlet,req1req2,在第一个里面请求转发到第二个;只需要在doGet里面添加request.getRequestDispatcher("/req2").forward(request,response);

  • 转发数据
    请求转发资源间共享数据:使用Request对象。
    request对象提供的三个方法:
    1.存储数据到request域[范围,数据是存储在request对象]中
    void setAttribute(String name,Object o);
    2.根据key获取值
    Object getAttribute(String name);
    3.根据key删除该键值对
    void removeAttribute(String name);

继续上面代码添加:

//req1
request.setAttribute("msg","hello");
//请求转发
request.getRequestDispatcher("/req2").forward(request,response);
//req2
//获取数据
Object msg = request.getAttribute("msg");
System.out.println(msg);

二、Response对象🍓

Request:使用request对象来获取请求数据
Response:使用response对象来设置响应数据
我们
在上一篇中把内容返回到网页上就是一个响应。

1.响应数据

HTTP响应数据总共分为三部分内容,分别是响应行、响应头、响应体,对于这三部分内容的数据,respone对象都提供了一些方法来进行设置:

  • 响应行
    例如一个响应行:HTTP/1.1 200 OK,第一个是协议和版本,第二个是状态响应码,第三是状态码描述。通常是要设置状态响应码:void setStatus(int sc);
  • 响应头
    Content-Type: text/html,响应头是一个键值对,设置:void setHeader(String name,String value);
  • 响应体
    响应体是通过字符、字节输出流的方式往浏览器写,
    获取字符输出流:PrintWriter getWriter();
    获取字节输出流:ServletOutputStream getOutputStream();

2.Respones请求重定向

Response重定向(redirect):一种资源跳转方式。
在这里插入图片描述
浏览器接收到响应状态码为302就会重新发送请求到location对应的访问地址去访问资源B

  • 重定向的实现方式:
    给浏览器响应一个302的状态码+location的一个访问资源B的路径
resp.setStatus(302);
resp.setHeader("location","资源B的访问路径");

重定向浏览器地址栏路径会变化,因为进行重定向访问的时候,是浏览器发送两次请求。因此可以使用服务器外部资源。
而上一节的请求转发不会发生地址栏路径变化,其是服务内部操作。

3.响应字符数据

我们可以在浏览器上显示一些字符,也可以显示带html标签的类型。

  • 返回一个简单的字符串aaa
response.setContentType("text/html;charset=utf-8");
//1. 获取字符输出流
PrintWriter writer = response.getWriter();
writer.write("aaa");
  • 返回一串html字符串,并且能被浏览器解析
PrintWriter writer = response.getWriter();
//content-type,告诉浏览器返回的数据类型是HTML类型数据,这样浏览器才会解析HTML标签
response.setHeader("content-type","text/html");
writer.write("<h1>aaa</h1>");

4.响应字节数据

  • 将字节数据(图片等)写到浏览器,需要两个步骤:
  1. 通过Response对象获取字节输出流:ServletOutputStream outputStream = resp.getOutputStream();
  2. 通过字节输出流写数据: outputStream.write(字节数据);

实现:

//1. 读取文件
FileInputStream fis = new FileInputStream("d://a.jpg");
//2. 获取response字节输出流
ServletOutputStream os = response.getOutputStream();
//3. 完成流的copy
byte[] buff = new byte[1024];
int len = 0;
while ((len = fis.read(buff))!= -1){os.write(buff,0,len);
}
fis.close();
  • 也可以使用别人提供好的方法来简化代码:
  1. pom.xml添加依赖
<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version>
</dependency>
  1. 调用工具类方法
//fis:输入流   os:输出流
IOUtils.copy(fis,os);

实现:

//1. 读取文件
FileInputStream fis = new FileInputStream("d://a.jpg");
//2. 获取response字节输出流
ServletOutputStream os = response.getOutputStream();
//3. 完成流的copy
IOUtils.copy(fis,os);
fis.close();
快来试一试吧!

☕物有本末,事有终始,知所先后。🍭

🍎☝☝☝☝☝我的CSDN☝☝☝☝☝☝🍓

http://www.yayakq.cn/news/708314/

相关文章:

  • 哪里有网站制作建设wordpress 数据库空间
  • 最新网站域名ip查询网页制作三剑客是哪些
  • 用天地图做网站百度收录网址
  • 建设网站需要会什么惠州免费自助建站模板
  • 付费问答 WordPress嘉兴seo网络推广
  • php mysql开发的网站开发自适应自助建站网站
  • wordpress影视网站网页浏览器有哪几种
  • 做响应式网站设计做图怎么搞常州建设局网站打不开
  • 网站空间费西宁网站建设公司排名
  • 如何用front怕个做网站网站负面信息
  • 中信建设有限责任公司陶扬哈尔滨推广优化公司
  • 备案网站地址网站提供商
  • 企业公司网站西安建设教育网站
  • 360网站如何做引流如何提高网站浏览量
  • js打开网站微信手机网站开发
  • 可以接外包的网站东莞网站建设周期
  • 电商系统网站建设深圳英文网站开发公司
  • 沈阳定制网站专做兼职的网站
  • 兰州企业网站优化wordpress json插件安装
  • 青岛气象站建站时间深圳皇冠科技有限公司网站
  • wordpress购物网站教程做网站工作都包括什么
  • 做个网站设计多少钱在百度怎么发广告做宣传
  • 成都市青羊区城乡建设局网站成都企业网站建设介绍
  • 沈阳网站建设找思路网站开发公司杭州网站建设
  • 做网站需要做数据库做百度商桥网站
  • 明珠信息港网站建设专家wordpress qq主题
  • 江苏广宇建设集团有限公司 网站个人网站建设计划报告
  • 手表怎么在网站做推广如何提高网站的转化率
  • 电商网站类型网站开发技术部绩效考核
  • 沧州网站建设 凯航网站开发培训哪个好