表单值传递的问题,很奇怪
查询页是一表单,主要代码如下
<%@ page contentType="text/html; charset=ISO8859_1" language="java" import="java.sql.*" errorPage="" %>
<form name="form1" method="post" action="show_city.jsp" onSubmit="return Form1_Validator(this)">
<table width="220" border=1 align=center cellpadding=0 cellspacing=0 bordercolor="#666666" bordercolordark="#FFFFFF">
<tr height="30">
<td width="110"><div align="center">中 文 名:</div></td>
<td width="110" ><div align="center"><input type="text" name="cn" size="12"></div></td>
</tr>
<tr height="30">
<td width="110"><div align="center">英 文 名:</div></td>
<td width="110"><div align="center"><input type="text" name="en" size="12"></div></td>
</tr>
<tr height="30">
<td colspan="2"><div align="center"><input name="提交" type="submit" value="查 询"></div></td>
</tr>
</table>
</form>
接收页面
<%@ page contentType="text/html; charset=ISO8859_1" language="java" import="java.sql.*" errorPage="" %>
<%@ include file="conn.jsp" %>
<%
String cn=request.getParameter("cn");
String en=request.getParameter("en");
String sql_temp="";
if ( !( cn==null || cn.equals("") ) )
{
sql_temp=sql_temp+" city_name_cn='"+cn+"' ";
}
if ( !( en==null || en.equals("") ) )
{
if (sql_temp!="") {sql_temp= sql_temp+" and ";}
sql_temp=sql_temp+" city_name_en='"+en+"' ";
}
if (sql_temp!="")
{
sql_temp=" where "+sql_temp;
}
%>
<body>
<%
String sql="select * from city "+sql_temp;
out.print(sql);
ResultSet rs=stmt.executeQuery(sql);
while(rs.next())
{
%>
您的第一个字段内容为:<%=rs.getString(0)%>
您的第二个字段内容为:<%=rs.getString(1)%>
<br>
<%
}
%>
<%rs.close();
stmt.close();
conn.close();
%>
比如说,我的数据表为city
c_name e_name
------- -------
桂林 GL
如果,我在查询页面en文本框内输入"GL",则可以正常显示
“您的第一个字段内容为:桂林 您的第二个字段内容为:GL”
但是,如果在cn文本框内输入“桂林”,则不能显示内容
可是,用out.print(sql);写出的SQL语句确是正确的,放在oracle里面也可以查到数据
就是不能执行while循环
请问大家这是什么回事
难道会是中文乱码,不会吧,用out.print(cn);他都可以显示“桂林”
实在是郁闷阿
请大家指教
谢谢了