标题:[求助]一个奇怪的跳转问题!
只看楼主
梧桐
Rank: 1
等 级:新手上路
帖 子:135
专家分:0
注 册:2005-11-17
 问题点数:0 回复次数:16 
[求助]一个奇怪的跳转问题!

  我做了一个简单的登陆页面,在adlogin.jsp中接收输入的用户名和密码,存到Administer的javabean中,然后在switch.jsp 中验证,奇怪的是无论输入的密码是否正确,都跳转到/login/fail.jsp这个页面。

代码如下:

adlogin.jsp的代码:
<%@page contentType="text/html; charset=GBK" import="common.AdministerList" errorPage="error.jsp"%>
<html>
<head>
<title>adlogin</title>
</head>
<body bgcolor="#ffffff">
<form name="form1" method="post" action="/ECWeb/login/switch.jsp">
<!-- <form name="form1" method="post" action="/ECWeb/admiLoginAction.do">-->
<table align="center" bgcolor="ccffcc" border="0" cellspacing="20">
<tr>
<td>用户名:</td>
<td align="left">
<select name="admiName">
<option value="" selected>--选择管理员登陆名称--</option>
<%=AdministerList.getAdmiListHTML()%> </select>
</td>
</tr>
<tr>
<td width="100"> 密
&nbsp
码:
</td>
<td align="center" width="30">
<input name="admiPassword" type="password">
</td>
</tr>
<tr>
<td height="30" align="right">
<input type="submit" name="submit" value="确认" align="middle"/>
</td>
<td height="30" align="center">
<input type="reset" name="reset" value="清空" align="middle"/>
</td>
</tr>
</table>
</form>
</body>
</html>


switch.jsp 的代码:
<%@ page contentType="text/html; charset=GBK" errorPage="error.jsp" %>
<%@ page import="common.*"%>
<%@page import="java.sql.*"%>
<jsp:useBean id="administerBean" scope="page" class="common.Administer" />
<jsp:setProperty name="administerBean" property="*" />
<%
Connection conn = null;
try {
conn = DBConnection.getConnection();
String newName=administerBean.getAdmiName();
String newPassword=administerBean.getAdmiPassword();
String sql="select admiId from AdmiInfo where admiName=newName and admiPassword=newPassword";
Statement Stmt=conn.createStatement();
ResultSet rs = Stmt.executeQuery(sql);
if (rs.next()) { //密码正确
administerBean.setAdmiId(Long.parseLong(rs.getString("admiId")));
session.setAttribute("ses_administerBean", administerBean);
%>
<jsp:forward page="/login/adindex.jsp"></jsp:forward>
<%} else { //密码错误%>
<jsp:forward page="/login/fail.jsp"></jsp:forward>
<%
}} finally {
if (conn != null) conn.close();
}
%>


Administer的代码:
package common;

import javax.servlet.http.HttpSessionBindingListener;
import javax.servlet.http.HttpSessionBindingEvent;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Administer
{
private long admiId;
private String admiPassword;
private String admiName;

public String getAdmiPassword()
{
return admiPassword;
}

public long getAdmiId()
{
return admiId;
}

public String getAdmiName()
{
return admiName;
}

public void setPassword(String admiPassword)
{
this.admiPassword = admiPassword;
}

public void setAdmiId(long admiId)
{
this.admiId = admiId;
}

public void setAdmiName(String admiName)
{
this.admiName = admiName;
}
}

请各位帮忙看看,谢谢了~~~

搜索更多相关主题的帖子: head blank 用户名 ffffff 
2007-05-16 16:02
支离破碎
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:737
专家分:0
注 册:2007-1-4
得分:0 
String sql="select admiId from AdmiInfo where admiName="+newName+" and admiPassword=+"newPassword;
改成这样,然后看你的数据类型看要不要加上‘ 号.

人生漂泊無依,有如浮萍菱花,隨水飄流,你会在我这里停留吗?
[url=http://51mynet.]http://51mynet.[/url]
2007-05-16 16:51
梧桐
Rank: 1
等 级:新手上路
帖 子:135
专家分:0
注 册:2005-11-17
得分:0 

谢谢ls的解答,可惜错误依旧!
我把sql语句改成这样了:
 String sql="select admiId from AdmiInfo where admiName='"+newName+"' and admiPassword='"+newPassword+"'";
或是这样:
   String sql="select admiId from AdmiInfo where admiName="+newName+" and admiPassword="+newPassword;
都还是只能跳转到/login/fail.jsp这个页面。

PS:数据类型
 admiId:bigint
admiName:varchar
admiPassword:varchar
 数据库是sql2000


The future is ours to build!
2007-05-16 18:27
sxzxwxf22
Rank: 1
等 级:新手上路
帖 子:110
专家分:0
注 册:2007-3-7
得分:0 
你的密码验证方式select admiId from AdmiInfo where admiName='"+newName+"' and admiPassword='"+newPassword+"'";是有BUG的

2007-05-16 18:45
梧桐
Rank: 1
等 级:新手上路
帖 子:135
专家分:0
注 册:2005-11-17
得分:0 
以下是引用sxzxwxf22在2007-5-16 18:45:15的发言:
你的密码验证方式select admiId from AdmiInfo where admiName='"+newName+"' and admiPassword='"+newPassword+"'";是有BUG的

那想想问问,该怎么修改好呢??
我很奇怪的是没理由总是跳转到/login/fail.jsp 这个页面呀!!!

[此贴子已经被作者于2007-5-16 21:22:58编辑过]


The future is ours to build!
2007-05-16 21:22
支离破碎
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:737
专家分:0
注 册:2007-1-4
得分:0 

还是你的这个SQL语句有问题你先写个数据库中已存在的记录,看能否查到
你现在这一块只有可能是SQL语句有问题。


人生漂泊無依,有如浮萍菱花,隨水飄流,你会在我这里停留吗?
[url=http://51mynet.]http://51mynet.[/url]
2007-05-17 08:57
梧桐
Rank: 1
等 级:新手上路
帖 子:135
专家分:0
注 册:2005-11-17
得分:0 
试了很多的方法,似乎是页面传递数据的问题,adlogin.jsp提交的数据在switch.jsp 中读不出来,调试中

The future is ours to build!
2007-05-17 11:08
支离破碎
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:737
专家分:0
注 册:2007-1-4
得分:0 
String newName=administerBean.getAdmiName();
String newPassword=administerBean.getAdmiPassword();
不是这样取的,你应该用request来取而不是用你的javabean,你的JAVA在上一个页面没有存入且你的这个BEAN只是一个PAGE级的BEAN。

人生漂泊無依,有如浮萍菱花,隨水飄流,你会在我这里停留吗?
[url=http://51mynet.]http://51mynet.[/url]
2007-05-17 11:15
梧桐
Rank: 1
等 级:新手上路
帖 子:135
专家分:0
注 册:2005-11-17
得分:0 
回ls:
 你是说这样取:
      String newName=request.getParameter("admiName");
那个bean为什么不可用呢?要用的话该怎么写才对呢?

[此贴子已经被作者于2007-5-17 11:54:47编辑过]


The future is ours to build!
2007-05-17 11:53
支离破碎
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:737
专家分:0
注 册:2007-1-4
得分:0 

是的要用request取,如果你要用bean就要把bean设置成session级别的,这样你下一个页面才能拿到,而且你要在第一个页面中把bean的值赋上才可以


人生漂泊無依,有如浮萍菱花,隨水飄流,你会在我这里停留吗?
[url=http://51mynet.]http://51mynet.[/url]
2007-05-17 12:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-139882-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.099138 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved