首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

一个JAVA WEB 登陆验证的有关问题

2012-03-30 
请教大家一个JAVA WEB 登陆验证的问题!请教大家一个登陆验证的问题:前台把参数传递给SERVLET,SERVLET把直

请教大家一个JAVA WEB 登陆验证的问题!
请教大家一个登陆验证的问题:
            前台把参数传递给SERVLET,SERVLET把直给验证登陆的JAVABEAN
        这个BEAN   怎么编写   数据库连接我已经连上了   就是怎么从数据库把用户的资料
区出来   和前台传递的直进行判断?

以下是我写的部分代码   希望大家帮我看看:

        package   bookitem;

import   java.sql.*;

//继承父类,获得数据库连接
public   class   UserDAOBean   extends   DAO{
        //用户验证
        public   boolean   CheckUser(String   user,   String   password)   {
                try   {
                            String   compare_user   =   null;
                            String   compare_password   =   null;
                            pstmt   =   conn.prepareStatement(
                                        "select   *   from   myDB   where   user=?   and   password=? ");
                            pstmt.setString(1,   user);
                            pstmt.setString(2,   password);
                            rs   =   pstmt.executeQuery();
                            while   (rs.next())   {
                                compare_user   =(String)rs.next(1);         在这里我就不会写了
                                compare_password=rs.getString();           JBuilder显示错误
                                closeRs();
                                pstmt.close();
                            }
                            if(compare_user==user   &&   compare_password==password){
                                    return   true;
                            }
                            else{
                                    return   false;
                            }
                }   catch   (SQLException   ex)   {
                        ex.printStackTrace();


                        return   false;
                }
        }
}



[解决办法]
声明一个boolean值,初始值为false
while (rs.next()) {
boolean为真,
// compare_user =(String)rs.next(1); 在这里我就不会写了
//compare_password=rs.getString(); JBuilder显示错误
//closeRs();
pstmt.close();
}

[解决办法]
select count(*) as bb...
rs.next(){
得到bb的值,如果不是0那就是有数据
}
[解决办法]
public class UserDAOBean extends DAO{
//用户验证
public boolean CheckUser(String user, String password) {
boolean bool=false;
String error= " ";
try {
pstmt = conn.prepareStatement(
"select * from myDB where user=? and password=? ");
pstmt.setString(1, user);
pstmt.setString(2, password);
rs = pstmt.executeQuery();
if (rs.next()) {
bool=true;
pstmt.close();
}
return bool;
} catch (SQLException ex) {
error=ex.getMessage();
throw new Exception(error);
return false;
}
}
}
这样写就可以了,没必要写那么多^_^
[解决办法]
//继承父类,获得数据库连接
public class UserDAOBean extends DAO{
//用户验证
public boolean CheckUser(String user, String password) {
try {
String compare_user = null;
String compare_password = null;
pstmt = conn.prepareStatement(
"select * from myDB where user=? and password=? ");
pstmt.setString(1, user);
pstmt.setString(2, password);
rs = pstmt.executeQuery();
while (rs.next()) {
compare_user =(String)rs.next(1);
compare_password=rs.getString();
/*不要在这里关闭ResultSet,PreStatement,Connection类的对象
关闭的话应该在catch后边的finally{
if }
closeRs();
pstmt.close();*/
}
if(compare_user==user && compare_password==password){
return true;
}
else{
return false;
}
} catch (SQLException ex) {
ex.printStackTrace();
return false;
}
}
}

