JSP登陆验证问题

来源:百度知道 编辑:UC知道 时间:2024/05/05 17:45:18
有两个页面,从登陆页获取两个参数,uname和password,然后在数据库里查询这两个值是否存在,如果存在就跳转到成功页面,不存在就跳转到登陆页!
登陆页就是一个表单,验证页的代码如下!
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ page import="org.util.DataBase" %>
<%@ page import="java.sql.*" %>
<%@ page contentType="text/html;charset=GBK" %>
<html>
<head> <title>check.jsp</title> </head>
<body>
<%boolean flag = false ;
try{
request.setCharacterEncoding("GBK");
String username = request.getParameter("uname");
String userpass = request.getParameter("password");
DataBase db = new DataBase();
String sql = "SELECT username,userpass FROM admin WHERE username ='"+username+"' and userpass='"+userpass+"' ";
ResultSet rs=db.executeQuery(sql

1、你的程序在方法public ResultSet executeQuery(String sql)中出现错误,抛出了异常,然而你用Exception捕获了该异常之后没有做任何处理,所以你不知道你的程序出了错误,由于出现该异常之后,你的成员变量rs就没有被赋值,因此在JSP页面中的if(rs.next())条件判断始终为false,最后跳转的页面就是你的登陆页面
2、你可以这样改一下,看抛出的SQLException异常信息是什么:
public ResultSet executeQuery(String sql){//执行sql查询
try{
conn = getConn();
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
}catch(Exception e){
e.printStackTrace----打印堆栈异常信息
}
return rs ;
}

你怎么JSP跳JSP啊

你跳到一个Servlet来进行处理数据啊

汗~~~持久层的代码居然放到Jsp页面执行,建议用javabean ,你这代码太乱了,乱透了,你先out.println("")一下,看看你的用户名和密码到底从数据库中取出来了没有,如果取出来了那就是你转发判断的问题,如果你连取都没有取出来,那就是你sql语句的问题了

要先检查一下有没有连上数据库再做检查