请教在连接MYSQl时出现了连接问题,请大侠们救一下小弟,万分感谢!!!!!!

wanrui1981 2006-01-09 08:00:13
小弟做一个在线书店的系统.
用的是J2EE+Tomcat 5.0 +mysql4.1
小第在首页index.jsp登陆界面输入数据库中已经存在的用户名wxy,密码wxy提交表单转到login.jsp.
但是却出现了:
root cause:
java.lang.NullPointerException
bookshop.run.login.excute(login.java:65)
org.apache.jsp.bookshop.login_jsp._jspService(login_jsp.java:71)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
在Tomcat 端出现了db connect error:
index.jsp 源代码如下:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<%@ page import="java.util.*" %>
<%@ page session="true" %>
<%@include file="/bookshop/inc/head.inc"%>
<br>

<form name="form1" method="post" action="login.jsp">
<div align=center>用户登录 </div>
<br>
<table width="300" border="0" cellspacing="1" cellpadding="1" align="center">
<br>
<tr>
<td align="right">用户名:</td>
<td>
<input type="text" name="username" size="15" maxlength="25">
</td>
</tr>
<tr>
<td align="right">密码:</td>
<td>
<input type="password" name="passwd" size="15" maxlength="20">
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="Submit" value="登录">

<input type="reset" name="Submit2" value="取消">
</td>
</tr>
<tr>
<td colspan="2" align="center">
<p> </p>
测试用户:wxy 密码:wxy
</td>
</tr>
<tr>
<td colspan="2" align=center>如果不是本站会员,请在此<a href="reg.jsp">注册</a>。</td>
</tr>
</table>
</form>

<%@include file="/bookshop/inc/tail.inc"%>

...全文
104 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanrui1981 2006-01-09
  • 打赏
  • 举报
回复
哪个高手指点一下小弟吗.
wanrui1981 2006-01-09
  • 打赏
  • 举报
回复
请好心人再帮我一下吧!
wanrui1981 2006-01-09
  • 打赏
  • 举报
回复
感谢我改为有密码,重新测试发现又出现如下错误:


exception

org.apache.jasper.JasperException: Unable to compile class for JSP

Generated servlet error:
C:\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\bookshop\booklist_jsp.java:627: handlePageException(java.lang.Exception) in javax.servlet.jsp.PageContext cannot be applied to (java.lang.Throwable)
if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
^


Generated servlet error:
Note: C:\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\bookshop\booklist_jsp.java uses unchecked or unsafe operations.


Generated servlet error:
Note: Recompile with -Xlint:unchecked for details.
1 error



org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:332)
org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:412)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:472)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

说明一下book_list为login.jsp 导向的jsp page.
Octer 2006-01-09
  • 打赏
  • 举报
回复
感觉应该是你的MYSQL安全访问问题吧,也就是必须要用户密码
wanrui1981 2006-01-09
  • 打赏
  • 举报
回复
login.java原代码如下:
package bookshop.run;
/**
* <p>管理用户登录的类 </p>
*/
import bookshop.util.*;
public class login extends DataBase {
private String username; //登录用户名
private String passwd; //登录密码
private boolean isadmin; //是否管理员登录
private long userid=0; //用户ID号
public login() throws Exception{
super();
username = "";
passwd = "";
isadmin = false;
}
public String getUsername() {
return username;
}
public void setUsername(String newusername) {
username = newusername;
}
public String getPasswd() {
return passwd;
}
public void setPasswd(String newpasswd) {
passwd = newpasswd;
}
public boolean getIsadmin() {
return isadmin;
}
public void setIsadmin(boolean newIsadmin) {
isadmin = newIsadmin;
}
public long getUserid() {
return userid;
}
public void setUserid (long uid) {
userid = uid;
}
/**
* 获得查询用户信息的sql语句
* @return
*/
public String getSql() {
if (isadmin) {
sqlStr = "select * from BookAdmin where adminuser = '" +
dataFormat.toSql(username) + "' and adminpass = '" +
dataFormat.toSql(passwd) + "'";
}else {
sqlStr = "select * from shop_user where username = '" +
username + "' and password = '" + passwd + "'";
}
return sqlStr;
}
/**
* 执行查询
* @return
* @throws java.lang.Exception
*/
public boolean excute() throws Exception {
boolean flag = false;
DataBase db = new DataBase();
db.connect();
stmt = db.conn.createStatement ();
rs = stmt.executeQuery(getSql());
if (rs.next()){
if (!isadmin)
{
userid = rs.getLong("id");
}
flag = true;
}
rs.close();
return flag;
}
};