[解决办法]
public class UserDAOBean extends DAO{

private Connection conn;
private PreparedStatement pstmt;
private ResultSet rs;


private void connection(){
try{
Class.forName( "diriver_class ");
}catch(ClassNotFoundException msg){
//处理
}

try{
this.conn = DriverManager.getConnection( "url ", "用户名 ", "密码 ");
}catch(ClassNotFoundException msg){
//处理
}
}


//用户验证
public boolean CheckUser(String user, String password) {

this.connection();

try {
String compare_user = null;
String compare_password = null;
pstmt = conn.prepareStatement(
"select * from myDB where user=? and password=? ");
pstmt.setString(1, user);
pstmt.setString(2, password);
rs = pstmt.executeQuery();
while (rs.next()) {
compare_user = rs.getString(1);
compare_password = rs.getString(2);
}
if(compare_user.equalsIgnoreCase(user) && compare_password.equalsIgnoreCase(password)){
return true;
}else{
return false;
}
} catch (SQLException ex) {
ex.printStackTrace();
return false;
}finally{
//return 也会执行
if(rs != null){
rs.close();
}
if(pstmt != null){
pstmt.close();
}if(conn != null){
conn.close();
}
}
}
}
[解决办法]
compare_user =rs.getString(user); //在这里我就不会写了
compare_password=rs.getString(password); //JBuilder显示错误

这样可行?
这样可行?
这样可行?
[解决办法]
ATGrid报表控件/WEB插件,支持asp .net jsp java php

ATGrid报表控件/WEB插件[专业版],对EtCell进行了进行了全面的改革,将会彻彻底底的解决你的报表问题,让你开发达到从未有过的轻松和喜悦......
是专业的报表工具,提供了丰富的报表分析方法,具有可视化的报表设计器WinTable,更好的支持WEB报表打印,连续打印、报表套打,对aspx.net、asp、Java报表、jsp、pphp提供了专门的类库,方便WEB报表开发人员进行快速开发.
网址:http://www.etcell.com/
下载地址:http://www.etcell.com/download.asp?ID=51
支持的报表功能如下:
1、支持主从报表
2、交叉报表
3、支持分组报表:小计、汇总自由设置
4、支持的套打报表,让套打简单灵活
5、支持分组报表的每组打印控制
6、支持连续打印,解决了票据打印的难题
7、支持自定义报表
8、支持MIS开发的各种开发工具:如VC、VB、Delphi、C Bulider、InterDev
9、支持WEB开发,FrontPage、InterDev、ASP.NEt、C#
10、EtCell内置支持VBScript脚本包括事件
11、在WEB上支持VBScript、JavaScript脚本
12、支持URL连接
13、支持的WEB服务器:NT的WEB服务器、Linux、Unix、WebLogic、TOMCAT、IIS;
14、在MIS开发中直接支持数据库,让程序开发更方便快捷
15、WEB插件和浏览器紧密融合,完全成为浏览器的一个分子!
16、一个页面安放多个ATGrid报表插件,再也不会出现其他控件的闪烁变动的效果!
17、完全支持XML,后台程序可以通过XML控制报表的每一部分!
18、让WEB开发变的更加简单,在WEB页[html]可以不用写一行代码.......
19、报表的单元格类型多大几十种,如:Text,Num,Button,Radio,CheckBox,Combox.....
20、不但实现报表展示功能,更重要突破了报表在线编辑功能........
21、和后端服务器程序的交互更加简单...............
22、可以把多个ATGrid控件的数据打印到一起,在也不用担心页眉和页脚问题......
功能多多,肯定会让你满意,不必再为选择报表控件发愁!!!


[解决办法]
都可以
[解决办法]
楼上说的基本上都对.用next()判断就可以了.finally里面关闭rs等就可以了
[解决办法]
compare_user =(String)rs.next(1); 在这里我就不会写了
compare_password=rs.getString(); JBuilder显示错误

改为
compare_user =rs.getString( "字段名 ");
compare_password=rs.getString( "字段名 ");

[解决办法]

try{

```
````
while(rs.next()){
user_name=rs.getString( "user ");
user_password=rs.getString( "password ");

下面判断user_name和user_password是否与传递过来的参数相同
不写了 上面都有
}
}catch(Exception e){
rs.close();
}


[解决办法]
compare_user =rs.getString(user);
compare_password=rs.getString(password);
取到后用.euqls进行比较
==是比较的地址的 值

热点排行