| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2228 人关注过本帖
标题:JSP..page指令的作用域问题
只看楼主 加入收藏
keeplinker
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-10-20
收藏
 问题点数:0 回复次数:11 
JSP..page指令的作用域问题

教程上<%@page%>指令对于整个JSP页面.包括静态包含文件都是有效的.

但实际使用中似乎不是那么回事.


文件A内容如下
<head>
<title>大干30天</title>
</head>
<body>

文件B内容如下
<%@ include file="文件A"%>
哇哈哈哈
</body>
</html>

除非两个文件中都加入.<%@ page contentType="text/html; charset=gb2312"%>指令.不然就会有一个文件出现乱码.
不是说该指令对于静态包含文件也有效的吗?

麻烦高手解答一下.

搜索更多相关主题的帖子: JSP 指令 page 
2007-05-23 11:13
风月_无边
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:60
帖 子:2960
专家分:652
注 册:2007-1-19
收藏
得分:0 
不清楚!

我的网站 http://www.
2007-05-23 17:17
angeloc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:36
帖 子:1353
专家分:0
注 册:2006-11-21
收藏
得分:0 
<%@ include file="文件"%>
这个是静态的,相当于把JSP编译成CLASS前把引入页面插入页面里.
你把<%@ page contentType="text/html; charset=gb2312"%>放在文件B的最前面,这样访问B文件时候显示出来是不会有乱码的!

不知道你是文这个么?

老牛明知夕阳晚,不用扬鞭自奋蹄; Angelo\'s BLOG
2007-05-23 17:21
风月_无边
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:60
帖 子:2960
专家分:652
注 册:2007-1-19
收藏
得分:0 
lz问的是,在b文件中不加这句。但是包含他的文件中加上,为什么不行?

我的网站 http://www.
2007-05-23 17:29
angeloc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:36
帖 子:1353
专家分:0
注 册:2006-11-21
收藏
得分:0 
以下是引用风月_无边在2007-5-23 17:29:18的发言:
lz问的是,在b文件中不加这句。但是包含他的文件中加上,为什么不行?
为什么不行?行,当然行了,没问题的!可是如果包行两个<%@ page contentType="text/html; charset=gb2312"%>是不行的.这个在页面中只能有一个!


老牛明知夕阳晚,不用扬鞭自奋蹄; Angelo\'s BLOG
2007-05-23 17:44
keeplinker
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-10-20
收藏
得分:0 
以下是引用angeloc在2007-5-23 17:21:00的发言:
<%@ include file="文件"%>
这个是静态的,相当于把JSP编译成CLASS前把引入页面插入页面里.
你把<%@ page contentType="text/html; charset=gb2312"%>放在文件B的最前面,这样访问B文件时候显示出来是不会有乱码的!

不知道你是文这个么?







比如,如果A文件中包含该指令(放到第一行).B文件中不包含该项指令..那么标题就是中文..但页面中的就是乱码.
如果B文件中包含该指令(放到第一行).A文件中不包含该项指令..那么标题就是乱码..页面内容就是正常的..

只有当两个文件都包含该项指令的时候..页面才是正常的.

但我的书上明明讲page指令作用域是整个页面的啊.难道我书上写错了?

[此贴子已经被作者于2007-5-24 14:40:33编辑过]

2007-05-24 14:37
angeloc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:36
帖 子:1353
专家分:0
注 册:2006-11-21
收藏
得分:0 
以下是引用keeplinker在2007-5-24 14:37:28的发言:







比如,如果A文件中包含该指令(放到第一行).B文件中不包含该项指令..那么标题就是中文..但页面中的就是乱码.
如果B文件中包含该指令(放到第一行).A文件中不包含该项指令..那么标题就是乱码..页面内容就是正常的..

只有当两个文件都包含该项指令的时候..页面才是正常的.

但我的书上明明讲page指令作用域是整个页面的啊.难道我书上写错了?


不知道你为什么会产生那个原因!
应该是任何一个页面里包含<%@ page contentType="text/html; charset=gb2312"%>时候都不会有乱码的,是对整个页面的范围!我这没出现过你的问题.


老牛明知夕阳晚,不用扬鞭自奋蹄; Angelo\'s BLOG
2007-05-24 14:47
keeplinker
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-10-20
收藏
得分:0 
哦。我还以为是我的书写错了!
2007-05-25 19:42
keeplinker
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-10-20
收藏
得分:0 
那可能可配置的关系吧。我用的是中文版的Tomcat..装SDK的时候找了最新版的。但装出来的目录却是jre1.6.0_01也不知道是不是我下错了!
2007-05-25 20:01
NiceGirl
Rank: 2
等 级:新手上路
威 望:4
帖 子:909
专家分:0
注 册:2006-6-18
收藏
得分:0 

确实出现了楼住的问题
jsp1.jsp:
<%@page contentType="text/html;charset=gb2312"%>
<%@include file="jsp2.jsp"%> 这里的include顺序我调过了,无论在内容之上还是之下都是乱码
我是JSP1

jsp2.jsp:
<%@page contentType="text/html;charset=gb2312"%> 这是不加就乱码
<h1>我是JSP2</h1>

tomcat编译原码参考:

package org.apache.jsp;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;

public final class jsp1_jsp extends org.apache.jasper.runtime.HttpJspBase
implements org.apache.jasper.runtime.JspSourceDependent {

private static java.util.Vector _jspx_dependants;

static {
_jspx_dependants = new java.util.Vector(1);
_jspx_dependants.add("/jsp2.jsp");
}

public java.util.List getDependants() {
return _jspx_dependants;
}

public void _jspService(HttpServletRequest request, HttpServletResponse response)
throws java.io.IOException, ServletException {

JspFactory _jspxFactory = null;
PageContext pageContext = null;
HttpSession session = null;
ServletContext application = null;
ServletConfig config = null;
JspWriter out = null;
Object page = this;
JspWriter _jspx_out = null;
PageContext _jspx_page_context = null;


try {
_jspxFactory = JspFactory.getDefaultFactory();
response.setContentType("text/html;charset=gb2312");
pageContext = _jspxFactory.getPageContext(this, request, response,
null, true, 8192, true);
_jspx_page_context = pageContext;
application = pageContext.getServletContext();
config = pageContext.getServletConfig();
session = pageContext.getSession();
out = pageContext.getOut();
_jspx_out = out;

out.write('\r');
out.write('\n');
out.write("<h1>ÎÒÊÇJSP2</h1>");
out.write("\r\n");
out.write("我是JSP1");
} catch (Throwable t) {
if (!(t instanceof SkipPageException)){
out = _jspx_out;
if (out != null && out.getBufferSize() != 0)
out.clearBuffer();
if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
}
} finally {
if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context);
}
}
}


继续OBing。。。


曾经以为百般艰难,蓦然回首,才发现已飞渡千山。。!
2007-05-26 00:05
快速回复:JSP..page指令的作用域问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.050195 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved