velocity 的 escape实现

EscapeHtmlReference的escape方法调用以下方法实现: org.apache.commons.lang.Entities.HTML40.escape(writer, string);代码如下:
public void escape(Writer writer, String str) throws IOException {    int len = str.length();

for(int i = 0; i < len; ++i) {        char c = str.charAt(i);        String entityName = this.entityName(c);        if(entityName == null) {            if(c > 127) {                writer.write("&#");                writer.write(Integer.toString(c, 10));                writer.write(59);   //就是个分号            } else {                writer.write(c);            }        } else {            writer.write(38);            writer.write(entityName);            writer.write(59);        }    }

}
时间: 2024-09-28 17:59:03

velocity 的 escape实现的相关文章

【算法】Escape

The students of the HEU are maneuvering for their military training. The red army and the blue army are at war today. The blue army finds that Little A is the spy of the red army, so Little A has to escape from the headquarters of the blue army to th

《Velocity java开发指南》中文版(下)转载

文章出自:http://sakyone.iteye.com/blog/524292 8.Application Attributes Application Attributes (应用程序属性)是和VelocityEngine 的运行时实例(Runtimeinstance)相关联的,名-值对(name-value pairs)格式的参数,可用来存运RuntimeInstance时的信息. 设计这个功能的目标是Velocity程序需要与应用层或用户定制部分(如日志,资源,装载器等)通信. The

spring mvc velocity

<bean id="velocityConfigurer" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">        <property name="resourceLoaderPath"><!-- 页面文件的路径,相对于webapp -->            <value>templates

第一章 maven+springmvc+spring+mybatis+velocity整合

一.ssmm简介 ssmm是当下企业最常用的开发框架架构 maven:管理项目jar包,构建项目 spring:IOC容器,事务管理 springmvc:mvc框架 myBatis:持久层框架 velocity:前端视图模板(相较于jsp,速度非常快,而且不需要占据jvm的永久代内存) 上述这些框架再加上版本控制工具(git).自动化部署工具(jenkins),就组成了当下中大型企业最常用的项目开发部署架构:以上各种框架以后我也会依次做笔记去写的,所以在下边不会做详细介绍.还有,在以下的整合过程

改造Velocity模板引擎让$[!]{}输出默认进行html转义,并增加$#{}语法支持不转义输出

一直以来在项目中使用Apache Velocity模板引擎作为视图层输出,为了解决XSS漏洞,需要对输出到页面的内容进行HTML转义,我一般采用2种方式实现: 使用过滤器 Filter,在其中进行 HttpServletRequestWrapper 的 getParameter( )等方法重载,在底层进行HTML转义,然后页面直接输出: 这种方式很轻松很直接,业务代码不需要修改就完成了所有的转义工作:但是也带来了问题:修改了用户的原始输入数据,如果需要用到用户的原始输入数据,又得反转义回去,很麻

HDU 3533 Escape (BFS + 预处理)

Escape Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 541    Accepted Submission(s): 141 Problem Description The students of the HEU are maneuvering for their military training. The red army

HDU3533:Escape(BFS)

Problem Description The students of the HEU are maneuvering for their military training. The red army and the blue army are at war today. The blue army finds that Little A is the spy of the red army, so Little A has to escape from the headquarters of

大数据学习总结记录—页面静态化技术(Freemarker/velocity)&amp; 网站伪静态(UrlRewriteFilter)

Freemaker  静态化模板技术 模板的作用 模板技术在现代的软件开发中有着重要的地位,而目前最流行的两种模板技术恐怕要算freemarker和velocity了,webwork2.2对两者都有不错的支持,也就是说在webwork2中你可以随意选择使用freemarker或velocity作为view,模板技术作为view的好处是很多,尤其和jsp比较起来优点更大,众所周知jsp需要在第一次被执行的时候编译成servlet,那么这个过程是很慢的,当然很多应用服务器都提供预编译的功能,但是在开

newLISP处理mysql escape character

什么是转义字符 mysql的escape character指的是需要转义的特殊字符,这些字符出现在sql语句中,如果没有转移会导致sql语法报错或者有sql注入攻击的可能. 主要有以下几种都需转义: \x00, \n, \r, \, ', " and \x1a. 比如' 就需要变成\' 下面是sql测试: mysql> INSERT INTO nodes(name) VALUES ('select a.dt, count(*), count(distinct a.uv) from (se