转义

基于Velocity的Web开发指南

耗尽温柔 提交于 2019-12-03 17:48:18
原文名称《Web Application Guide》,副标题为基于Web的应用技术和VelocityViewServlet入门,地址为 此处链接 。文章分为四部分,第一部分,通览使用Velocity创建Web应用的好处,第二部分,讲述需要使用的具体框架,第三部分,主要探讨使用Velocity时的问题,第四部分,讲解一个入门实例。 使用Velocity创建Web应用 Velocity通常被用来生成web页面,可以直接替代JSP,以下是使用Velocity的好处: 简单 - 不懂技术的网页设计者可以直接使用和维护。 易于维护 - 不包含脚本语言? 直接访问方法和属性 - 网页设计者也可以访问对象的方法和属性。 一致性 - Velocity不仅可以生成网页,也可以完成其他文本生成任务(如邮件发送)。 配合使用的具体框架 Velocity引擎的主要目的仅仅是为了生成文本,而且在模板基础上生成。因此,Velocity自己不包含任何web相关的功能,所以,我们还是需要一个框架来响应HTTP请求、来处理用户认证、来形成业务逻辑调用、以至形成响应,以下列出几个好的选择: 1. Velocity工具之一:VelocityViewServlet(Velocity视图服务器小程序) - 最简单的开始使用 Velocity的方法是下载 Velocity Tools 并使用

PHP字符串操作

我们两清 提交于 2019-12-03 17:27:14
一,字符串定义的方法 1,使用单引号和双引号定义字符串 双引号中的内容是经过php语法分析器解析过的,变量在双引号中都会被转换成它的值输出显示,而单引号中的内容即是"所见即所得"无论有无变量都会被当作普通字符串输出。 <?php header("Content-Type: text/html;charset=utf-8"); $i = "PHP"; $m = 'i love $i'; $n = "i love $i"; echo $m; echo "<br>"; echo $n; ?> 这里的输出就很明显的分辨出单引号和双引号的区别了 i love $i i love PHP 2,使用定界符定义字符串 定界符 <<< 用户定义格式化的大文本。 格式如下 <<<str 格式化的文本 str 格式化的文本是指:文本中的格式将被保留,文本中不需要使用转义字符。 例, <?php $str = '这是一个字符串'; echo <<<strmark $str,仅仅是一个字符串 strmark ?> 结果输出:这是一个字符串,仅仅是一个字符串 <<< 表示定界符,必须使用。 strmark 为标识符,可以自定义,第一个标识符写在定界符之后(不能换行),第二个标识符要顶格写(必须开头,不能缩进),前后标识符必须相同。 定界符内不能添加注释。 定界符中的字符串支持单引号,双引号

Linux shell 中$() ` `,${},$[] $(()),[ ] (( )) [[ ]]作用与区别

*爱你&永不变心* 提交于 2019-12-03 15:21:42
转载自 https://blog.csdn.net/x1269778817/article/details/46535729 参考: https://stackoverflow.com/questions/669452/is-double-square-brackets-preferable-over-single-square-brackets-in-ba https://unix.stackexchange.com/questions/68694/when-is-double-quoting-necessary $()和 ` ` : 在 bash shell 中,$( ) 与` ` (反引号) 都是用来做命令替换用(commandsubstitution)的。 例如 version=$(uname -r)和version=`uname -r`都可以是version得到内核的版本号 各自的优缺点: 1. ` ` 基本上可用在全部的 unix shell 中使用,若写成 shell script ,其移植性比较高。但反单引号容易打错或看错。 2. $()并不是所有shell都支持。 ${ } : ${ }用于变量替换。一般情况下,$var 与${var} 并没有啥不一样。但是用 ${ } 会比较精确的界定变量名称的范围。比如 $ A=B $ echo $AB 原本是打算先将 $A

Python之数据类型(二)详解

