论坛首页 入门讨论版 Java

是个关于jsp登录页面的问题。

浏览 515 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2007-11-21 关键字: 帮忙看一下,哪里的问题
jsp页面:

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%@ page import="com.tax.util.Login,java.sql.*,com.tax.dao.*" %>
 <%		
 		Login login=new Login();
    	String msg = "";
		if(request.getParameter("userName")!=null && !request.getParameter("userpwd").equals("")){
			String username =request.getParameter("username");
			String passwd = request.getParameter("userpwd");
			boolean flag=login.checkUser(username,passwd); 
		    if(flag==true){
			String sql="select UID from N_user_info where N_username="+username;
			ResultSet rs=new DBOperate().query(sql);
			String uid=rs.getString("UID");
			session.setAttribute("username",username);
			session.setAttribute("uid",uid);
			response.sendRedirect("success.jsp");		
		    }else
		    {
			msg="用户名或密码错误!";
			//session.setAttribute("msg",msg);
			response.sendRedirect("login.jsp");
		    }
		}
%>
 <% 
 	//msg=(String)session.getAttribute("msg");
 	if (msg!=null)
 	{
	out.println(msg);
	}
%> 
<html>
  <head>
    <title>登录页面</title>
  </head>
  <script language="javascript">
  function checkform() {
	if (document.form1.userName.value=="" || document.form1.userpwd.value==""){
		alert("用户名或密码为空!");
		return false;
	}
	return true;

  }
</script>
  <body>
	<form action="login.jsp" method="post" >
  <p>用户姓名:<input type="text" maxlength="20" size="20" name="username"></p>
  <p>用户密码:<input type="password" maxlength="20" size="20" name="userpwd"></p>
  <p>&nbsp;<input type="submit" value="登录" onclick=" javascript:return(checkform());" >
  <a href="regist.jsp">注册</a>
  <a href="#">忘记密码?</a>&nbsp; 
  </p></form>
  </body>
</html>




数据操作:

package com.tax.util;

import java.sql.ResultSet;
import java.sql.SQLException;

import com.tax.dao.DBOperate;
import com.tax.dao.User;

public class Login {
private ResultSet rs;
DBOperate dbo=new DBOperate();
User user=new User();
public Login(){
}
//用于用户登录的的方法
public boolean checkUser(String username,String userpass) {
boolean flag = false;
String sql = "select N_username,N_userpwd from N_user_info where N_username='"+username+"' and N_userpwd='"+userpass+"'";
try {
rs=dbo.query(sql);
if(rs.next()){
flag = true;
}
} catch (SQLException e) {
e.printStackTrace();
}
dbo.close();
return flag;

}

}


package com.tax.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DBOperate {
private Connection conn=null;
private PreparedStatement ps=null;;
private ResultSet rs=null;

String time = new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime());
public DBOperate() {
DB db=new DB();
conn=db.getConnection();
System.out.println("conn连接成功");
}
//数据查询操作的方法
public ResultSet query(String sql){
try {
ps=conn.prepareStatement(sql);
System.out.println("stmt连接成功");
rs=ps.executeQuery(sql);
System.out.println("rs数值查出");
while(rs.next()){
System.out.println(rs.getString("N_username"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
//扶着插入到N_user_info表的方法
public void insert(User user) {
String sql="insert into N_user_info(UID,N_username,N_userpwd,N_usersex,N_usermail,N_user_flag,N_user_reg_time,N_useraddIP) values('"+uidCode()+"','"+user.getN_username()+"','"+user.getN_userpwd()+"','"+user.getN_usersex()+"','"+user.getN_email()+"',"+user.getN_userflag()+",'"+time+"','"+user.getN_useraddIP()+"')";
try {
ps=conn.prepareStatement(sql);
System.out.println("stmt连接成功");
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(ps!= null) {
ps.close();
}
if(conn != null&&conn.isClosed()) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}

//随机获得16位以下的不重复的UID
public String uidCode(){
Date date=new Date();
   String str="qwertyuiopasdfghjklzxcvbnm";
     String substr="";
     String str1="";
     int len=2;
   for(int i=0;i<len;i++)
{
int randno=(int)(Math.random()*25);
     substr+=str.substring(randno,randno+1);
}
   str1=""+date.getYear()+substr+date.getMonth()+date.getDay()+substr+date.getHours()+date.getMinutes()+date.getSeconds();
return str1;
}
/**
* 关闭使用资源
*
*/
public void close() {
try {
if(rs!=null) {
rs.close();
}
if(ps!= null) {
ps.close();
}
if(conn != null&&conn.isClosed()) {
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

我采用的是连接池连接的。
   
最后更新时间:2007-11-21
我输入的是正确的用户名和密码

但是它没有执行到数据库中,总是说输入的数据为空
   
0 请登录后投票
最后更新时间:2007-11-21
汗。。。。。。。
DBOperate能用么?
 String sql="select UID from N_user_info where N_username="+username;
 
这句话有错


PS:说句题外话,现在的培训后都是这样子的么?
   
0 请登录后投票
最后更新时间:2007-11-21
还是不行啊

呵呵,jsp存页面的传值有些迷糊啊

不过要用jsp+servlet+javabean就很熟练了
   
0 请登录后投票
最后更新时间:2007-11-21
修改了哪些内容?修改后怎么样不行了?错误信息是什么?
   
0 请登录后投票
最后更新时间:2007-11-21
movingboy 写道
修改了哪些内容?修改后怎么样不行了?错误信息是什么?




不管输入什么都是提示,输入的用户名和密码不正确

还没有异常,我调试看过,传不进去值,
   
0 请登录后投票
最后更新时间:2007-11-21
movingboy 写道
修改了哪些内容?修改后怎么样不行了?错误信息是什么?




不管输入什么都是提示,输入的用户名和密码不正确

还没有异常,我调试看过,传不进去值,
   
0 请登录后投票
最后更新时间:2007-11-21
那只能说是程序有了智能了。你慢慢陪它玩吧,我就闪了~~~
   
0 请登录后投票
最后更新时间:2008-07-15
String sql="select UID from N_user_info where N_username="+username; 
  你是不是写错sql语句啊, String sql = "select UID from N_user_info where N_username = '"+username+"'";
   
0 请登录后投票
论坛首页 入门讨论版 Java

跳转论坛:
JavaEye推荐