13

次のようなコードがあります(現在は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">

ボトム.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"%>ますか?

ありがとう

4

2 に答える 2

14

@page含まれている各JSPファイルにディレクティブを入れる必要はありません。厳密に言えば、これらはJSPではなく、JSPに含まれているテキストファイルです@include含まれているページからメインのJSPにテキストをカットアンドペーストするのと同じです。これ#includeはCのディレクティブのようなものです。

メインのJSPファイル(つまり、他のファイルを含むファイル)の最初の<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>行として配置し、他の場所には配置しないでください。 それが役に立てば幸い。

于 2012-09-30T15:58:01.760 に答える
-2

HTTP ヘッダーでの Content-Type の設定

これは、優先ルール リストで最も高いため、個々のページに Content-Type を設定する最良の方法です。FeedSweep ウィジェットをホストする Web ページの HTTP ヘッダー値は、次のサーバー側スクリプト言語のいずれかで設定できます。

。ネット

コンテンツ タイプと文字セットは、応答オブジェクトに設定されます。文字セットを設定するには、次を使用します。

  • Response.ContentType = "text/html; charset=UTF-8";

パール

実際のページの任意の部分の前に正しいヘッダーを出力します。最後のヘッダーの後に、二重改行を使用します。

  • print "Content-Type: text/html; charset=utf-8\n\n";

パイソン

Perl の場合と同じ解決策を使用します (末尾にセミコロンは必要ありません)。

  • print "Content-Type: text/html; charset=utf-8\n\n"

PHP

コンテンツを生成する前に、header() 関数を使用します。

  • header('Content-type: text/html; charset=utf-8');

Java サーブレット

出力に使用するオブジェクト (Stream または Writer) を取得する前に、ServletResponse で setContentType メソッドを使用します。

  • resource.setContentType ("text/html;charset=utf-8");

ライターを使用する場合、サーブレットは自動的に Java 文字列から選択されたエンコーディングへの変換を処理します。

JSP

page ディレクティブを使用します。

  • <%@ page contenttype="text/html; charset=UTF-8"%>

out.println() または式要素 (<%= object%>) からの出力は、選択したエンコーディングに自動的に変換されます。また、ページ自体もこのエンコーディングであると解釈されます。

ASP

コンテンツ タイプと文字セットは、応答オブジェクトに設定されます。文字セットを設定するには、次を使用します。

  • <%Response.charset="utf-8"%>
于 2014-08-24T15:53:17.060 に答える