各位高手:jsp文件包含jsp文件时的中文问题

cherami 2001-10-09 02:46:51
一个jsp文件(假设名字为query.jsp)由几个文件组成,包含header.jsp,style.jsp,title.jsp,meunu.jsp,footer.jsp,
在query.jsp文件中,结构为:
<%@ include file="header.jsp" %>
<%@ include file="style.jsp" %>
<%@ include file="title.jsp" %>
<%@ include file="menu.jsp" %>
...
...
...
<%@ include file="footer.jsp" %>
而在header.jsp中的开头:
<%@ page contentType="text/html;charset=gb2312" import="java.sql.*,java.util.*"%>
结果在menu.jsp和query.jsp文件中的中文全部变成了乱码,但是从数据库中查询的结果正常,如果将header.jsp中的<%@ page contentType="text/html;charset=gb2312" import="java.sql.*,java.util.*"%>
移动到query.jsp的开头,则query.jsp中的中文都正常,而menu.jsp中的中文还是不正常!为什么呢?如何解决?
...全文
420 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
jacklondon 2002-01-15
  • 打赏
  • 举报
回复
response.setContentType("text/html; charset=GB2312");
或者response.setContentType("text/html; charset=UTF-8");
charset前面留一个空格
cherami 2001-10-19
  • 打赏
  • 举报
回复
resin的国际化支持我觉得比tomcat好!resin好像也支持多平台。
cocia 2001-10-19
  • 打赏
  • 举报
回复
看来必须要修改源码了阿!
另外:resin支持多平台么?
lliang2 2001-10-18
  • 打赏
  • 举报
回复
谢谢你的信任和你的分!
cherami 2001-10-18
  • 打赏
  • 举报
回复
lliang2(ll)的方法还有一个问题是对页面属性设置<%@ page contentType="text/html;charset=gb2312" import="java.sql.*,java.util.*"%>
必须放在query.jsp中,如果放在header.jsp中则query.jsp中的静态中文还是不能正常显示,只是其它被包含页面中的中文没有问题了。
lliang2 2001-10-17
  • 打赏
  • 举报
回复
另外,我遇到你的这个问题时,就是这么修改的,很有效,没有发现什么不对的
lliang2 2001-10-17
  • 打赏
  • 举报
回复
1.这种修改只适用于<%@ include 形式,要在最外层的jsp文件开头设置charset=gb2312
2.对于<jsp:include ,每个文件开头都设置charset=gb2312,不用修改任何tomcat的源
文件都是对的
lliang2 2001-10-17
  • 打赏
  • 举报
回复
这说明你的jasper.jar文件可能不止一个,而你又没有全部覆盖,
看看你实际启动tomcat时的classpath吧
cherami 2001-10-17
  • 打赏
  • 举报
回复
to secball(一片秋叶):
这个方法我试过,不行的。
secball 2001-10-17
  • 打赏
  • 举报
回复
不知这样行不行:
你把charset=gb2312这个东西去掉,然后在页面里所有涉及到有中文的地方,就用这种形式。
{%>
....
<%=var%>//var就代表汉字
.....

<%}
我以前在用MYSQL时就是这样搞定的,不知在这里行不行,我只是随便说说而已。
cherami 2001-10-17
  • 打赏
  • 举报
回复
OK,你的方法是对的,我把原来的那个jasper.jar文件在该目录下存为了jasper2.jar,结果tomcat启动的路径里面包含了它,而那个在类路径的后面,可能比前面的优先,结果。。。:)。非常感谢你的帮助!
另外我已经不用tomcat了,因为在页面间使用request.getParameter()传递参数时得到的中文还是需要进行编码转换,而resin这两个都没有问题,现在我的问题是我在使用apache的jakarta project的taglibs,其中的DBTags里面的一个标签getNumber在resin下不支持,而tomcat支持,哎,为什么免费的东西总有问题呢?
cherami 2001-10-17
  • 打赏
  • 举报
回复
我不是没有对你的方法没有信心,只是不知道错在那里了,我在国外的一个站点上也看到说修改tomcat的源代码可以解决中文问题,但是没有具体的代码,我也不知道该改哪儿。我还装了tomcat4,不知道是否是这个原因,我在试试,不要急,我会给分的。
lliang2 2001-10-17
  • 打赏
  • 举报
回复
如果哪位按照我说的能解决问题,请在此说一下,给大家一点信心。
cocia 2001-10-17
  • 打赏
  • 举报
回复
http://www.csdn.net/expert/topic/318/318066.shtm
我的也是没有解决,使用<jsp:inclue...>
错误:
Page directive: can't have multiple occurrences of contentType
cherami 2001-10-16
  • 打赏
  • 举报
回复
即使我将所有的<%@ include 形式换成<jsp:include 都不好用啊!!!!
你这样做过吗?我到底错在那里呢?
cherami 2001-10-16
  • 打赏
  • 举报
回复
else if (match.equals("include")) {
JspUtil.checkAttributes ("Include directive", attrs,
includeDvalidAttrs, start);
attrs.put("encoding","gb2312");
System.out.println("ok");
}
我修改了你所说的类,并按照你的要求重新构造了jasper.jar文件,我确实看到了新的类文件的生成日期是我编译的时间,而且在你的要求上加了System.out.println("ok");,但是我重新启动tomcat后没有反应啊,既没有输出ok也没有看到menu.jsp中的中文正常,我甚至在该方法的入口处打印ok也没有任何反应,无论我使用的是<%@ include file="menu.jsp" %>
还是<jsp:include page="xxxxx.jsp" flush="true"/>,
问题出在什么地方呢?难道要将所有的<%@ include 换成<jsp:include 吗
lliang2 2001-10-16
  • 打赏
  • 举报
