程序总进入失败的页面,我的MYSQL数据库名是student 表是information
<%@ page contentType="text/html;charset=gb2312"%>
<%-- 导入java.sql包,表示要使用数据库操作 --%>
<%@ page import="java.sql.*"%>
<html>
<head>
<title>登陆</title>
</head>
<body>
<center>
<h1>用户登录</h1>
<hr>
<br>
<br>
<%
// 接收请求的内容
String name = request.getParameter("uname") ;
String password = request.getParameter("upassword") ; // 定义变量,如果用户是合法用户,则将此标记变为true
boolean flag = false ;
%>
<%
// 定义数据库操作的常量、对象
// 数据库驱动程序
final String DBDRIVER = "com.mysql.jdbc.Driver" ;
// 数据库连接地址
final String DBURL = "jdbc:mysql://localhost:3306/student" ;
// 数据库用户名
final String DBUSER = "root" ;
// 数据库连接密码
final String DBPASSWORD = "123456" ;
// 声明一个数据库连接对象
Connection conn = null ;
// 声明一个数据库操作对象
PreparedStatement pstmt = null ;
// 声明一个结果集对象
ResultSet rs = null ;
// 声明一个SQL变量,用于保存SQL语句
String sql = null ;
%>
<%
// 进行数据库操作
try
{
// 编写SQL语句
sql = "SELECT id FROM person WHERE name=? and password=?" ;
// 加载驱动程序
Class.forName(DBDRIVER) ;
// 连接数据库
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
// 实例化数据库操作对象
pstmt = conn.prepareStatement(sql) ;
// 设置pstmt的内容
pstmt.setString(1,name) ;
pstmt.setString(2,password) ;
// 查询记录
rs = pstmt.executeQuery() ;
// 判断是否有记录
if(rs.next())
{
// 如果有记录,则执行此段代码
// 用户是合法的,可以登陆
flag = true ;
}
// 依次关闭
rs.close() ;
pstmt.close() ;
conn.close() ;
}
catch(Exception e)
{}
%>
<%
// 判断用户名及密码
if(flag)
{
// 合法用户
%>
<jsp:forward page="login_success.jsp"/>
<%
}
else
{
// 非法用户
%>
<jsp:forward page="login_failure.jsp"/>
<%
}
%>
</center>
</body>
</html>
问题补充:// 数据库连接地址
final String DBURL = "jdbc:mysql://localhost:3306/information" ;
这里我改啦
但我输入正确的用户名和密码,还是跳转到login_failure.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<%-- 导入java.sql包,表示要使用数据库操作 --%>
<%@ page import="java.sql.*"%>
<html>
<head>
<title>登陆</title>
</head>
<body>
<center>
<h1>用户登录</h1>
<hr>
<br>
<br>
<%
// 接收请求的内容
String name = request.getParameter("uname") ;
String password = request.getParameter("upassword") ; // 定义变量,如果用户是合法用户,则将此标记变为true
boolean flag = false ;
%>
<%
// 定义数据库操作的常量、对象
// 数据库驱动程序
final String DBDRIVER = "com.mysql.jdbc.Driver" ;
// 数据库连接地址
final String DBURL = "jdbc:mysql://localhost:3306/student" ;
// 数据库用户名
final String DBUSER = "root" ;
// 数据库连接密码
final String DBPASSWORD = "123456" ;
// 声明一个数据库连接对象
Connection conn = null ;
// 声明一个数据库操作对象
PreparedStatement pstmt = null ;
// 声明一个结果集对象
ResultSet rs = null ;
// 声明一个SQL变量,用于保存SQL语句
String sql = null ;
%>
<%
// 进行数据库操作
try
{
// 编写SQL语句
sql = "SELECT id FROM person WHERE name=? and password=?" ;
// 加载驱动程序
Class.forName(DBDRIVER) ;
// 连接数据库
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
// 实例化数据库操作对象
pstmt = conn.prepareStatement(sql) ;
// 设置pstmt的内容
pstmt.setString(1,name) ;
pstmt.setString(2,password) ;
// 查询记录
rs = pstmt.executeQuery() ;
// 判断是否有记录
if(rs.next())
{
// 如果有记录,则执行此段代码
// 用户是合法的,可以登陆
flag = true ;
}
// 依次关闭
rs.close() ;
pstmt.close() ;
conn.close() ;
}
catch(Exception e)
{}
%>
<%
// 判断用户名及密码
if(flag)
{
// 合法用户
%>
<jsp:forward page="login_success.jsp"/>
<%
}
else
{
// 非法用户
%>
<jsp:forward page="login_failure.jsp"/>
<%
}
%>
</center>
</body>
</html>
问题补充:// 数据库连接地址
final String DBURL = "jdbc:mysql://localhost:3306/information" ;
这里我改啦
但我输入正确的用户名和密码,还是跳转到login_failure.jsp
解决方案 »
- 谁帮忙给个代码
- 请高手帮忙看看,快没信心了
- 文件域的问题
- request.getRemoteAddr()是通过什么原理得到客户端IP的啊?
- JAVA POI 读日期类型时实际读到number类型数字,如何得到原来的显示的日期呢
- 一个很奇怪的问题,jsp+linnux(ubantu)
- jsp:include 为什么会换行?~~帮忙呀~~顶者有分~
- 网络斗地主游戏源代码,谁会写游戏,啊,老爸让做个给他们耍,不会太少皮啊
- 菜鸟又来送分了,菜鸟做了一个输入用户名和密码的html页和严证用户名和密码的jsp页,可是用户不用登陆直接输入http://d2:8080/main.htm,
- struts2上传下载 急!急!!急!!!
- 项目路径问题。
- 二维码链接的问题~
看看是不是没有加上 myslq 的jar包?if(rs.next())// 把 if 改成while 试试。
{
// 如果有记录,则执行此段代码
// 用户是合法的,可以登陆
flag = true ;
}
pstmt.setString(2,password)
这里改下看看
是不是数组型
这种数据库估计还不存在
这句错啦,应该是sql = "SELECT id FROM information WHERE name=? and password=?" ;
改了之后还不可以!!还是跳到login_failure.jsp
那么你的sql语句就应该从information表里面去查。
这句错啦,应该是sql = "SELECT id FROM information WHERE name=? and password=?" ;
改了之后还不可以!!还是跳到login_failure.jsp
String name = request.getParameter("uname") ;
String password = request.getParameter("upassword") ;
System.out.println("name:"+name+"--password:"+password+"--看一下传过来的数值与存放在数据库表里面是否一致");把你的name,password后台打印出来看看,然后在你的通过sql语句执行一下看看是否能取到数据。
显示:
class file editor
source not found
the source attachement does not contain the source for the file preparedstatement.class
you can change the source attachment by clicking change attached source below
改成
catch(Exception e){
e.printStackTrace(out);
}
页面一运行 只要访问数据库就调试状态了(确认没断点)
并且是喊调试PreparedStatement.class如果不理会点击继续运行 也还是可以执行页面 但解析速度很慢