Response笔记

基于 Python Flask 的智能个人财务系统 4.财务分析与报告:自动生成财务分析报告,提供图表展示(如饼图、柱状图)帮助用户了解收支状况和财务趋势。9.管理员管理功能:提供管理员模块,允许管理员查看用户财务数据、生成统计报告,并进行用户管理与权限控制。5.资产管理:用户可以记录并追踪个人资产(如房产、车辆、投资等),系统提供资产价值增减情况和趋势分析。3.预算制定与管理:用户根据收入设定每月预算,系统自动对比实际支出与预算差异,实时提醒预算完成情况。6.信用卡管理:提供信用卡账单记录与管理功能,提醒用户信用卡还款日期,避免逾期,帮助管理信用卡消费。 阅读详情

今日内容

1. HTTP协议:响应消息
2. Response对象
3. ServletContext对象

HTTP协议:

1. 请求消息:客户端发送给服务器端的数据
	* 数据格式:
		1. 请求行
		2. 请求头
		3. 请求空行
		4. 请求体
2. 响应消息:服务器端发送给客户端的数据
	* 数据格式:
		1. 响应行
			1. 组成:协议/版本 响应状态码 状态码描述
			2. 响应状态码:服务器告诉客户端浏览器本次请求和响应的一个状态。
				1. 状态码都是3位数字 
				2. 分类:
					1. 1xx:服务器就收客户端消息,但没有接受完成,等待一段时间后,发送1xx多状态码
					2. 2xx:成功。代表:200
					3. 3xx:重定向。代表:302(重定向),304(访问缓存)
					4. 4xx:客户端错误。
						* 代表:
							* 404(请求路径没有对应的资源) 
							* 405:请求方式没有对应的doXxx方法
					5. 5xx:服务器端错误。代表:500(服务器内部出现异常)
						
				
		2. 响应头:
			1. 格式:头名称: 值
			2. 常见的响应头:
				1. Content-Type:服务器告诉客户端本次响应体数据格式以及编码格式
				2. Content-disposition:服务器告诉客户端以什么格式打开响应体数据
					* 值:
						* in-line:默认值,在当前页面内打开
						* attachment;filename=xxx:以附件形式打开响应体。文件下载
		3. 响应空行
		4. 响应体:传输的数据


	* 响应字符串格式
		HTTP/1.1 200 OK
		Content-Type: text/html;charset=UTF-8
		Content-Length: 101
		Date: Wed, 06 Jun 2018 07:08:42 GMT

		<html>
		  <head>
		    <title>$Title$</title>
		  </head>
		  <body>
		  hello , response
		  </body>
		</html>

Response对象

* 功能:设置响应消息
	1. 设置响应行
		1. 格式:HTTP/1.1 200 ok
		2. 设置状态码:setStatus(int sc) 
	2. 设置响应头:setHeader(String name, String value) 
		
	3. 设置响应体:
		* 使用步骤:
			1. 获取输出流
				* 字符输出流:PrintWriter getWriter()

				* 字节输出流:ServletOutputStream getOutputStream()

			2. 使用输出流,将数据输出到客户端浏览器


