jsp:IE里正常,firefox里乱码

萧湘易水寒 2010-09-04 10:41:54
jsp:IE里正常,firefox里乱码【级联下拉列表】

menu.jsp页面


<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="GBK"%>
<%@ page import="com.rjjx.zoukang.bll.*" %>
<%@ page import="com.rjjx.zoukang.dal.*" %>
<%@ page import="com.rjjx.zoukang.model.*" %>
<%@ page import ="com.sun.rowset.*" %>
<%
request.setCharacterEncoding("GBK");

response.setContentType("text/html;charset=GBK");
%>
<html>
<head>
<META http-equiv=Content-Type content="text/html; charset=GBK">
<!--LINK href="images/css.css" type=text/css rel=stylesheet-->
</head>
<%

ResultSet rs = null;
List<String> cities = new ArrayList<String>();


try {
ModuleDal mdal = new ModuleDal();
rs = mdal.getAllModules();
while (rs.next())
{
cities.add(rs.getString(3));
}
rs.close();

} catch (Exception e) {
e.printStackTrace();
}
%>
<body>
<script language="javascript">
var XMLHttpReq;
var currentSort;
//创建XMLHttpRequest对象
function createXMLHttpRequest() {
if(window.XMLHttpRequest) { //Mozilla 浏览器
XMLHttpReq = new XMLHttpRequest();
}
else if (window.ActiveXObject) { // IE浏览器
try {
XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
}
//发送请求函数
function sendRequest(url) {
createXMLHttpRequest();
XMLHttpReq.open("GET", url, true);
XMLHttpReq.onreadystatechange = processResponse;//指定响应函数
XMLHttpReq.send(null); // 发送请求
}
// 处理返回信息函数
function processResponse() {
if (XMLHttpReq.readyState == 4) { // 判断对象状态
if (XMLHttpReq.status == 200) { // 信息已经成功返回,开始处理信息
updateMenu();
} else { //页面不正常
alert("您所请求的页面有异常。");
}
}
}
//更新菜单函数
function updateMenu() {
var res=XMLHttpReq.responseXML.getElementsByTagName("res")
/**下面是用innerHTML输出控件内容的一般用法**/
//var subMenu = "";
//for(var i = 0; i < res.length; i++) {
// subMenu = subMenu + " " + res[i].firstChild.data + "";
//}
//currentSort.innerHTML = subMenu;

var list = document.all.list;
list.options.length=0;
list.add(new Option("---请选择---",""));
//list.add(new Option("---请选择---",""),null);
for(var i=0;i<res.length;i++){
list.add(new Option(res[i].firstChild.data,res[i].firstChild.data));
}
}
// 创建级联菜单函数
function showSubMenu(obj) {
//currentSort =document.getElementById(obj);
//currentSort.parentNode.style.display = "";
alert(obj);
//request.getRequestDispatcher("menujsp.jsp?sort=" + obj).forward(request, response);
sendRequest("menujsp.jsp?sort=" + obj);
}

</script>
<select onchange="showSubMenu(this.options[this.options.selectedIndex].value)" name="mli" style="width:150px">
<option value=''>---请选择---</option>
<%
for(int i=0;i<cities.size();i++)
{
out.println("<option value='"+cities.get(i)+"'>"+cities.get(i)+"</option>");
}
%>
</select>
<select name="list" onchange="if(this.selectedIndex)alert(this.options[this.options.selectedIndex].value)" style="width:100px">
<option>---请选择---</option>
</select>
</body>
</html>


menujsp.jsp页面

<%@ page contentType="text/html; charset=GBK"
import="java.util.*,java.sql.*"%>
<%@ page import="com.rjjx.zoukang.util.*"%>
<%@ page import="com.rjjx.zoukang.dal.*"%>
<%@ page import="com.rjjx.zoukang.model.*"%>
<%@ page import="com.sun.rowset.*"%>
<%
String sort = request.getParameter("sort");
sort = ChangeString.getStr(sort); //**********************这里接收时乱码*************
//sort=new String(sort.getBytes("iso-8859-1"), "GBK");
//**************这里firefox在出现了乱码****************///

ResultSet rs = null;
List<String> cities = new ArrayList<String>();

try {
System.out.println("TMSDdfadfadsfas");
SortDal sdal = new SortDal();
rs = sdal.getAllSortsByModName(sort);

while (rs.next()) {
System.out.println(rs.getString(3));
cities.add(rs.getString(3));
}
rs.close();

} catch (Exception e) {

e.printStackTrace();
}
response.setContentType("text/xml; charset=GBK");
response.setHeader("Cache-Control", "no-cache");
out.println("<response>");
for (int i = 0; i < cities.size(); i++) {
out.println("<res>" + cities.get(i).toString() + "</res>");
}
out.println("</response>");

%>
...全文
177 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
whlcy 2010-09-04
  • 打赏
  • 举报
回复
写个过滤器。。
amos1989 2010-09-04
  • 打赏
  • 举报
回复
给你一点建议,尽量都用UTF-8 不要用GBK
amos1989 2010-09-04
  • 打赏
  • 举报
回复
哥哥,看到在页面里写JSP代码的,我看都不想看了。
XML越来越热,关于XML的基础教程网络上也随处可见。可是一大堆的概念和术语往往让人望而生畏,很多朋友问我:XML到底有什么用,我们是否需要学习它?我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章。首先有两点是需要肯定的:   第一:XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解,等待只会让你失去机会;   第二:新知识肯定会有很多新概念,尝试理解和接受,您才可能提高。不要害怕和逃避,毕竟我们还年轻。   本文共分五大部分。分别是XML快速入门,XML的概念,XML的术语,XML的实现,XML的实例分析。最后附录介绍了XML的相关资源。作者站在普通网页设计人员的角度,用平实生动的语言,向您讲述XML的方方面面,帮助你拨开XML的神秘面纱,快速步入XML的新领域。 • 第一章:XML快速入门 • 一. 什么是XML? • 二. XML是新概念吗? • 三. 使用XML有什么好处? • 四. XML很难学吗? • 五. XML和HTML的区别 • 六. XML的严格格式 • 七. 关于XML的更多 • 第二章:XML概念 • 一. 扩展性 • 二. 标识 • 三. 语言 • 四. 结构化 • 五. Meta数据 • 六. 显示 • 七. DOM • 第三章:XML的术语 • 导言 • 一.XML文档的有关术语 • 二.DTD的有关术语 • 第四章:XML的语法 • 一.XML语法规则 • 二.元素的语法 • 三.注释的语法 • 四.CDATA的语法 • 五.Namespaces的语法 • 六.entity的语法 • 七.DTD的语法 • 第五章:XML实例解释 • 一.定义新标识 • 二.建立XML文档 • 三.建立相应的HTML文件 • 第六章:XML相关资源 五. XML和HTML的区别 XML和HTML都来自于SGML,它们都含有标记,有着相似的语法,HTML和XML的最大区别在于:HTML是一个定型的标记语言,它用固有的标记来描述,显示网页内容。比如表示首行标题,有固定的尺寸。相对的,XML则没有固定的标记,XML不能描述网页具体的外观,内容,它只是描述内容的数据形式和结构。 这是一个质的区别:网页将数据和显示混在一起,而XML则将数据和显示分开来。 我们看上面的例子,在myfile.htm中,我们只关心页面的显示方式,我们可以设计不同的界面,用不同的方式来排版页面,但数据是储存在myfile.xml中,不需要任何改变。 (如果你是程序员,你会惊讶的发现,这与模块化面向对象编程的思想极其相似!其实网页何尝不是一种程序呢?) 正是这种区别使得XML在网络应用和信息共享上方便,高效,可扩展。所以我们相信,XML做为一种先进的数据处理方法,将使网络跨越到一个新的境界。 六. XML的严格格式 吸取HTML松散格式带来的经验教训,XML一开始就坚持实行"良好的格式"。 我们先看HTML的一些语句,这些语句在HTML中随处可见: 1. sample 2.sample 3.sample 4.samplar 在XML文档中,上述几种语句的语法都是错误的。因为: 1.所有的标记都必须要有一个相应的结束标记; 2.所有的XML标记都必须合理嵌套; 3.所有XML标记都区分大小写; 4.所有标记的属性必须用""括起来; 所以上列语句在XML中正确的写法是 1. sample 2.sample 3.sample 4.samplar   另外,XML标记必须遵循下面的命名规则: 1.名字中可以包含字母、数字以及其它字母; 2.名字不能以数字或"_" (下划线) 开头; 3.名字不能以字母 xml (或 XML 或 Xml ..) 开头; 4.名字中不能包含空格。 在XML文档中任何的差错,都会得到同一个结果:网页不能被显示。各浏览器开发商已经达成协议,对XML实行严格而挑剔的解析,任何细小的错误都会被报告。你可以将上面的myfile.xml修改一下,比如将改为,然后用IE5直接打开myfile.xml,会得到一个出错信息页面: XML轻松学习手册 ajie

81,094

社区成员

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

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