救救我!

haoni99 2003-08-26 09:42:59
本人做了一个算命程序,跟数据库连接,数据库内容有:id,name, conter,
id:是星座代号 name:星座名子 conter:星座内容。现在的问题是,选中下拉菜单中的内容,比如说选中“水平座”在<list.jsp>页面显示内容不是“水平座”的内容请帮我看一下原代码什么地方有问题,帮我修改一下,谢谢。原代码如下:



<HTML>
<HEAD>
<TITLE> 命运</TITLE>
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
<form bgcolor="#F5F5F5" method="post" action="list.jsp">
<center><font color=green><h2>在线算命</font></center></h2>
<marquee direction=left behavior=alternate loop=20000 scrollamount=10><p> <IMG SRC="../../../picture.jpg" WIDTH="485" HEIGHT="248" BORDER=0 ALT=""></p></marquee>

<br>
<table border="0" width="600" valign="middle" cellspacing="0" cellpadding="0" align="left" bgcolor="#CCFF00" background="#00FF33">
<p> <tr><td> <p><h2>星座:
<select name="area" size="1" >
<option value=""> ------</option>
<option value='水平座'>水平座</option>
<option value='双鱼座'>双鱼座</option>
<option value='白羊座'>白羊座</option>
<option value='金牛座'>金牛座</option>
<option value='双子座'>双子座</option>
<option value='巨蟹座'>巨蟹座</option>
<option value='狮子座'>狮子座</option>
<option value='处女座'>处女座</option>
<option value='天平座'>天平座</option>
<option value='天蝎座'>天蝎座</option>
<option value='射手座'>射手座</option>
<option value='摩羯座'>摩羯座</option></h2>


</select>

<br>
<p>
<tr >
<td width=344> <h2><input type="submit" name="Input" value="算命"></h2> </td>
</tr>
</p>
</table>
</form>
</BODY>
</HTML>


<list.jsp>代码:

<%@ page import="java.lang.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.io.*"%>
<HTML>
<HEAD>
<TITLE> 在线算命</TITLE>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<style type="text/css">
<!--
a { text-decoration: none }
a:link { text-decoration: none; color: blue }
a:visited { text-decoration: none; color: blue }
a:active { text-decoration: underline; color: #FF0000 }
a:hover { color: #FF0000; text-decoration: underline }
--></style>
<BODY bgcolor="#FFFFFF" cellPadding=0 cellSpacing=0>
<%
String area=request.getParameter("area");
area=new String(area.getBytes("ISO8859_1"),"GBK");
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:book");
Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSIVE,RssultSet.CONCUR_READ_ONLY);
String sql="select * from text where name='"+area+"'";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next())
{
%>
水平座:<%=rs.getString(1)%>
双鱼座: <%=rs.getString(2)%>
白羊座: <%=rs.getString(3)%>
金牛座:<%=rs.getString(4)%>
双子座:<%=rs.getString(5)%>
巨蟹座:<%=rs.getString(6)%>
狮子座:<%=rs.getString(7)%>
处女座:<%=rs.getString(8)%>
天平座:<%=rs.getString(9)%>
天蝎座:<%=rs.getString(10)%>
射手座:<%=rs.getString(11)%>
摩羯座:<%=rs.getString(12)%>
<%}
rs.close();
stmt.close();
con.close();
}
catch(SQLException ex)
{
out.println("sqlexception:"+ex.getMessage()+);
}
finally {
try {
if (rs != null) {
rs.close();
}
} catch (SQLException e) {
}

try {
if (stmt != null) {
stmt.close();
}
} catch (SQLException e) {
}

try {
if (con!= null) {
con.close();
}
} catch (SQLException e) {
}
}

%>



</HEAD>



</BODY>
</HTML>


...全文
31 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
pzl686 2003-08-26
  • 打赏
  • 举报
回复
<%
while(rs.next())
{
%>
<%=area%>:<%=rs.getString("conter")%>
<%
}
rs.close();
stmt.close();
con.close();
%>
这样会好点
pzl686 2003-08-26
  • 打赏
  • 举报
回复
水平座:<%=rs.getString(1)%>
双鱼座: <%=rs.getString(2)%>
白羊座: <%=rs.getString(3)%>
金牛座:<%=rs.getString(4)%>
双子座:<%=rs.getString(5)%>
巨蟹座:<%=rs.getString(6)%>
狮子座:<%=rs.getString(7)%>
处女座:<%=rs.getString(8)%>
天平座:<%=rs.getString(9)%>
天蝎座:<%=rs.getString(10)%>
射手座:<%=rs.getString(11)%>
摩羯座:<%=rs.getString(12)%>
这是什么意思,看不明白
zhaoxichao 2003-08-26
  • 打赏
  • 举报
回复
String sql="select * from text where name='"+area+"'";
改成
String sql="select conter from text where name='"+area+"'";

while(rs.next())
{
out.println(area+":"+rs.getString("conter"));
}

rs.close();stmt.close();con.close();放到finally里面去做
ejbcreate 2003-08-26
  • 打赏
  • 举报
回复
String sql="select * from text where name='"+area+"'";

~~~估计是area的编码问题,你可能要把area字符串的编码与你的数据库的字符集一致,例如假设你的DB字符集是ISO88591编码的,用下面的方法或许可以帮你解决这个问题:
...
public static String fromGBKtoISO(String s){
try {
if (s==null || s.length()<1) return s;
char c = s.charAt(0);
//System.out.println("s.charAt="+((int)c));
if (c<=255) return s;
// if char code < 256, means not unicode, so return
byte[] temp = s.getBytes("GBK");
String a = new String(temp,"iso8859-1");
//System.out.print("s.charAt=");
//for (int i=0;i<a.length(); i++) System.out.print(((int)a.charAt(i)));
//String a = new String(temp,"gb2312");
//System.out.println(fromISOtoGBK(a));
return a;
}catch (Exception e) {
return null;
}
}
...


String sql="select * from text where name='"+new String(area.getBytes("GBK"),"ISO88591")+"'";
wyhgg 2003-08-26
  • 打赏
  • 举报
回复
不知道你如何做的,好像两个文件没关系。
你应该在第一个文件中选择星座时,把值传到jsp文件中,然后对其处理啊
你敢扫一扫吗 2003-08-26
  • 打赏
  • 举报
回复
楼主应该好好看看getstring()方法的意思
String area=request.getParameter("area");
area=new String(area.getBytes("ISO8859_1"),"GBK");
这个又是什么意思

81,091

社区成员

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

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