99封情书 提交于 2019-12-03 09:14:42
Python数据类型之二 二,字符串类型 1.字符串的截取与加长 (1) 截取: (2) 加长: (3) 字符串转变需注意 2. 字符串与转义字符 (1) 什么是转义字符? (2) 几种常见的转义字符 (3) 转义字符的非转义输出 (4) 续行符 \ 的使用: 3.字符串的格式化输出 (1) 使用% 格式化输出 (2) 使用format 格式化输出 4. 常见的字符串函数 (1)string.isnumeric(): (2)splitStr.join(string): (3)string.center(width, fillchar): (4)string.ljust(width[ ,fillchar]) / rjust(width[ ,fillchar]): (5)string.lstrip(ch) / rstrip(ch) / strip(ch): (6)max(string) / min(string): (7)chr(x) / ord(x): (8)string.replace( old, new [,times] ) (9)s.find(str,beg=0,length=len) / rfind(str,beg=0,length=len) (10)s.index(str,beg=0,length=len) / rindex(str,beg=0,length=len)

十四:jinja2过滤器之常用的过滤器

放肆的年华 提交于 2019-12-03 07:15:28
1、abs:返回一个数的绝对值(见上一篇) 2、default:如果当前变量没有值或字段,则展示默认值(见上一篇) 3、转义过滤器:如果后端出过来的值含html标签,可以控制是否视为html标签执行或者当成字符串处理 escape或e:转义符:会将<、>等html标签符号转义成html中的可展示符号(此功能jinja2是默认开启的) autoescape off/on:控制关闭或开启默认的自动转义 手动加转义 safe:如果开启了全局转义,那么safe过滤器将会将变量关掉转义 4、获取序列的首尾的值 first:返回序列的第一个元素 last:获取序列最后一个值 5、format过滤器:格式化字符串,和python的一样 6、length:返回序列或字典的长度 7、join:和python的join一样 8、数据类型转换(后台传到模板的数据很可能不是统一的,而模板里面可能会涉及到计算): int、float、string 9、大小写转换:lower:转小写、upper:转大写 10、replace:替换字符串 11、truncate:截取指定长度的字符串 12、striptags:删除字符串中所有的html标签,如果出现多个空格,将替换成一个空格 13、wordcount:计算字符串中单词的个数 来源: https://www.cnblogs.com/zhongyehai/p

编写不受魔术引号影响的php应用

时光怂恿深爱的人放手 提交于 2019-12-03 06:50:34
原创作品author流水孟春,转载请注明出处lib.cublog.cn 阅读前提:你必须看过php手册上的" 第IV部分安全" 的" 第10章魔术引号"。如果没看过,也没问题,现在马上花10分钟先看一下php手册上的这东西。 魔术引号(Magic Quote)是一个自动将进入 PHP 脚本的数据进行转义的过程 你可能想让你的程序兼容多个数据库,但你使用的不同的数据库可能使用不同的转义符,而我们的程序又有可能运行在不同的php.ini配置的主机上,关于magic_quotes的配置又可能不一样,所以编写不受魔术引号影响的php应用是高兼容性的php应用所必须的。 php.ini中有三个魔术引号配置选项: 魔术引号配置选项 描述 运行时改变 在 PHP中的默认值为 magic_quotes_gpc 如果打开的话,影响到 HTTP 请求数据(GET,POST 和 COOKIE)。 不能 On magic_quotes_runtime 如果打开的话,大部份从外部来源取得数据并返回的函数,包括从数据库和文本文件,所返回的数据都会被反斜线转义。(前提是magic_quotes_gpc = On) 能 Off magic_quotes_sybase 当关闭时,所有的 '(单引号),"(双引号),/(反斜线)和 NULL 字符都会被自动加上一个反斜线进行转义。这和 addslashes()

正则表达式

