ResultSet rs=stm.executeQuery(sql)
if(rs.next())
{ 提示通过,打开新窗口 }
else
{ 提示错误! }
jt1是密码框 JPassword jt1=new JPassword(). jt2是JTextField.
首先你不能说a>0 就认为他登录成功了,因为首先,你查询出来的ResultSet里面的1应该是密码,但是密码应该是varchar2类型的,看得出来你应该用的是oracle,所以你程序里面应该写getString(1)的。然后你还要判断,查出来的密码跟他输入的密码是否一致,如果一致,才能算作登录成功。另外,如果你是初学,我劝你还是不要学这种jsp里面写java代码的方式了,我不知道是谁教你的,总之,这种方法,你不懂比懂要好,哪怕用最基础的servlet也比这样强。我就接触过一个2期的项目,他的一期开发的时候就是用的这种jsp里面写java代码方式写的,真的,后期维护起来,简直累死人了,根本就是乱糟糟一团。如何在JSP页面输入用户名,点击提交按钮显示数据库里的用户名和密码。判断输入的用户名是否存在。登陆界面的<input>标签中没有name属性你怎么可能获得到登陆界面的密码,下面有两种,应该有你要的。<html>
<head>
<title>用户注册</title>
<script type="text/javascript" language="javascript">
function check()
{
with(document.all){
if(password1.value!=password2.value)
{
alert("您的密码不一致,请重新输入!")
password1.value = ""
password2.value = ""
}
else document.forms[0].submit()
}
}
</script>
</head>
<body>
<center>
<form action="addUserServlet" method="post" name="myform">
<h2>用户注册</h2>
<br>
用户名:<input type="text" name="newuser">
<br>
原密码:<input type="password" name="password1">
<br>
新密码:<input type="password" name="password2">
<br>
<input type="button" value="提交" onclick="check()">
<input type="reset" value="重置">
</form>
</center>
</body>
</html>
上面就是用script来比较,如果不相同,就会d出一个窗口显示密码不一样然后清空密码框,如果两个密码相同就跳转acction地址。
上面是注册时候用的。
如果本身就有用户名和密码而你想要获取数据库里面的密码的话你还需要一个servlet以及一个数据库连接类。下面应该是你要的东西,获取数据库里面的密码和用户名并且与输入的进行比较:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String userName=request.getParameter("username")//取得用户名
String password=request.getParameter("password")//取得密码
DBTest db=new DBTest()
boolean canLogin=db.loginSuccess(userName, password)
if (canLogin) {
System.out.println("登陆成功")
}else{
System.out.println("用户名或密码错误")
}
}
数据库连接类:
import java.sql.Connection
import java.sql.DriverManager
import java.sql.ResultSet
import java.sql.SQLException
import com.mysql.jdbc.Statement
public class DBTest {
boolean bInited = false
//加载驱动
public void initJdBC() throws ClassNotFoundException{
//加载MYSQL JDBC驱动程序
Class.forName("com.mysql.jdbc.Driver")
bInited = true
System.out.println("Success loading Mysql Driver!")
}
public Connection getConnection() throws ClassNotFoundException,SQLException{
if (!bInited) {
initJdBC()
}
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "数据库用户名", "连接数据库的密码")
return conn
}
public boolean loginSuccess(String userName,String password){
boolean returnValue = false
String sql = "select * from user"
Connection conn=null
java.sql.Statement stmt=null
ResultSet rs=null
try {
conn=getConnection()
stmt = conn.createStatement()
rs=stmt.executeQuery(sql)
while (rs.next()) {
String userNameInDB=rs.getString("name")
String passwordInDB=rs.getString("pwd")
if (userNameInDB.equals(userName)&&passwordInDB.equals(password)) {
returnValue=true
break
}
}
} catch (ClassNotFoundException e) {
// TODO: handle exception
e.printStackTrace()
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace()
}
return returnValue
}
}
上面没有做中文处理,中文用户名应该会错误,你自己做吧
原创的,你试试
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)