代码不多 所以我就全部贴出来了,望大家能看出我的错误,指点指点小弟。调试下也可以
这是HTML的小段儿代码 login.jsp<%@ page 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 bgcolor="pink">
<center>
<h4 align="center">用户登录界面</h4>
<hr>
<form action="loginCL.jsp" method="post">
<tr>
<td> 姓 名:</td>
<td><input name="username" type="text" size="10"><br>
</td>
</tr>
<tr>
<td> 密 码:</td>
<td><input name="password" type="password" size="12"><br>
</td>
</tr>
<tr>
<td><input name="submit" type="submit" value="登录">
</td>
<td><input name="reset" type="reset" value="重置"><br>
</td>
</tr>
</center>
</form>
</body>
</html> 这是逻辑处理的代码 loginCL.jsp,主要是这段,估计错误就在此<%@ page language="java" import="java.sql.*,java.util.*;"
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>
[code=Java]
<%
try {
//接受用户名和密码
String name = request.getParameter("username");
String passw = request.getParameter("password");
//到数据库去验证
//1.加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//2.得到连接
Connection ct = DriverManager.getConnection(
"jdbc:sqlserver://localhost:1433;DatabaseName=MYDB",
"sa", "630923");
//3.创建Statement Statement st = ct.createStatement();
//4.查询数据库
ResultSet rs = st
.executeQuery("select password from ClassMates where Name='"
+ name + "'");
//根据结果判断
if (rs.next()) {
//说明用户存在
if (rs.getString(1).equals(passw)) {
//合法,就跳转到成功页面
response.sendRedirect("welcome.jsp?user="+name);
} else {
//不合法,就跳转回登录页面
response.sendRedirect("login.jsp?error=1");
}
} else {
response.sendRedirect("login.jsp?error=2");
}
} catch (Exception e) {
e.printStackTrace();
}
%></body>
</html>
[/code]成功也面也就没必要贴出来了 就是一个简单的成功页面 几个字 文件名是welcome.jsp当我提交按钮时 在URL地址栏总是http://localhost:8080/LoginSystem/login.jsp?error=2 或者就是error=1
这是HTML的小段儿代码 login.jsp<%@ page 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 bgcolor="pink">
<center>
<h4 align="center">用户登录界面</h4>
<hr>
<form action="loginCL.jsp" method="post">
<tr>
<td> 姓 名:</td>
<td><input name="username" type="text" size="10"><br>
</td>
</tr>
<tr>
<td> 密 码:</td>
<td><input name="password" type="password" size="12"><br>
</td>
</tr>
<tr>
<td><input name="submit" type="submit" value="登录">
</td>
<td><input name="reset" type="reset" value="重置"><br>
</td>
</tr>
</center>
</form>
</body>
</html> 这是逻辑处理的代码 loginCL.jsp,主要是这段,估计错误就在此<%@ page language="java" import="java.sql.*,java.util.*;"
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>
[code=Java]
<%
try {
//接受用户名和密码
String name = request.getParameter("username");
String passw = request.getParameter("password");
//到数据库去验证
//1.加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//2.得到连接
Connection ct = DriverManager.getConnection(
"jdbc:sqlserver://localhost:1433;DatabaseName=MYDB",
"sa", "630923");
//3.创建Statement Statement st = ct.createStatement();
//4.查询数据库
ResultSet rs = st
.executeQuery("select password from ClassMates where Name='"
+ name + "'");
//根据结果判断
if (rs.next()) {
//说明用户存在
if (rs.getString(1).equals(passw)) {
//合法,就跳转到成功页面
response.sendRedirect("welcome.jsp?user="+name);
} else {
//不合法,就跳转回登录页面
response.sendRedirect("login.jsp?error=1");
}
} else {
response.sendRedirect("login.jsp?error=2");
}
} catch (Exception e) {
e.printStackTrace();
}
%></body>
</html>
[/code]成功也面也就没必要贴出来了 就是一个简单的成功页面 几个字 文件名是welcome.jsp当我提交按钮时 在URL地址栏总是http://localhost:8080/LoginSystem/login.jsp?error=2 或者就是error=1
解决方案 »
- 请教各位大牛Struts2的请求包装器如何实现?
- jsp 如何知道后台sevlet的进度并显示出来
- 请问在JBuilder 2006中怎样导入第三个的jar包啊,谢谢啊.
- JSP要实现一个序列号生成功能,但在生成的过程中,要是点击页面上的停止按钮,程序就能停止
- JSP与javaBean的问题,急~!
- 求救!!!!! 关于用java代码写的数据库连接池的使用问题,急!!!急!!!!!!!
- 关于新闻抓取的问题
- session问题
- 在虚拟目录下运行servlets程序web.xml怎样配置.
- 谁可以告诉我tomcat的web-inf里的web.xml如何配置,或者那里有具体的配置说明
- JS特殊字符后台转义了 前台JS接收如何恢复(Boss催~)
- Hibernate 自动生成的语句也会错?!
ID Name Sex Age Address Emal password
1 Jeelon 男 21 贵阳市 [email protected] jeelom
. . . . . . .
. . . . . . .
. . . . .
打印结果是:
jeelon
jeelon 两个相等 但还是跳不到成功页面去
打印结果:
jeelon
jeelon
我在加了一个语句 判断输入的和从数据库查询的是否相等
System.out.println(rs.getString(1).equals(passw));结果输出了false
if (rs.getString(1).equals(passw)) {
改成
if (rs.getString(1).trim().equals(passw.trim())) {
试试不行你就直接在if (rs.next()) {
System.out.println("#"+rs.getString(1)+"#"+passw+"#");//看看答应结果
//说明用户存在
if (rs.getString(1).equals(passw)) {
//合法,就跳转到成功页面
response.sendRedirect("welcome.jsp?user="+name);
} else {
System.out.println(rs.getString(1));
System.out.println(rs.getString("password"));
如代码,你直接试试rs.getString(1)和rs.getString("password")这两个值打印的结果是否一样?
建议:在获取结果集里面的值的时候不要采用getString(int)这个类型,而是采用rs.getString(columnName)
做数据库关联操作时 最好加上.trim() 略去其中的空格
数据库的读取出来时最容易后边带空格了纠正下5楼 在结果集的getString(int)方法中 索引是几 取得就是第几列的值 楼主没错