wanrui1981 2006-01-09
  • 打赏
  • 举报
回复
DataBase.java原代码如下:
package bookshop.util;
/**
* <p>数据库连接专用包 </p>
* <p>Copyright: wxy Copyright (c) 2004</p>
* <p>Company:juanjuan book shop online </p>
* @by :wxy
* @version 1.0
*/
import java.sql.*;
public class DataBase {
public Connection conn;
public Statement stmt;
public ResultSet rs=null;
public String sqlStr="";

public DataBase() {
this.connect();
}
public boolean connect(){
try{
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost:3306/BookStore?user=root&password=&characterEncoding=8859_1";
conn=DriverManager.getConnection(url);
stmt = conn.createStatement ();
}catch(Exception ee){
System.out.println("connect db error:"+ee.getMessage());
return false;
}
return true;
}
public static void main(String[] args) {
try{
DataBase db = new DataBase();
db.connect();
}catch(Exception e){
e.printStackTrace();
}
}
}
wanrui1981 2006-01-09
  • 打赏
  • 举报
回复
另外login.jsp 源代码如下:
<%@ page session="true" %>
<jsp:useBean id="login" scope="page" class="bookshop.run.login" />
<%
String mesg = "";

if( request.getParameter("username")!=null && !request.getParameter("username").equals("")){
String username =request.getParameter("username");
String passwd = request.getParameter("passwd");
username = new String(username.getBytes("ISO8859-1"));
passwd = new String(passwd.getBytes("ISO8859-1"));
login.setUsername(username);
login.setPasswd(passwd);
out.print(username+passwd);
if (login.excute()){
session.setAttribute("username",username);
String userid = Long.toString(login.getUserid());
session.setAttribute("userid",userid);
response.sendRedirect("booklist.jsp");
%>
<%
}else {
mesg = "登录出错!" ;
}
}
%>
<%@include file="/bookshop/inc/head.inc"%>

<script language="javascript">

function checkform() {
if (document.form1.username.value=="" || document.form1.passwd.value==""){
alert("用户名或密码为空!");
return false;
}
return true;

}

</script>
<div align=center>用户登录 </div>
<br>
<% if (!mesg.equals("")){
out.println("<p>" + mesg + "</p>");}%>

<form name="form1" method="post" action="login.jsp">
<table width="400" border="0" cellspacing="1" cellpadding="1" align="center">
<tr>
<td width="147" align="right">用户名:<br>
</td>
<td width="246" valign="top">
<input type="text" name="username" size="16" maxlength="25">
</td>
</tr>
<tr>
<td width="147" align="right">密码:</td>
<td width="246" valign="top">
<input type="password" name="passwd" maxlength="20" size="16">
</td>
</tr>
<tr>
<td width="147" align="right"> </td>
<td width="246" valign="top">
<input type="submit" name="Submit" value="登录" onclick="javascript:return(checkform());">
<input type="reset" name="Submit2" value="取消">
</td>
</tr>
<tr>
<td colspan="2" align="center">
<p> </p>
测试用户:wxy 密码:wxy
</td>
</tr>
<tr>

<td colspan="2" align="center">
<p> </p>
<p>如果你还不是本站用户,请在此<a href="reg.jsp">注册</a></p>
</td>
</tr>
</table>
</form>
<%@include file="/bookshop/inc/tail.inc"%>

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