* 案例:
	1. 完成重定向
		* 重定向:资源跳转的方式
		* 代码实现:
			//1. 设置状态码为302
	        response.setStatus(302);
	        //2.设置响应头location
	        response.setHeader("location","/day15/responseDemo2");


	        //简单的重定向方法
	        response.sendRedirect("/day15/responseDemo2");

		* 重定向的特点:redirect
			1. 地址栏发生变化
			2. 重定向可以访问其他站点(服务器)的资源
			3. 重定向是两次请求。不能使用request对象来共享数据
		* 转发的特点:forward
			1. 转发地址栏路径不变
			2. 转发只能访问当前服务器下的资源
			3. 转发是一次请求,可以使用request对象来共享数据
		
		* forward 和  redirect 区别
			
		* 路径写法:
			1. 路径分类
				1. 相对路径:通过相对路径不可以确定唯一资源
					* 如:./index.html
					* 不以/开头,以.开头路径

					* 规则:找到当前资源和目标资源之间的相对位置关系
						* ./:当前目录
						* ../:后退一级目录
				2. 绝对路径:通过绝对路径可以确定唯一资源
					* 如:http://localhost/day15/responseDemo2		/day15/responseDemo2
					* 以/开头的路径

					* 规则:判断定义的路径是给谁用的?判断请求将来从哪儿发出
						* 给客户端浏览器使用:需要加虚拟目录(项目的访问路径)
							* 建议虚拟目录动态获取:request.getContextPath()
							* <a> , <form> 重定向...
						* 给服务器使用:不需要加虚拟目录
							* 转发路径
							
					
					

	2. 服务器输出字符数据到浏览器
		* 步骤:
			1. 获取字符输出流
			2. 输出数据

		* 注意:
			* 乱码问题:
				1. PrintWriter pw = response.getWriter();获取的流的默认编码是ISO-8859-1
				2. 设置该流的默认编码
				3. 告诉浏览器响应体使用的编码

				//简单的形式,设置编码,是在获取流之前设置
    			response.setContentType("text/html;charset=utf-8");
	3. 服务器输出字节数据到浏览器
		* 步骤:
			1. 获取字节输出流
			2. 输出数据

	4. 验证码
		1. 本质:图片
		2. 目的:防止恶意表单注册

ServletContext对象:

1. 概念:代表整个web应用,可以和程序的容器(服务器)来通信
2. 获取:
	1. 通过request对象获取
		request.getServletContext();
	2. 通过HttpServlet获取
		this.getServletContext();
3. 功能:
	1. 获取MIME类型:
		* MIME类型:在互联网通信过程中定义的一种文件数据类型
			* 格式: 大类型/小类型   text/html		image/jpeg

		* 获取:String getMimeType(String file)  
	2. 域对象:共享数据
		1. setAttribute(String name,Object value)
		2. getAttribute(String name)
		3. removeAttribute(String name)

		* ServletContext对象范围:所有用户所有请求的数据
	3. 获取文件的真实(服务器)路径
		1. 方法:String getRealPath(String path)  
			 String b = context.getRealPath("/b.txt");//web目录下资源访问
	         System.out.println(b);
	
	        String c = context.getRealPath("/WEB-INF/c.txt");//WEB-INF目录下的资源访问
	        System.out.println(c);
	
	        String a = context.getRealPath("/WEB-INF/classes/a.txt");//src目录下的资源访问
	        System.out.println(a);

案例:

* 文件下载需求:
	1. 页面显示超链接
	2. 点击超链接后弹出下载提示框
	3. 完成图片文件下载


* 分析:
	1. 超链接指向的资源如果能够被浏览器解析,则在浏览器中展示,如果不能解析,则弹出下载提示框。不满足需求
	2. 任何资源都必须弹出下载提示框
	3. 使用响应头设置资源的打开方式:
		* content-disposition:attachment;filename=xxx


* 步骤:
	1. 定义页面,编辑超链接href属性,指向Servlet,传递资源名称filename
	2. 定义Servlet
		1. 获取文件名称
		2. 使用字节输入流加载文件进内存
		3. 指定response的响应头: content-disposition:attachment;filename=xxx
		4. 将数据写出到response输出流


* 问题:
	* 中文文件问题
		* 解决思路:
			1. 获取客户端使用的浏览器版本信息
			2. 根据不同的版本信息,设置filename的编码方式不同

图例:

  1. request&response对象原理
    request&response对象原理

  2. response乱码
    在这里插入图片描述

  3. 重定向
    在这里插入图片描述

PCL 均匀采样【2026最新版】 根据输入点云数据创建一个微小的三维立方体集合,然后计算每个三维立方体的重心;由于该重心点不一定是原始点云中的点,直接用该点来表示立方体内所有的点会丢失原始点云的细小特征;所以使用k最近邻搜索寻找距离重心点最近的原始点来代替重心点。 阅读详情

