Java 标记库和变量声明在源页面顶部生成空行

Java 标记库和变量声明在源页面顶部生成空行,java,jsp,servlets,jstl,taglib,Java,Jsp,Servlets,Jstl,Taglib,我在我的jsp页面中声明了一些taglib和变量,如下所示: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp

我在我的
jsp
页面中声明了一些taglib和
变量,如下所示:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<c:set var="site" scope="session" value="${site}"/>
<c:set var="thumb" scope="session" value="${thumbnail}"/>
<c:set var="geoCode" scope="session" value="${geoCode}"/>
...
<fmt:setLocale value="${local}" />
<fmt:setBundle basename="MessagesBundle" />
<!DOCTYPE html>
<head>
    <meta charset="utf-8">
...

...
...
当我运行应用程序并查看源代码时,我会在源代码页面顶部看到新的空白行:

.







<!DOCTYPE html>
<head>
    <meta charset="utf-8">
我刚刚放置了一个
来演示空行。
您知道如何删除这些空行吗?

您需要告诉JSP servlet修剪指令空白。您可以通过向webapp的
web.xml
添加以下条目来实现这一点:


*.jsp
真的
或者,如果您希望在服务器范围内而不是在每个webapp的基础上配置it,那么请参阅有关此问题的servletcontainer文档。您没有告诉您使用的是哪一个,但是对于Tomcat,需要编辑它的
/conf/web.xml
,将以下条目添加到JSP servlet的
声明中:


修剪空间
真的

与具体问题无关,您的
@页面
包含大量默认和重复的混乱。它可以简化如下:

<%@page pageEncoding="UTF-8"%>


如您所述简化
@页面
,也有助于实现我的目标。有没有一种方法可以针对jsp页面执行此操作,但是当.jsp不再位于url中时?例如,在spring应用程序中,URL将非常类似于,/myapp等