url编码

Java学习路线-49:Servlet过滤器Filter

落爺英雄遲暮 提交于 2020-02-24 07:37:52
课时1 过滤器的入门 JavaWeb三大组件 1、都需要在web.xml中进行配置 Servlet Filter Listener 2、过滤器 会在一组资源(jsp, servlet, css, html等等)的前面执行 可以让请求得到目标资源,也可以不让请求达到 过滤器有拦截请求的能力 3、编写过滤器 (1)实现Filter接口 (2)在web.xml中进行配置 (3)Filter是单例的 4、配置web.xml < web-app > < filter > < filter-name > FilerName </ filter-name > < filter-class > FilerClass </ filter-class > </ filter > < filter-mapping > < filter-name > FilerName </ filter-name > < url-pattern > /* </ url-pattern > </ filter-mapping > </ web-app > 继承示例 package com . pengshiyu . filtrer ; import javax . servlet . * ; import java . io . IOException ; public class Afilter implements

`/pages/login/login?redirect_url=/pages/job-detail/job-detail?id=1` 参数中含有参数传递前需要先编码

可紊 提交于 2020-02-12 11:35:03
参数中含有参数传递前需要先编码 直接传参,会去掉参数中?及后面的部分,传递前先编码,接收时解码 wx.navigateTo({ url: `/pages/login/login?redirect_url=/pages/job-detail/job-detail?id=1`, }) 传递前编码:encodeURIComponent let redirectUrl = encodeURIComponent(`/pages/job-detail/job-detail?id=1`) wx.navigateTo({ url: `/pages/login/login?redirect_url=${redirectUrl}`, }) 接收时解码:decodeURIComponent onLoad: function (options) { const redirectUrl = decodeURIComponent(options.redirect_url) this.data.redirectUrl = redirectUrl }, 来源: https://www.cnblogs.com/qq254980080/p/12298150.html

Http协议转码

孤人 提交于 2020-02-06 18:32:02
UrlEnCode与UrlDeCode 有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了。编码的格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。例如 空格的编码值是"%20"。 下表中列出了一些URL特殊符号及编码 :替换为%3A  1. + URL 中+号表示空格 %2B 2. 空格 URL中的空格可以用+号或者编码 %20 3. / 分隔目录和子目录 %2F 4. ? 分隔实际的 URL 和参数 %3F 5. % 指定特殊字符 %25 6. # 表示书签 %23 7. & URL 中指定的参数间的分隔符 %26 8. = URL 中指定参数的值 %3D @RequestMapping("/test") public String test(String name) { System. out .println("name:" + name); return "test" + name; } public static void main(String[] args) { String userNameEncode = URLEncoder. encode ( "yusheng+jun" ) ; System. out .println("userNameEncode:" +

前端报错:Failed to execute 'setRequestHeader' on 'XMLHttpRequest': Value is not a valid ByteString.

家住魔仙堡 提交于 2020-02-01 06:20:51
报错详细: Unhandled Rejection (TypeError): Failed to execute 'setRequestHeader' on 'XMLHttpRequest': Value is not a valid ByteString. 报错原因: 是请求头中存在汉字 解决方案: 我们前段可以使用Base64进行编码 encodeURI() 这个函数,然后后端对这个Base64进行解码,具体函数如下: public String decode(String url) { String prevURL = ""; String decodeURL = url; while (!prevURL.equals(decodeURL)) { prevURL = decodeURL; decodeURL = URLDecoder.decode(decodeURL, StandardCharsets.UTF_8); } return decodeURL; } 来源: CSDN 作者: 骑鱼的猫咪 链接: https://blog.csdn.net/qq_39820860/article/details/103807786

.netcore 3.1高性能微服务架构:webapi规范

江枫思渺然 提交于 2020-01-30 13:45:07
原文: .netcore 3.1高性能微服务架构:webapi规范 1.1 定义 1、基础接口:单一职责原则,每个接口只负责各自的业务,下接db,通用性强。 2、聚合接口:根据调用方需求聚合基础接口数据,业务性强。 1.2 协议 1. 客户端在通过 API 与后端服务通信的过程中, 应该使用 HTTPS(生产环境) 协议 2. 服务端响应的数据格式统一为JSON 1.3域名host prd环境:https://xxx-xxx-api.example.com/ uat环境:https://xxx-xxx-api-uat.example.com/ test环境:https://xxx-xxx-api-test.example.com/ dev环境:https://xxx-xxx-api-dev.example.com/ 将api放到子域名里,这种做法可以保持某些规模化上的灵活性。 1.4路径path path命名应该是以资源为导向的命名,对资源的操作是由HttpMethod(get、post、put、delete)来决定。所以一般来说url上的单词都应该是名词,一定不要是动词。一般遵循以下约定: (1)URL 的命名必须全部小写; (2) URL 必须 是易读的 URL; (3)一定不可 暴露服务器架构 (4)出现复合词汇使用下划线分隔,例如:animal_types 举几个正面例子:

多线程下载王者荣耀高清壁纸

烂漫一生 提交于 2020-01-27 03:10:51
目标网址:https://pvp.qq.com/web201605/wallpaper.shtml 分析网页源码 先上图 首先搜索目标网页 找到高清壁纸所在区域 随机点击一个壁纸,然后点击“检查”,查看网页源代码,会发现所有壁纸所在的源码区域 然后点击壁纸源码所在区域,详细查看目标壁纸的url 如下图所示: 但是这是腾讯的网站,批量获取网页源码是获取不到的。查看网页源代码。 这 **注意:**网页源代码不是我们刚刚查看的网页源代码,也就是说网页源码有缺损。这是使用Ajax动态加载的。那么我们就需要找到接口。 刷新网页,在network中找到图中所示的文件。 蓝色部分是我们要的url,这是一个json文件,里面含有壁纸的url。通过上面的url我们会发现有一个隐藏参数page,默认从0开始,一共有21各页面。 点击查看,会发现各种尺寸壁纸的url 但是这些url是经过编码的,所以我们需要将其解码 from urllib import parse result = parse . unquote ( "http%3A%2F%2Fshp%2Eqpic%2Ecn%2Fishow%2F2735011316%2F1578904549%5F84828260%5F12121%5FsProdImgNo%5F1%2Ejpg%2F20" ) print ( result ) 解码后的链接有问题

werkzeug源码阅读笔记(二) 上

别来无恙 提交于 2020-01-26 11:17:14
因为第一部分是关于初始化的部分的,我就没有发布出来~ wsgi.py ————第一部分 在分析这个模块之前, 需要了解一下 WSGI , 大致了解了之后再继续~ get_current_url() 函数 很明显,该函数的作用是获取当前url地址。 代码如下: def get_current_url(environ, root_only=False, strip_querystring=False, host_only=False, trusted_hosts=None): """ :param environ: the WSGI environment to get the current URL from. :param root_only: set `True` if you only want the root URL. :param strip_querystring: set to `True` if you don't want the querystring. :param host_only: set to `True` if the host URL should be returned. :param trusted_hosts: a list of trusted hosts, see :func:`host_is_trusted` for more

URL编码转换:escape()、encodeURI()、encodeURIComponent()

巧了我就是萌 提交于 2020-01-25 21:11:32
escape() 方法: 该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。 encodeURI() 方法: 该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。 该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,# encodeURIComponent() 方法: 该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。 其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处: 前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串),因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。 总结: 通过对三个函数的分析,我们可以知道:escape()除了 ASCII 字母、数字和特定的符号外

URL的传递字符串问题小研究

允我心安 提交于 2020-01-24 08:03:17
前几天在调程序的时候遇到了比较郁闷的问题,我用URL从一个页面传递字符串到另一个页面的时,出现了个奇怪的问题,我要传递的字符串是“DK51+700中继站”;可是另一个页面接收到字符串却是:“DK51 700中继口”;加号变成了空格,“站”不能解析出来,变成了不能识别的符号“口”。 我上网查找了原因:URL中有些字符被转义,比如空格被编码成加号,于是传的参数明明是加号,获取的值却成了空格。 按照网上的建议,我们应该对要传递的参数进行编码处理。于是,我对传递的参数进行了处理,但是又衍生了一堆问题出来;我当时为了节约时间,就没有仔细研究,用了字符串中的Replace()方法在传送前代替了这两个字符,接收到了再代替回来。现在我来具体的展示下这个问题。 1.首先,我们先看下我的开始的问题(环境:VS2008):1.1. 新建一个网站,在其中添加一个页面,一个页面是Defaul.aspx,另一个页面Defaul2.aspx,在第一个页面中添加一个控件:HyperLink1;后台代码: 1.2. 在第二个页面中添加一个Label控件Label1;后台代码: 1.3. 结果显示:“DK51 700中继口”。 2.我当时的解决方法:用了字符串中的Replace()方法在传送前代替了这两个字符,接收到了再代替回来。 2.1第一个页面的后台代码:2.2.第二个页面中,后台代码: 2.3.结果是:

url地址传参中文乱码处理

僤鯓⒐⒋嵵緔 提交于 2020-01-24 07:24:54
1.将字符串转码:new String(“xxxxx”.getBytes("iso-8859-1"),"utf-8") 这种转码方式有很大的弊端,因为它是使用指定的字符集将此String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中,然后通过使用指定的字符编码将生成的byte 数组解码,构造一个新的String字符串。这种情况就有可能遇到的情况是,不能将一个汉字全部解码完。这样,前边的都能正常显示,但是最后一个字可能是 乱码。所以不建议使用这种方式。 2.在传参前转码:接收参数后再转码回来。 这种方式有两种: 第一种: 传参前:使用java.net.URLEncoder.encode("xxxx",“utf-8"),将中文转为16进制字符。 接收参数后:使用java.net.URLDncoder.decode("xxxx",“utf-8")将16进制字符转为中文。 这种方式需要注意的是,在使用encode转码后,会出现特殊字符,这时候,就需要将特殊字符替换为相应的16进制。因为特殊字符在url路径中做为参数传递时,也是乱码。 第二种: 传参前:encodeURI(“xxxx”) 。 接收参数后:使用java.net.URLDncoder.decode("xxxx",“utf-8")将16进制字符转为中文。 这种方式需要注意的是,在使用encodeURI转码后