回复
tomcat 修改方法
1。找到src\org\apache\jasper\compiler\Parser.java,打开它
2。找到函数public boolean accept(...
3。在这个函数下找到这样几行
else if(match.equals("include"))
JspUtil.checkAttributes("Include directive",attrs,includeDvalidAttrs);
4。这样修改
else if(match.equals("include"))
{
JspUtil.checkAttributes("Include directive",attrs,includeDvalidAttrs);
attrs.put("encoding","gb2312");
}
5。编译此文件,得到一堆.class文件
6。找到tomcat\lib\jasper.jar
7。使用jar命令行展开该文件,得到一个目录结构及文件
8。将5中产生的.class文件按照目录放在7中的对应目录下,覆盖原来的文件
9。使用jar命令行工具重新打包成jasper.jar文件
10。将9中生成的jasper.jar拷贝到tomcat\lib下,覆盖原来的文件
11。重启tomcat
大功告成
赶快加分!
cherami 2001-10-16
  • 打赏
  • 举报
回复
当然想要了,如果有用,分数全归你!谢谢
bigroc888 2001-10-16
  • 打赏
  • 举报
回复
<%@ page contentType="text/html;charset=gb2312"%>
lliang2 2001-10-16
  • 打赏
  • 举报
回复
对于tomcat 3.2.1,这是它的一个bug,
包含文件中的汉字不能正确显示,解决的方法有两个
1。对每一个包含文件中的每一处汉字,进行字符集转换
2。修改tomcat的源代码,更正这个错误,然后重新编译,
如果想要修改方法,请回个帖!
加载更多回复(8)
内容概要:本文针对复杂威胁环境下多无人机的协同路径规划问题,提出一种基于多段杜宾斯(Dubins)路径的优化方法,旨在实现高动态、高风险场景中无人机群的安全、高效与协同飞行。研究充分考虑无人机的实际飞行约束,如最小转弯半径与连续曲率要求,采用杜宾斯曲线构建平滑且符合动力学特性的路径段,并结合优化算法对多机路径进行协同规划,有效规避静态威胁区域与动态障碍物,避免飞行器间发生碰撞。方案在Matlab平台上完成仿真验证,结果表明该方法能够在城市、军事等复杂环境中实现多无人机系统的路径最短化、能耗最低化、安全性最大化与实性兼顾的多目标优化,具有较强的工程应用潜力。; 适合人群:具备无人机控制、路径规划或智能优化算法基础的科研人员与工程技术人员,特别适用于自动化、航空航天、机器人及相关领域的研究生、高校教师及工业界研发人员。; 使用场景及目标:①应用于复杂城市、战场等高威胁环境下的多无人机协同任务,如侦察监视、应急救援、集群打击与编队巡航;②为解决多无人机系统中的动态避障、冲突消解、路径平滑与资源协同分配等关键技术问题提供理论依据与算法实现参考;③帮助研究人员深入理解Dubins路径在多智能体协同运动规划中的建模方式与优化机制,推动其在无人系统自主导航中的实际落地。; 阅读建议:建议读者结合提供的Matlab代码深入研读算法实现流程,重点分析威胁建模策略、多机冲突协调机制以及多目标代价函数的设计思路,可通过调整环境参数与优化权重在仿真中观察路径生成效果,从而加深对协同决策、运动学约束与全局优化之间耦合关系的理解。
内容概要:本文围绕“基于飞机配电优化负荷管理系统研究”展开,利用Matlab代码实现相关建模仿真与优化分析,旨在提升飞机配电系统的效率与可靠性。研究重点针对飞机电力系统中的动态负荷分配问题,构建了综合考虑电源容量限制、负载优先级划分、供电安全性、能量消耗最小化及系统冗余能力的多约束优化模型。通过引入先进智能优化算法对模型进行高效求解,实现了对机载关键与非关键设备的科学化、智能化供电管理。文中详细展示了算法迭代过程、收敛性分析及不同工况下的仿真结果,验证了该方法在降低整体能耗、均衡电力负载、增强系统稳定性以及应对突发用电需求等方面的优越性能,为现代民用与军用航空器电力系统的自主决策与健康管理提供了坚实的理论支撑与可行的技术路径。; 适合人群:具备电力系统、自动化或航空航天工程背景,熟练掌握Matlab编程语言,从事飞机电气系统设计、航空器能源管理、智能优化算法应用或相关领域研究的科研人员、工程师及研究生。; 使用场景及目标:①应用于新型飞机电气系统的设计与仿真验证,优化机载设备的供电策略与能量管理逻辑;②为复杂封闭电力系统(如舰船、空间站)中的负荷调度与应急电源管理提供可借鉴的解决方案,以提升系统整体能效、安全等级与运行韧性。; 阅读建议:建议结合提供的Matlab代码深入理解优化模型的数学建模过程、约束条件的程序化表达及智能算法的具体实现细节,重点关注目标函数的设计思路、权重系数的选取对优化结果的影响,并可尝试将模型拓展至多目标优化、实滚动优化或考虑设备故障预测的主动负荷管理等更复杂的应用场景。

81,111

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