<%@page contentType="text/html" pageEncoding="UTF-8" %>
<%@page import="java.sql.*"%>
<html>
<head>
</head>
<body>
<h1>登陆操作</h1>
<hr>
<%!//定义若干个数据库连接常量
String DBDRIVER = "com.mysql.jdbc.Driver";
String DBURL = "jdbc:mysql://127.0.0.1:3306/login";
String DBUSER = "root";
String DBPASS = "111111";
boolean flag = false;
String name = null;
String pwd=null;
%>
<%
Connection conn = null; //数据库连接
PreparedStatement pstmt = null; //数据库预处理操作
ResultSet rs = null; //查询要处理结果集
%>
<%
try{
%>
<%
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
String sql = "select name from userinformation where username = ? and password = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,request.getParameter("username"));
pstmt.setString(2,request.getParameter("password"));
rs = pstmt.executeQuery();
if(rs.next()){
flag = true;
name = rs.getString(1);
pwd = rs.getString(2);
}
System.out.println("asd");
%>
<%
}catch(Exception e){
e.printStackTrace();
}
try{
rs.close();
pstmt.close();
conn.close();
}catch(Exception e){
e.printStackTrace();
}
%>
<%
if(flag == true){
%>
<jsp:forward page="login_success.jsp">
<jsp:param name="uname" value="<%=name %>" />
</jsp:forward>
<%
}else{
%>
<jsp:forward page="login_failure.jsp"/>
<%
}
%>
</body>
</html>
下面的是HTML的代码:
<%@ 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>
<h1>登陆操作</h1>
<hr>
<form action="login.jsp" method="post">
<table border="1">
<tr>
<td colspan="2">用户登陆</td>
</tr>
<tr>
<td>用户名:</td>
<td><input type="text" name="username">
</td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="password">
</td>
</tr>
<tr>
<td colspan="2"><input type="submit" value = "登陆">
<td colspan="2"><input type="reset" value = "重置">
</td>
</tr>
</table>
</form>
</body>
</html>
即使是存在的用户名和密码,仍然会跳转到登录失败的界面,不知怎么回事,求高手指教。数据库的字段名是username和password。
<%@page import="java.sql.*"%>
<html>
<head>
</head>
<body>
<h1>登陆操作</h1>
<hr>
<%!//定义若干个数据库连接常量
String DBDRIVER = "com.mysql.jdbc.Driver";
String DBURL = "jdbc:mysql://127.0.0.1:3306/login";
String DBUSER = "root";
String DBPASS = "111111";
boolean flag = false;
String name = null;
String pwd=null;
%>
<%
Connection conn = null; //数据库连接
PreparedStatement pstmt = null; //数据库预处理操作
ResultSet rs = null; //查询要处理结果集
%>
<%
try{
%>
<%
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS);
String sql = "select name from userinformation where username = ? and password = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,request.getParameter("username"));
pstmt.setString(2,request.getParameter("password"));
rs = pstmt.executeQuery();
if(rs.next()){
flag = true;
name = rs.getString(1);
pwd = rs.getString(2);
}
System.out.println("asd");
%>
<%
}catch(Exception e){
e.printStackTrace();
}
try{
rs.close();
pstmt.close();
conn.close();
}catch(Exception e){
e.printStackTrace();
}
%>
<%
if(flag == true){
%>
<jsp:forward page="login_success.jsp">
<jsp:param name="uname" value="<%=name %>" />
</jsp:forward>
<%
}else{
%>
<jsp:forward page="login_failure.jsp"/>
<%
}
%>
</body>
</html>
下面的是HTML的代码:
<%@ 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>
<h1>登陆操作</h1>
<hr>
<form action="login.jsp" method="post">
<table border="1">
<tr>
<td colspan="2">用户登陆</td>
</tr>
<tr>
<td>用户名:</td>
<td><input type="text" name="username">
</td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="password">
</td>
</tr>
<tr>
<td colspan="2"><input type="submit" value = "登陆">
<td colspan="2"><input type="reset" value = "重置">
</td>
</tr>
</table>
</form>
</body>
</html>
即使是存在的用户名和密码,仍然会跳转到登录失败的界面,不知怎么回事,求高手指教。数据库的字段名是username和password。
解决方案 »
- jsp往数据库中插入数据,数据库中的字段写不全,插入数据不成功
- 关于select标签问题
- 大家帮忙看看这个是哪里的问题?operation not allowed after resultset closed
- 符合什么样的标准才算是优秀的程序呢-------------请高手指点...
- jsp中有一个<%! ……%>这样的一个函数调用,我如何在此过程中调用我自己写的包文件my.class文件
- 关于里聊天室刷新和发出邀请的问题
- 求助:由于网络原因使得本地浏览器不能正常与WebServer交互httpSession中的值!
- javascript函数中获得数据值如何传递给jsp的变量
- jsp分页显示记录的问题!困扰我三天的问题!!【用了三种方法,结果都是空指针!why??】急用!!明天结贴,请各位帮帮忙!!谢谢!!!
- centos中将tomcat关闭(shutdown)后发现内存并非释放
- 使用GooUploader上传文件问题我用的是ssh2
- aptana除了IE,怎么增加别的浏览器
打印username 和 password
在数据库中执行sql
"select name from userinformation where username = ? and password = ?";上面有指出 “编码问题”...
String sql = "select name from userinformation where username = ? and password = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, request.getParameter("username"));
pstmt.setString(2, request.getParameter("password"));
rs = pstmt.executeQuery();
if (rs.next()) {
flag = true;
name = rs.getString(1);
pwd = rs.getString(2);
}你sql就要一个name,rs.getString又想要两个值,还列名有问题String sql = "select username,password from userinformation where username = ? and password = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, request.getParameter("username"));
pstmt.setString(2, request.getParameter("password"));
rs = pstmt.executeQuery();
if (rs.next()) {
flag = true;
name = rs.getString("username");
pwd = rs.getString("password");
}