时光总嘲笑我的痴心妄想 提交于 2019-12-03 04:56:20
正则表达式简录 正则表达式 (Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。 正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。 普通字符 普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号。 非打印字符 非打印字符也可以是正则表达式的组成部分。下表列出了表示非打印字符的转义序列: 字符 描述 \cx 匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。 \f 匹配一个换页符。等价于 \x0c 和 \cL。 \n 匹配一个换行符。等价于 \x0a 和 \cJ。 \r 匹配一个回车符。等价于 \x0d 和 \cM。 \s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。注意 Unicode 正则表达式会匹配全角空格符。 \S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。 \t 匹配一个制表符。等价于 \x09 和 \cI。 \v 匹配一个垂直制表符。等价于 \x0b 和 \cK。 特殊字符 所谓特殊字符,就是一些有特殊含义的字符,如上面说的 runoo

Dockerfile指令的使用

南笙酒味 提交于 2019-12-03 04:29:46
关于Dockerfile Dockerfile实际上就是一系列创建Docker镜像的脚本, 虽然可以通过命令行来执行, 但是那样繁琐而且容易出错. Dockerfile指令 FROM 他的意思是在创建新的镜像时使用的基础镜像. 格式: From [name] 示例: From nginx From microsoft/dotnet-aspnetcore-runtime RUN 他的意思是在容器中需要运行的命令, 它包括安装软件、创建文件和目录, 以及创建环境配置等. 格式: Run ["","",""] Run [command] 示例: Run npm install npm -g Run mkdir -p /usr/src/redis Run npm install && npm start Run ["npm","install","npm","-g"] COPY Copy指令将文件或者目录复制到容器的文件系统, 文件和目录需位于相对于Dockerfile的路径中. 格式: Copy [ospath] [dockerpath] Copy ["",""] 示例: Copy . . Copy nginx.conf /etc/nginx/nginx.conf Copy . /usr/share/nginx/html Copy hom* /mydir/ ADD

Python基础知识

和自甴很熟 提交于 2019-12-03 02:02:16
Python2与Python3的区别: (这里只列举自己总结的几点) Python2:    源码不标准   混乱   重复代码过多   默认使用的编码方式是ASCII码 # 解决对应编码问题 在首行增加 #-*-encoding:utf-8-*-   继承顺序: 深度优先 #mro方法只在新势类中存在;super只在Python3中存在 Python3:    统一标准,去除重复代码   继承顺序:广度优先 Python2.7新式类和经典类共存 新式类要继承object Python中命名规范   变量:变量就是将一些运算的中间结果暂存到内存中,以便于后续代码调用    要求:     1.必须由数字,字符,下划线任意组合,且不能以数字开头     2.不能是Python中的关键字     Python中的关键字:     ["and","as","assert","break","class","continue","def","del","elif","else",     "except","exec","finally","for","from","global","if","import","in","is",     "lambda","not","or","pass","print","raise","return","try","while","with",

SQL注入防御绕过――二次编码之干掉反斜杠

匿名 (未验证) 提交于 2019-12-03 00:39:02
SQL注入防御绕过――二次编码 01 背景知识 一、为什么要进行URL编码 通常如果一样东西需要编码,说明这样东西并不适合传输。对于URL来说,编码主要是为了避免引发歧义与混乱。 例如,URL参数字符串中使用key=value键值对这样的形式来传参,键值对之间以&符号分隔,如 /?name=abc&pwd=123 如果你的value字符串中包含了=或者&,那么势必会造成接收Url的服务器解析错误,因此必须将引起歧义的&和= 符号进行转义,也就是对其进行编码。 对于URL编码的深入研究可以参看下面这些内容: 为什么要进行URL编码 深入分析 web 请求响应中的编码问题 二、URL传输过程中的编码问题 HTTP请求过程经历的几个环节: 浏览器【get/post】①========>服务器②========>浏览器显示③ ①:浏览器会把URL经过编码后发送给服务器,不同的浏览器对URL的编码规则不同。对于GET方式提交的数据,浏览器会自动进行URL编码;对于POST方式提交的数据,其编码方式可以由开发者进行指定。 ②:服务器根据其自身的配置文件对URL进行解码(解码成Unicode),然后将显示内容编码。 ③:浏览器按照指定的编码显示该网页。 此外,在客户端也就是浏览器上运行的前端程序也会根据Web服务的需要对要传输的数据进行一些编码操作