我在做一个小的管理信息系统,在注册登入模块时出现了如下问题,成功注册后(提示成功注册)后台数据库(sql server2000)没有数据,用成功注册的帐号也登入不了关于用户注册的jsp代码如下:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*"%>
<% request.setCharacterEncoding("gb2312"); %>
<%@ page import="com.bwm.db.Condb"%>
<%@ page import="java.util.Date"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>处理登录页面</title>
</head><body>
<%
Date date=new Date();
Condb con=new Condb();
String username=request.getParameter("username");
String Rname=request.getParameter("Rname");
String password=request.getParameter("password");
String email=request.getParameter("email");
String address=request.getParameter("address");
String photo=request.getParameter("photo");
String pass=request.getParameter("pass");
String question=request.getParameter("question");
String str="select Username from tb_User where Username='"+username+"'";
ResultSet rs=con.executeQuery(str);
if(rs.next()){
%>
<script language="javascript">
alert("此用户已经被占用请重新注册");
history.back();
</script>
<%
}else{
String sql="insert into tb_User(Username,Rname,Userpass,Email,Address,Photo,Question,Result,Dattime) values ('"+username+"','"+Rname+"','"+password+"','"+email+"','"+address+"','"+photo+"','"+question+"','"+pass+"','"+date.toLocaleString()+"')";
int temp=con.executeUpdate(sql);
%>
<script language="javascript">
alert("注册成功");
window.location.href=("../index.jsp");
</script>
<%
}con.close();
%>
</body>
</html>
但奇怪的是在后台可以加入登入帐号并且可以正常登入,所以我觉得是不是这个jsp的数据库插入更新语句有问题,请高手指点下阿
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*"%>
<% request.setCharacterEncoding("gb2312"); %>
<%@ page import="com.bwm.db.Condb"%>
<%@ page import="java.util.Date"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>处理登录页面</title>
</head><body>
<%
Date date=new Date();
Condb con=new Condb();
String username=request.getParameter("username");
String Rname=request.getParameter("Rname");
String password=request.getParameter("password");
String email=request.getParameter("email");
String address=request.getParameter("address");
String photo=request.getParameter("photo");
String pass=request.getParameter("pass");
String question=request.getParameter("question");
String str="select Username from tb_User where Username='"+username+"'";
ResultSet rs=con.executeQuery(str);
if(rs.next()){
%>
<script language="javascript">
alert("此用户已经被占用请重新注册");
history.back();
</script>
<%
}else{
String sql="insert into tb_User(Username,Rname,Userpass,Email,Address,Photo,Question,Result,Dattime) values ('"+username+"','"+Rname+"','"+password+"','"+email+"','"+address+"','"+photo+"','"+question+"','"+pass+"','"+date.toLocaleString()+"')";
int temp=con.executeUpdate(sql);
%>
<script language="javascript">
alert("注册成功");
window.location.href=("../index.jsp");
</script>
<%
}con.close();
%>
</body>
</html>
但奇怪的是在后台可以加入登入帐号并且可以正常登入,所以我觉得是不是这个jsp的数据库插入更新语句有问题,请高手指点下阿
解决方案 »
- servlet是如何获取数据库数据的(新人)
- 用getParameter()方法获取参数来编写jsp页面,求解??
- 求web service学习向导!
- 现在JAVA工作好找不 我的简历发了没人让我去呀。大伙给看看
- 关于阿拉伯字母与数字顺序
- 如何在弹出窗口中复制部分的主窗口内容?
- 数据库查询问题:如何判断查询结果集中是否有我指定的一个列
- 请教一个使用jspsmartupload组件上传的问题!
- 用JSP调JavaBean,JavaBean再调用本地方法dll
- 在websphere 的classpath中引入NCSO.jar时(lotus notes的 类),服务不能启动
- 连接SQLServer2000中的datetime问题
- 招web开发人员,月薪5k以上,要求ajax,mysql,linux深圳工作
你没有加任何判断的。
还有LZ的代码写得很乱。JSP里面最好不要出现JAVA代码。
"成功注册后(提示成功注册)后台数据库(sql server2000)没有数据,
用成功注册的帐号也登入不了关于用户注册的jsp代码如下: "我个人认为你是的数据库操作类的代码编写中
对于请求没有事务提交造成的你commit一下,就可以了你试试,不行再说
<% request.setCharacterEncoding("gb2312"); %>
<%@ page import="com.bwm.db.Condb"%>
<%@ page import="java.util.Date"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>处理登录页面 </title>
</head> <body>
<%
Date date=new Date();
Condb con=new Condb();
String username=request.getParameter("username");
String Rname=request.getParameter("Rname");
String password=request.getParameter("password");
String email=request.getParameter("email");
String address=request.getParameter("address");
String photo=request.getParameter("photo");
String pass=request.getParameter("pass");
String question=request.getParameter("question");
String str="select Username from tb_User where Username='"+username+"'";
ResultSet rs=con.executeQuery(str);
if(rs.next()){
%>
<script language="javascript">
alert("此用户已经被占用请重新注册");
history.back();
</script>
<%
}else{
String sql="insert into tb_User(Username,Rname,Userpass,Email,Address,Photo,Question,Result,Dattime) values ('"+username+"','"+Rname+"','"+password+"','"+email+"','"+address+"','"+photo+"','"+question+"','"+pass+"','"+date.toLocaleString()+"')";
int temp=con.executeUpdate(sql);
%>
<script language="javascript">
alert("注册成功");
window.location.href=("../index.jsp");
</script>
<%
}con.close();
%>
</body>
</html>
立即提交
temp你没有判断啊,不管是否插入成功,
注册成功的话总是会弹出的,而且SQL语句不应该
写在JSP页面上,这样不利于代码的维护和扩展.
String sql="insert into tb_User(Username,Rname,Userpass,Email,Address,Photo,Question,Result,Dattime) values ('"+username+"','"+Rname+"','"+password+"','"+email+"','"+address+"','"+photo+"','"+question+"','"+pass+"','"+date.toLocaleString()+"')";
System.out.println(sql);
把sql语句打印出来就可以啦。
然后在自己调试。