JSP输出HTML时产生的大量空格和换行的去除方法

在WEB应用中,如果使用jsp作为view层的显示模板,都会被空格/空换行问题所困扰.

方案一,利用web服务器的trimSpaces功能。

Tomcat5 以上版本都可以使用,这是最简单的方法

<servlet>
    <servlet-name>jsp</servlet-name>
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
    <init-param>
        <param-name>fork</param-name>
        <param-value>false</param-value>
    </init-param>
    <init-param>
        <param-name>trimSpaces </param-name>
        <param-value>true </param-value>
    </init-param>
    <init-param>
        <param-name>xpoweredBy</param-name>
        <param-value>false</param-value>
    </init-param>
    <load-on-startup>3</load-on-startup>
</servlet> 

这个方案有个缺点,它会去掉所有jsp EL标签之间的空格的换行符,在部分情况下也来带来不便。

如:Your name is ${firstName} ${lastName}. ==输出为==> Your name is firstNamelastName. 
两个${}变量之间的空格也会消失。

方案二:在支持jsp 2.1的web服务器上才可以使用,如Tomcat6

Jsp2.1多了一个很有用的命令(推荐使用这种方式):

<%@ page trimDirectiveWhitespaces="true" %>

这 个命令可以使jsp输出的html时去除多余的空行(jsp上使用EL和tag会产生大量的空格和空行),没有使用trimSpaces的问题,现在jsp输出html也可以很好地排版,看上去也专业;

另外提一下,Tomcat6有一些兼容性问题,例如不能使用#{}这种代码在jsp中,因为会被当成JSF脚本执行。

时间: 2024-10-12 14:26:14

JSP输出HTML时产生的大量空格和换行的去除方法的相关文章

提交表单时如何保留多个空格及换行的文本样式

需求是:用户提交表单时屏蔽敏感词的功能.其中敏感词来自服务器端同一路径下的ciku.txt,敏感词通过"|"连接,例如"g|c|a",提交表单时替换敏感词,更重要的是,需要保持表单文本域中用户输入的多个空格及换行的样式,并原样输出.php代码如下: 1 <?php 2 header("Content-type:text/html;charset=utf-8"); 3 if($_POST){ 4 $pattern = array( 5 '/

jsp 输出内容乱码问题

解决的需要三个地方 1.jsp头有三处和编码合适有关 2.更改tomcat的server <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="GBK" /> 增加红色部分 3.如果此时还是乱码 对于get请求 则添加request.setChar

jsp脚本、jsp声明、jsp输出表达式、javascript、jsp标签、struts2标签

1. 先界定一下题目中概念. (1)jsp脚本:有的地方也叫java脚本,指用<%     %>括起来的jsp页面中的java脚本.所有能在java程序中执行的代码,都可以通过jsp脚本执行. (2)jsp声明:用<%!声明部分%>形式声明的变量和方法.可以直接用在jsp脚本中. (3)jsp输出表达式:用<%=表达式    %>输出表达式的值,效果与jsp脚本中的out.println相同.表达式后面不能有分号. (4)javascript:页面中<script

archive成功了,但是在输出ipa时要求有账号密码

archive成功了,但是在输出ipa时要求有账号密码 可以通过命令行方式输出,绕开账号检查1.进入Windows-Organizer-Archives,找到要输出的scarchive列表项:2.右键点击它,选择[Show in Finder]:3.右键点击.xcarchive文件,选择[显示包内容]:4.依次进入子目录 Products-Applications-找到你的目标文件,它其实是一个.app文件(目录):5.使用Go2Shell打开终端,进入该文件所在的目录:(也可以手动cd进入)6

Object之魔术函数__toString() 直接输出对象引用时自动调用

__toString()是快速获取对象的字符串信息的便捷方式 在直接输出对象引用时自动调用的方法. __toString()的作用 当我们调试程序时,需要知道是否得出正确的数据.比如打印一个对象时,看看这个对象都有哪些属性,其值是什么,如果类定义了toString方法,就能在测试时,echo打印对象体,对象就会自动调用它所属类定义的toString方法,格式化输出这个对象所包含的数据. 下面我们来看一个__toString()的实例 <?php class Person{ private $na

Objc中2维指针作为输出参数时由ARC及@autoreleasepool引发的血案

先看下面一个例子 #import <UIKit/UIKit.h> #import "AppDelegate.h" @interface Something : NSObject - (void)doWithError:(NSError **)outError; @end @implementation Something - (void)doWithError:(NSError **)outError { @autoreleasepool { *outError = [NS

shell学习过程1-如何输出a-z;空格、换行转换

有一堆主机地址:a.baidu.com...z.baidu.com如何从这些数据中提取出.baidu.com之前的字母,如:a b...z? 看到该问题,首先想到如何用脚本生成该文件: 思路: 1.定义后缀:suffix=".baidu.com" 2.输出a-z字符和后缀:{a..z}$suffix 3.空格转换行 问题1:如何输出a-z字符: 使用{a..z}输出 a b c d .....z字符间空格分隔 问题2:{a..z}$suffix 输出文本:a.baidu.com b.b

***解决PHP输出多余的空格或换行

用CI框架写APP后台接口的时候,返回的JSON前面有多余的2哥换行,首先排查的是BOM,结果问题依旧 再就是排查<?php ?> 标签外没有多余的回车.换行,结果发现确实有多余的换行,去掉之后,问题消失. 总结:建议去掉PHP结束标签,这样会避免很多莫名其妙的问题 写代码的童鞋应该知道,经常会在前端看到页面不能置顶,即使加了再多的样式,都不行,那就可以考虑一下是否为下面几种情况了: 1.确认代码没有 echo 或者 exit 空格.换行: 2.确保 php 文件里 <?php ?>

Excel自文本导入内容时如何做到单元格内换行

前言:今天在处理数据的时候,在数据库中用到了\n换行符号,目的是在同表格内做到数据多行显示,比如  字段名1  字段名2  字段名3  1 数据一行 数据二行 数据三行 例子是在sql查询后的结果   2 例子如上  数据未导出  本来在sql查询后是如此显示的,但是后来导出文本格式,Excel自文本导入内容时就会报错,那么问题来了, 如何做到Excel自文本导入内容时如何做到单元格内换行? 正文:在网上找了很多例子,其中有位前辈讲的很有道理,原话如下: excel实现自动换行的两个必要条件1.