相关推荐

阿里云搭建vps服务器的过程

最近突发奇想想要搭建一个阿里云的的vps服务器,下面是搭建的过程: 首先,登录阿里云网站: 搜索,esc控制台: 点击创建实例: 选择地区: 选择实例规格: 选择镜像: 将存储规格改成100G(40G可能不够用) 点击下一步: 这里面不需要更改,点击下一步 设置连接密码即可 创建成功后点击启动 点击远程连接,然后立即登录,在弹出的框里面输入之前设置的密码即可 登录成功:

zhanchulan的博客 3373

java中 ok的用法,Java中利用Response.ok().build()操作response的statuscode的用法例子

系统环境JDK 1.7.0_09Glassfish 3.1.2利用javax.ws.rs.core.Response代码例子package com.cft.ui.service;import java.net.URI;import java.net.URISyntaxException;import java.util.ArrayList;import javax.servlet.http.Htt...

weixin_36163504的博客 3158

编程小白的自学笔记四(正则表达式模块search函数)

本文仅仅简单介绍了search的使用,供小白学习探讨。

m0_49914128的博客 2322

Response【14】简单入门

HTTP协议: 1. 请求消息:客户端发送给服务器端的数据 * 数据格式: 1. 请求行 2. 请求头 3. 请求空行 4. 请求体 2. 响应消息:服务器端发送给客户端的数据 * 数据格式: 1. 响应行 1. 组成:协议/版本 响应状态码 状态码描述 ...

巴尔渣克 495

TSC条码打印机C#例程(tsclib.dll调用) 【转】

//----program.cs using System;using System.Collections.Generic;using System.Windows.Forms; using System.Runtime.InteropServices;public class TSCLIB_DLL{[DllImport("TSCLIB.dll", EntryPoint = "abou...

weixin_33843947的博客 2441

Python爬虫:无账号无限制获取企查查信息

无限制企查查爬虫 ​通过网上爬虫获取了全国所有企业,然后就需要补充企业信息,首先想到的就是企查查,启信宝等专业网站,最终选择了企查查,尝试了多种方法: 1、selenium爬虫,绕过企查查的登录验证,但账号和IP限制太大,最终放弃 2、通过requests直接请求+cookies,遇到了cookie有效期和限制问题 不断的尝试和修改参数,最终发现一种有效方式selenium+ wep 只需要IP代理,不需要账号,没有限制,因为是没有登录,拿到的信息有限,能展示的都能获取。 一、初始化..

攻城狮的家园 1万+

JS跨域问题:response响应码200但response.ok=false或者是mode:no-cors出bug

用js实现一个前端向后端进行网络通信的代码时遇到的跨域问题,造成前端无法获取后院响应内容。

weixin_46685211的博客 2607

AI 赋能测试全生命周期:多 Agent 协同的自动化提效方案

本文提出了一种基于Coze平台的多Agent协同测试解决方案,旨在解决软件测试中PRD解析不清晰、测试点覆盖不全、用例编写效率低、代码生成耗时等痛点。通过PRD优化、测试点生成、测试用例生成和单元测试框架生成四个Agent的协同工作,结合Cursor工具实现从需求到代码的全链路自动化。以电商平台登录模块为例,展示了从模糊PRD到标准化测试用例和可执行Java单元测试代码的完整转化流程。该方案通过AI赋能显著提升测试效率,减少人工干预,实现测试覆盖率≥95%,为快速迭代的软件研发提供了高效的测试自动化支持。

QINJIEEE的博客 1101

为什么我们在使用 fetch 时检查 response.ok

看看下面的代码: fetch('https://jsonplaceholder.typicode.com/todos/4') .then(response => response.json()) .then(result => console.log('success:',result)) .catch(error => console.log('error:', error)); 在这里,我们进行 API 调用以获取一个 id 为 4 的待办事项,它会工作,因

allway2的博客 2099

