老师布置的作业,用jsp连接mysql数据库。我准备了3个文件,index。jsp用于从表单中获取数据(用户名和密码),JDBConnection.java是一个javabean。check。jsp用于检验用户输入的数据(先获取传递过来的用户名和密码,然后检索数据库,做比较,进行简单的判断)。操蛋的j2ee老师,你让我们这些没学java的人情何以堪啊。。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
代码:
index。jsp<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">  </head>
  
  <body>
   <form method="get" action="check.jsp">
    <table>  
    <tr><td>用户名:<input type="text" name="username" value=""></td></tr>
     <tr><td>密码:<input type="password" name="password" value=""></td></tr>
     <tr><td><input type="submit" value="提交" ></td>
     <td valign="top"><br></td><td valign="top"><br></td><td valign="top"><br></td><td valign="top"><br></td><td><input type="reset" value="取消" ></td></tr> 
    </table>
        </form>
  </body>
</html>
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
JDBConnection.java(在包yours下)的源码:
package yours;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class JDBConnection{ private final String dbDriver="com.mysql.jdbc.Driver";
private final String url="jdbc:mysql://localhost:3306/char1_2";
private final String userName="root";
private final String password="1991016";
private Connection con;
public JDBConnection()
{
try{
Class.forName(dbDriver).newInstance();

}catch (Exception e)
{
System.out.println("未能成功加载驱动!");
}
}
public boolean createConnection()
{
try{
con=DriverManager.getConnection(url,userName,password);
con.setAutoCommit(true);
}catch(SQLException e)
{
return false;
}
return true;
}
public ResultSet executeQuery(String sql)
{
ResultSet rs;
try
{
if(con==null)
createConnection();
Statement stmt =con.createStatement();
rs=stmt.executeQuery(sql);
}catch(Exception e)
{
return null;
}
return rs;
}
public void closeConnection()
{


if(con!=null)
{
try{
con.close();
}catch(SQLException e)
{

}
}

}
}+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'check.jsp' starting page</title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->  </head>
  
  <body>
<%@ page import="java.sql.*" %> 
<jsp:useBean id="mysql" scope="page" class="yours.JDBConnection"/>
<%
String username=new String(request.getParameter("username"));//接收传递过来的用户名
String password=new String(request.getParameter("password"));//接收传递过来的密码
String sql="select * from table1";
ResultSet rs=null;
mysql.createConnection();
rs=mysql.executeQuery(sql);
String usr1=null;//获取数据库中的用户名
String passwd1=null;//获取用户名中的密码
boolean flag=false;
while(rs.next()){
usr1=rs.getString("username");
passwd1=rs.getString("password");
if(usr1==username&&passwd1==password)
{
out.println("欢迎你,用户:"+usr1.toString());
flag=true;
break;//找到记录就跳出循环//
}
}
if(flag)
out.println("没找到你的用户名,"+username.toString()+"没有注册!");
rs.close();
mysql.closeConnection();
 %>
 
  </body>
</html>但是始终无法得到结果,他们说驱动有问题,想请大虾帮忙解惑

解决方案 »

  1.   

    我刚才试了一下, 
    mysql> show tables;
    Empty set (0.00 sec)
    这是mySQL数据库现实的东西,这是因为你现在数据库里没有数据,你现在这个cheak.jsp页面中的
    if(usr1==username&&passwd1==password)
    这一句话只是静态的实现判断用户名密码是否符合你所规定的,并没有添加大牌数据库里;
    楼主可以写一个增删改查页面,这个应该不是问题的;楼主参考一下
      

  2.   

    lz很威武啊,不会j2ee就用上maven了?高人的说
      

  3.   

    maven是什么东东。。没见过也。。真的
      

  4.   

    楼主,你的mysql数据库驱动lib包在哪儿?你确定你项目中有这个类么com.mysql.jdbc.Driver?木有的话,去oracle官网下了lib包,http://dev.mysql.com/downloads/connector/j/。然后在项目的build path里面把驱动包加进去。
      

  5.   

    谢谢提醒哈,不过我也加了这个文件了,我把它放在tomcat的lib文件夹下面了。。但是还是不行。。他们说系统配置有问题。我还得检查检查。。另外:那个j2ee是什么东东?老师太烦了,什么都叫我们学,什么都没学会就放弃,然后学另外的东西。操蛋
      

  6.   

    谢谢大家。。HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: java.lang.NullPointerException
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    root cause java.lang.NullPointerException
    org.apache.jsp.check_jsp._jspService(check_jsp.java:105)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    note The full stack trace of the root cause is available in the Apache Tomcat/6.0.13 logs.
    --------------------------------------------------------------------------------
      

  7.   

    这个问题建议你看下tomcat安装目录的log目录下的stdout文件,看看System.out.println都输出了什么。如果是"未能成功加载驱动!",那么就是驱动问题,保险一点,就放到web-inf下面去。多用日志做调试,看看代码走到哪里了,哪里有错,这个学会了很重要。j2ee就是个很抽像的东西,不要去管它。光靠老师讲的没用,要学还得自己买书认真看,而且以后你也不一定做这个行业。如果真的要做BS类的开发,先看java的基本教程,学习一下怎么用面向对象思考问题。然后可以学习一下spring,hibernate和struts2,另外基本的html,css,javascritp也要会。
      

  8.   

    猜测可能是你的resultset是null,executeQuery(String sql)方法里面,有exception的时候直接就返回null了,至于是什么exception自己判断了
      

  9.   

      上 tomcat work 目录下 找到你的工程名 找check_jsp.java文件的105行是哪一行报的NullPointerException