页面跳转问题求助,在线等!
大家好!
最近,我用JSP做个页面传值并跳转页面的联系,遇到了问题,请帮我看看吧,谢谢!
下面是源代码:
---------------------------------------------------------------------------
<%@ page contentType="text/html;charset=GBK" %>
<%@ page session="true" %>
<%@ page import = "java.sql.*"%>
<%
try{
//取出用户名和密码
String s_ur = request.getParameter("txUser");
String s_pw = request.getParameter("txPw");
//建立连接
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Northwind";
String user="sa";
String password="**********";
Connection conn= DriverManager.getConnection(url,user,password);
//检查用户是否存在
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select count(*) as usr_count from _member where user='"+s_ur+"' and password='"+s_pw+"'";
ResultSet rs=stmt.executeQuery(sql);
int i_urs = 0;
//若该用户存在
if(rs.next())
i_urs = rs.getInt("usr_count");
//进入基本信息录入页面
if(i_urs!=0)
{
session.putValue("session_user",s_ur);
session.setMaxInactiveInterval(36000);
response.sendRedirect("info.jsp?user=s_ur");
}
//否则提示错误
else
{
%>
---这里是错误提示信息---
<%
}
}
catch(Exception e)
{
out.println(e.getMessage());
}
%>
---------------------------------------------------------------------------
现在有2个问题:
1.为什么,用户是否存在都显示那些错误信息?
2.在 session.putValue("session_user",s_ur);
session.setMaxInactiveInterval(36000);
response.sendRedirect("info.jsp?user=s_ur");
中
putValue是什么方法(因为总看有人在用,放入值吗)?
不能显示info.jsp,是不是sendRedirect中的info.jsp?user=s_ur写的有问题?
在线等,大家帮我看看,谢谢,比较急!
问题点数:0、回复次数:13Top
1 楼CPO(CPO)回复于 2005-06-02 12:37:19 得分 0
顶,大家来看看吧,拜托!Top
2 楼UPCCPU(最低奋斗目标:农妇、山泉、有点田)回复于 2005-06-02 12:42:45 得分 0
putValue是被淘汰的方法了,现在用setAttribute
提示什么错误呢?Top
3 楼CPO(CPO)回复于 2005-06-02 12:46:12 得分 0
没什么错误,就是无论该用户是否存在,都显示<body>里的HTML错误信息
response.sendRedirect("info.jsp?user=s_ur");
而不跳转到info.jsp去,为什么?Top
4 楼CPO(CPO)回复于 2005-06-02 12:46:58 得分 0
""里的传值写的有问题吗?Top
5 楼jack813()回复于 2005-06-02 12:59:48 得分 0
s_ur是变量
应写成
response.sendRedirect("info.jsp?user="+s_ur);Top
6 楼CPO(CPO)回复于 2005-06-02 13:16:01 得分 0
还是不行,到不了info.jsp
为什么啊,大家帮我看看吧Top
7 楼jack813()回复于 2005-06-02 13:21:37 得分 0
是不是网页的其他地方有错?你把其他语句都注释掉,只运行response.sendRedirect
跳转到一个不需要接收值的test页
如果可以加上接收值再试
如果都成功,说明是其他地方有错,逐行debugTop
8 楼totyulvxl(sun)回复于 2005-06-02 13:31:59 得分 0
1,
response.sendRedirect("info.jsp?user=s_ur");
-> response.sendRedirect("info.jsp?user="+s_ur);
2,看看这一行有没有运行到,估计这行没有跑到
比如加个语句试试看, System.out.println("OK-----------");
response.sendRedirect("info.jsp?user="+s_ur);
Top
9 楼Maple99(Maple)回复于 2005-06-02 13:37:40 得分 0
首先。debug是否走到sendRedirect行,另外跳轉路徑是否正確Top
10 楼CPO(CPO)回复于 2005-06-02 13:44:53 得分 0
To totyulvxl(sun):
看来是没有,直接显示我写的错误信息了
怎么办啊Top
11 楼CPO(CPO)回复于 2005-06-02 14:45:20 得分 0
又出现新的问题,这个应该很简单
想要根据查询条件显示数据库中相应的记录,为什么报错儿,如何解决啊?
源代码如下:
---------------------------------------------------------------------------------
<%
try{
//取出要查找用户
String s_ur = request.getParameter("txUser");
//建立连接
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Northwind";
String user="sa";
String password="*******";
Connection conn= DriverManager.getConnection(url,user,password);
//检查用户是否存在
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from _m_info where user='"+s_ur+"'";
ResultSet rs=stmt.executeQuery(sql);
//该用户存在
while(rs.next())
{
%>
<div align="center"><br>
<br>
<table width="22%" border="0">
<tr>
<td width="23%">
<div align="right">帐号:</div>
</td>
<td width="5%"> </td>
<td width="72%">
<div align="left"><%=rs.getString(1)%></div>
</td>
</tr>
<tr>
<td width="23%">
<div align="right">姓名:</div>
</td>
<td width="5%"> </td>
<td width="72%">
<div align="left"><%=rs.getString(2)%></div>
</td>
</tr>
<tr>
<td width="23%">
<div align="right">年龄:</div>
</td>
<td width="5%"> </td>
<td width="72%">
<div align="left"><%=rs.getInt(3)%></div>
</td>
</tr>
<tr>
<td width="23%">
<div align="right">性别:</div>
</td>
<td width="5%"> </td>
<td width="72%">
<div align="left"><%=rs.getString(4)%></div>
</td>
</tr>
<tr>
<td width="23%">
<div align="right">电话:</div>
</td>
<td width="5%"> </td>
<td width="72%">
<div align="left"><%=rs.getString(5)%></div>
</td>
</tr>
</table>
</div>
<%
}
}
catch(Exception e)
{
out.println(e.getMessage());
}
finally
{
rs.close();
stmt.close();
conn.close();
}
%>
---------------------------------------------------------------------------------
以下是错误信息(Tomcat5)
---------------------------------------------------------------------------------
Generated servlet error:
[javac] Compiling 1 source file
C:\Program Files\Tomcat5010\work\Catalina\localhost\a\org\apache\jsp\result_jsp.java:153: cannot resolve symbol
symbol : variable rs
location: class org.apache.jsp.result_jsp
rs.close();
^
An error occurred at line: 84 in the jsp file: /result.jsp
Generated servlet error:
C:\Program Files\Tomcat5010\work\Catalina\localhost\a\org\apache\jsp\result_jsp.java:154: cannot resolve symbol
symbol : variable stmt
location: class org.apache.jsp.result_jsp
stmt.close();
^
An error occurred at line: 84 in the jsp file: /result.jsp
Generated servlet error:
C:\Program Files\Tomcat5010\work\Catalina\localhost\a\org\apache\jsp\result_jsp.java:155: cannot resolve symbol
symbol : variable conn
location: class org.apache.jsp.result_jsp
conn.close();
^
3 errors
---------------------------------------------------------------------------------
怎么让数据显示出来啊,好象差不多了,就差点儿啊,大家帮我看看吧,谢谢!
顶!
Top
12 楼CPO(CPO)回复于 2005-06-02 14:50:28 得分 0
顶Top
13 楼liwenchao()回复于 2005-06-02 16:44:30 得分 0
回复:
1 .putValue()是一个已经废弃的方法,取而带之的是setAttribute();
2. sendRediect()方法中的变量如果含有汉字的话 ,它是不认识的,需要编码处理!
如:String name="info.jsp?user="+s_ur;
name=new String(name.getBytes("GBK"),"ISO8859_1");
response.sendRedirect(name);
3 数据库的驱动装好了吗?还有检查一下是否导入包import="java.sql.*"?Top




