我有代码(现在在github中),如:
my.jsp (一个通用的jsp - 我的所有jspS或多或少都遵循这种模式):
<%@ include file="include/top.jsp" %>
<title>THE TITLE</title>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="include/head.jsp" %>
<%@ include file="include/no_menu.jsp" %>
CONTENT
<%@ include file="include/bottom.jsp" %>
其中:
top.jsp:
<%@ page session="false"%>
<%@ include file="tag_libs.jsp"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
head.jsp:
<link href="${pageContext.request.contextPath}/css/twoColFixLtHdr.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div class="container"><!-- closes in bottom -->
<div class="header"><!-- closes in menu -->
<p>
<a href="home"> <img src="${pageContext.request.contextPath}/images/logo7.jpg"
alt="Ted 2012 Logo" name="Ted 2012 Logo" id="Ted_2012_Logo"
style="background: display:block; padding: 5px 20px; margin-left: 150px; border-style: solid" /></a>
</p>
<hr />
no_menu.jsp:
</div>
<div class="content">
bottom.jsp:
</div>
<div class="footer">
<p>
blah
</p>
</div>
</div>
</body>
</html>
如您所见 - 或者您可以接受我的话 - 标签正确平衡。我的问题是 - 为什么我不能包含
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
我的top.jsp
文件中的 指令?相信我它什么都不做。 我是否应该担心同样会忽略<%@ page session="false"%>
?
由于
答案 0 :(得分:14)
您不需要在每个包含的JSP文件中放置@page
指令。严格来说,它们不是JSP,它们是文本文件被包含在JSP中。 @include
相当于将包含页面中的文本剪切并粘贴到主JSP中。它就像C中的#include
指令。
请尝试将<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
作为主JSP文件的第一个行(即包含其他文件的那个),并且不要将其放在其他任何位置。
/>
希望它有所帮助。
答案 1 :(得分:-2)
在HTTP标头中设置Content-Type
这是为单个页面设置Content-Type的最佳方式,因为它在Precedence Rules列表中最高。托管FeedSweep窗口小部件的网页的HTTP标头值可以使用以下任何一种服务器端脚本语言进行设置:
<强> .NET 强>
在响应对象上设置内容类型和字符集。要设置字符集,请使用:
<强>的Perl 强>
在实际页面的任何部分之前输出正确的标题。在最后一个标题之后,使用双行换行符。
<强>的Python 强>
使用与Perl相同的解决方案(除非您最后不需要分号)。
<强> PHP 强>
在生成任何内容之前使用header()函数。
Java Servlets
在获取用于输出的任何对象(Stream或Writer)之前,在ServletResponse上使用setContentType方法。
如果您使用Writer,Servlet会自动处理从Java字符串到所选编码的转换。
<强> JSP 强>
使用页面指令:
out.println()或表达式元素(&lt;%= object%&gt;)的输出会自动转换为所选的编码。此外,页面本身被解释为处于此编码状态。
<强> ASP 强>
在响应对象上设置内容类型和字符集。要设置字符集,请使用: