jsp登录页面密码equals验证出现问题解决办法
从数据库中取出的密码或者用户名后会带有一串的空格
所以equals比较时会显示错误
使用trim()函数去除空格就可以了
运行成功代码如下:
login.jsp
<%@ page import="java.sql.*" language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>登录界面</title>
</head>
<body>
<center>
<h1 style="color:red">登录</h1>
<form id="indexform" name="indexForm" action="logincheck.jsp" method="post">
<table border="0">
<tr>
<td>账号:</td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="password">
</td>
</tr>
</table>
<br>
<input type="submit" value="登录" style="color:#BC8F8F">
</form>
</center>
</body>
</html>
logincheck.jsp
<%@page import="Bean.DBBean"%>
<%@ page import="java.sql.*" language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<jsp:useBean id="db" class="Bean.DBBean" scope="page"/>
<%
request.setCharacterEncoding("UTF-8");
String username=(String)request.getParameter("username");
String password=(String)request.getParameter("password");//取出login.jsp的值
//下面是数据库操作 *代表所有值
db.getconn();
String sql="select * from lhT where username="+"'"+username+"';";//定义一个查询语句
ResultSet rs=db.executeQuery(sql);//运行上面的语句
if(rs.next())
{
/* if(password.equals(rs.getString(2)))
{
} */
Boolean c= db.com(password,rs.getString("password"));
if(c){
response.sendRedirect("loginsuccess.jsp");
}
else{
out.print("<script language='javaScript'> alert('密码错误');</script>");
response.setHeader("refresh", "0;url=login.jsp");
}
}
else
{
out.print("<script language='javaScript'> alert('请输入用户名——else');</script>");
response.setHeader("refresh", "0;url=login.jsp");
}
%>
</body>
</html>
loginsussess.jsp
<%@ page import="java.sql.*" language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1>登录成功 </h1>
</body>
</html>
DBBean.java
package Bean;
import java.sql.*;
public class DBBean {
private String driverStr = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
private String connStr = "jdbc:sqlserver://localhost:1433; DatabaseName=lhsjk";
private String dbusername = "sa";
private String dbpassword = "123456";
private Connection conn = null;
private Statement stmt = null;
public DBBean() {}
public boolean com(String a,String b)
{
a=a.trim();
b=b.replaceAll("\s*", "");
System.out.println(a);
System.out.println(b);
if(a.equals(b))
{
return true;
}
else
return false;
}
public void getconn()
{
try
{
Class.forName(driverStr);
conn = DriverManager.getConnection(connStr, dbusername, dbpassword);
stmt = conn.createStatement();
}
catch (Exception ex) {
System.out.println(ex.getMessage());
System.out.println("数据连接失败!");
}
}
public int executeUpdate(String s) {
int result = 0;
System.out.println("--更新语句:"+s+"");
try {
result = stmt.executeUpdate(s);
} catch (Exception ex) {
System.out.println("执行更新错误!");
}
return result;
}
public ResultSet executeQuery(String s) {
ResultSet rs = null;
System.out.print("--查询语句:"+s+"");
try {
rs = stmt.executeQuery(s);
} catch (Exception ex) {
System.out.println("ִ执行查询错误!");
}
return rs;
}
public void execQuery(String s){
try {
stmt.executeUpdate(s);
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println("执行插入错误!");
}
}
public void close() {
try {
stmt.close();
conn.close();
} catch (Exception e) {
}
}
}
文件结构目录:
---------------------
作者:冰咖啡ol
原文:https://blog.csdn.net/lyd20180717/article/details/85529831
版权声明:本文为博主原创文章,转载请附上博文链接!