Anaconda创建python环境常见命令

Anaconda功能庞大,其可以理解为一个工具,也是一个可执行命令。Anaconda可以创建多个python环境,且python环境间相互独立。

m0_59405106的博客 1万+

广义平均(Generalized Mean, GeM)

本位介绍了广义平均操作的定义和简要推导,帮助大家理解其含义。

qq_45802280的博客 4547

java中 ok的用法,Java Response.OK属性代码示例

protected void encodeResponse(Channel channel, ChannelBuffer buffer, Response res) throws IOException {try {Serialization serialization = getSerialization(channel);// header.byte[] header = new byte[H...

weixin_28801659的博客 2041

【制作100个unity游戏之28】花半天时间用unity复刻童年4399经典小游戏《黄金矿工》(附带项目源码)

在游戏发展史上,有些游戏以其简单而耐玩的特性,深深地烙印在了玩家的记忆中。《黄金矿工》就是其中之一,它曾经在4399等游戏平台上掀起了一股游戏热潮。这款游戏不仅给无数玩家带来了欢乐,还让他们体验到了挖掘金矿的刺激与乐趣。在这个项目中,我们将花费半天的时间,利用Unity引擎,重新打造这款经典小游戏。通过复刻《黄金矿工》,我们不仅是在向童年的回忆致敬,更是在挖掘游戏设计的精髓。在这个过程中,我们将学习如何实现游戏的核心玩法,设计简洁而有效的游戏机制。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2902

经验笔记:Request 与 Response

Request和Response是客户端-服务器通信的基本组成部分。理解这些概念及其实际应用对于构建可靠的网络应用程序至关重要。通过结合前端框架(如 Vue 3)和后端框架(如 Flask),可以有效地实现客户端与服务器之间的数据交换和服务交互。

qq_45831414的博客 1149

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

第15天学习笔记(request,response)

a1727741982的博客 392

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

swoft学习笔记之response篇

响应对象 response 响应对象 Response 为 Swoft\Http\Message\Response 查看 response 对象源码,文件路径为 vendor/swoft/http-message/src/Response.php class Response implements ResponseInterface { use CookiesTrait, Messag...

zs_4336的博客 964

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Python 学习笔记(十七)--Django REST Framework之Response

一切皆对象,其实函数也是一个对象,具有属性(可以使用dir()查询)。作为对象,它还可以赋值给其它对象名,或者作为参数传递。.data 传给response对象的序列化后,但尚未rendered处理的数据.template_name:渲染的模板名字(可以自定义模板).headers:响应头(可以向响应头中添加数据--字典)..content 经过rendered处理后的数据。data属性对应的为要返回的数据, 字典类型.。status:返回的状态吗,默认为200.。.status_code 为响应状态吗.

hongjian006的博客 1057

【Flask学习笔记:三】Flask 中的 request、response

目录: 【Flask学习笔记:一】开发环境部署 【Flask学习笔记:二】Flask 入门基础知识 【Flask学习笔记:三】Flask 中的 request、response 【Flask学习笔记:三】Flask 中的 request、response 一、request 如果要访问请求数据,可以使用全局请求对象 request。Flask 会解析传入的请求数据,并允许通过该全局对象访问它。如果...

Mr_Zhang2的博客 1369

[学习笔记] flask-response

Response响应:响应行,响应头,响应体 响应行:状态码-常见的http状态码 如下: 200 OK 请求完成 301 资源被永久转移到其他URL 注:一般3开头的都是重定向 400 请求出现语法错误 401 客户试图未经授权访问受密码保护的页面 403 资源不可用 404 无法找到指定位置的资源 500 服务器遇到了无法预料的情况,不能完成客户的请求 响应头:和查看request的请求头步骤一样,可以查看 响应体:想让用户看.

qq_51148692的博客 352
上一篇: Servlet&HTTP&Request笔记
下一篇: Cookie&Session笔记
金心靖晨
博客等级 码龄9年 460粉丝 211原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值