发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 CQRS 扩展性 并发编程 事件溯源 分布式 SOA
1 2 下一页 Go 2

Linux下tomcat中include的问题

2003-09-11 00:05
赞助商链接

redhat9+tomcat4.0.6

在1.jsp中使用include
<%@include file="/include/head.jsp"%>
head.jsp中存放如下语句:
<%@page contentType="text/html;charset=gb2312"%>

此时jsp中写定的中文全部乱码。

但如果不使用include,将<%@page contentType="text/html;charset=gb2312"%>直接写在1.jsp,则中文正常显示。

有点糊涂,为什么会这样。

2003-09-11 00:27

今天听一个同事说unix系操作系统下,在jsp中使用include,在webshpere中有页面不刷新的问题(如a include b,b中使用out输入一个串,然后访问a,再将b中out注释,再访问a,则a中会一直有out出来的串。重起WEB服务器无效,清空IE缓存、重起客户端也无效。),在tomcat上试了一下也有这个问题。

linux下include的机制是什么样的,好像和windows平台差别很大?

还有谁遇到过此种问题?

2003-09-11 00:29

晕倒,忘了jdon没过滤标签。

重发一楼



redhat9+tomcat4.0.6

在1.jsp中使用include

head.jsp中存放如下语句:
<%@page contentType="text/html;charset=gb2312"%>

此时jsp中写定的中文全部乱码。

但如果不使用include,将<%@page contentType="text/html;charset=gb2312"%>
直接写在1.jsp,则中文正常显示。

有点糊涂,为什么会这样。

2003-09-11 00:47

第二个问题,是jsp容器判断jsp文件是否发生改变的机制linux下和windows不一样吧。

windows下会判断原始jsp和所包含的jsp,linux好像只判断原始jsp。

2003-09-11 09:47

乱码问题:

这是Tomcat的错,jsp页面在进行translate的时候,如果没有指定jsp的charset,那么Tomcat会默认以ISO8859-1解析你的jsp页面,将其翻译成xxx.java文件,换句话说,在jsp成为servlet后,你的中文就乱码了,如果想要改变这个问题,可以修改Tomcat的源代码,将translate jsp到Servlet的部分修改一下,很简单,所以有一种说法认为Tomcat故意做的这样,使得非英语用户受到一定限制,或者说,作为一个免费的东西,不能做的太完美。

不刷新问题:

jsp页面的刷新,是由web服务器定期检查jsp页面的更新时间决定的。
你修改了include.jsp但是,包含它的jsp没有被更新,服务器不会对他们进行重新编译,自然不会刷新。
Tomcat也好,WebSphere也好,都需要删除临时文件。服务器端的临时文件。在客户端,做什么都没用。

我的建议:尽量不要用静态的include ,尽可能使用动态的include.
pageContext.include();

静态的include,包含和被包含文件是一个编译单位,尤其是有共享变量的时候,更加麻烦。
动态的include,只要保证被include能运行,并且出页面,就可以保证包含文件不会出编译期错误了。

2Go 1 2 下一页

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系反馈 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com