看不出来,建议使用如下方式调试,察看每一步状态,再试试看。
try
{
Class.forName(driver);
System.out.println('islogin.login print : jump 1');
conn=DriverManager.getConnection(url,login,password);
System.out.println('islogin.login print : jump 2');
}
catch(Exception e)
{
System.out.print(e.getMessage());
}
try
{
Class.forName(driver);
System.out.println('islogin.login print : jump 1');
conn=DriverManager.getConnection(url,login,password);
System.out.println('islogin.login print : jump 2');
}
catch(Exception e)
{
System.out.print(e.getMessage());
}
解决方案 »
- 一个新手问题 急。。。。。
- hibernate配置问题
- Tomcat 本地部署项目 访问本地网站比较慢!但是在同事的机器上非常正常
- Clob与Blob字段的存储问题
- 关于java 开发cms简单问题
- JSP的UTF-8乱码的问题!高手进来help me!!!
- jsp连接sql问题
- 用java实现类似发帖、跟帖的一个问题交流功能模块,求大神帮助!!
- 初学者,请高手指教!
- 介绍一个写JSP的好工具(jbiulder太慢,不想用),界面编辑类似Dreamweaver,代码提示功能象jbiulder有没有这样的功具?
- 在MVC架构的系统里,是不是不应该出现www.x.com/x/x.jsp这样形式的页面?
- JSP里通过javabean调c的dll出现问题,请大侠帮忙
login.get(getUser,getPassword);
以后就执行
login.close();
在此时,rs、stmt、conn都是null,对null进行close()操作就会出现nullpointerException,正确的方法是在进行close操作以前先判断是不是null。public void close()
{
try
{
if(rs != null)
rs.close();
if(stmt != null)
stmt.close();
if(conn != null)
conn.close();
}
catch(SQLException ex1)
{
System.out.println(ex1.getMessage());
}
}
{
rs.close();
stmt.close();
conn.close();
}
------------------------------------------
程序怎么知道这些rs , stmt , conn 是什么?一定报空指针错!
要关闭连结,应该在里面关,返回给jsp一个格式化好的结果集,
在jsp中处理这个结果集,
要么将连结建立在jsp中,关闭也要在jsp中进行,
楼主的想法很好,但好像思路有问题。
public void close()
{
try
{
if(rs != null)
rs.close();
if(stmt != null)
stmt.close();
if(conn != null)
conn.close();
}
catch(SQLException ex1)
{
System.out.println(ex1.getMessage());
}
}结果还是:500 Servlet Exception
java.lang.NullPointerException
at login.isLogin.login(isLogin.java:41)
at _login__jsp._jspService(/myjsp/login/login.jsp:18)
at com.caucho.jsp.JavaPage.service(JavaPage.java:75)
at com.caucho.jsp.Page.subservice(Page.java:506)
at com.caucho.server.http.FilterChainPage.doFilter(FilterChainPage.java:182)
at com.caucho.server.http.Invocation.service(Invocation.java:315)
at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:246)
at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:164)
at com.caucho.server.TcpConnection.run(TcpConnection.java:139)
at java.lang.Thread.run(Thread.java:534)显然是没有得到值么!
我想应该是JSP页面中的getUser 和getPassword 没有传到javaBean中去
我做的那个javaBean看来还是有问题啊!
哪个好心的高手能帮我该该么?
login.get(getUser,getPassword);
这儿是不是要用login.login()啊
login.close();
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
既没有给stmt赋初值便rs=stmt.executeQuery(sql);
我现在把代码该成这样了!
还有错啊!package login;import java.io.*;
import java.sql.*;public class isLogin
{
public String getUser;
public String getPsw;
private String driver;
private String url;
private String login;
private String password;
private String sql;
private ResultSet rs;
private Statement stmt;
private Connection conn;
private String str;
public isLogin()
{
getUser = null;
getPsw = null;
driver = "sun.jdbc.odbc.JdbcOdbcDriver";
url = "jdbc:odbc:login";
login = "sa";
password = "";
sql = null;
rs = null;
stmt = null;
conn = null;
str = null;
} public void get(String s, String s1)
{
if(s != null)
getUser = s;
if(s1 != null)
getPsw = s1;
} public String login()
{
try
{
Class.forName(driver);
conn = DriverManager.getConnection(url, login, password);
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
}
catch(Exception exception)
{
System.out.print(exception.getMessage());
}
try
{
sql = "select * from customer where userID='" + getUser + "' and userPassword='" + getPsw + "'";
rs = stmt.executeQuery(sql);
if(rs.next())
str = "login success!";
else
str = "login fail!";
}
catch(SQLException sqlexception)
{
System.out.println(sqlexception.getMessage());
}
return str;
} public void close()
{
try
{
if(rs != null)
rs.close();
if(stmt != null)
stmt.close();
if(conn != null)
conn.close();
}
catch(SQLException sqlexception)
{
System.out.println(sqlexception.getMessage());
}
}
}
编译后什么结果都没有了
也不显示有错误
但是应该有个语句显示的啊
要么是login success!
要么是login fail!
为什么这些都不显示啊
我就不知道我编的是错的还是对的了
还有在javaBean中的返回值是字符的用return返回应该没有错吧!
login.close();
再上面的两句之间添加login.login();
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
</head>
<body>
<jsp:useBean scope="page" id="userlogin" class="login.isLogin"/>
<%
ResultSet rs = null;
String getUser = new String();
String getPassword = new String();
getUser=request.getParameter("user");
getPassword=request.getParameter("password");
userlogin.get(getUser,getPassword);
userlogin.login();
userlogin.close();
%>
大家帮我看看哪里有错了!
谢谢了
找到错误
下班前就结贴!!
<%
ResultSet rs = null;
String getUser = new String();
String getPassword = new String();
getUser=request.getParameter("user");
getPassword=request.getParameter("password");
userlogin.get(getUser,getPassword);
//userlogin.login();
String loginInfo = userlogin.login();
out.print(loginInfo);
userlogin.close();
%>
就是login()的返回值的问题
我是这样写的有问题么?
public void get(String s, String s1)
{
if(s != null)
getUser = s;
if(s1 != null)
getPsw = s1;
} public String login()
{
try
{
Class.forName(driver);
conn = DriverManager.getConnection(url, login, password);
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
}
catch(Exception exception)
{
System.out.print(exception.getMessage());
}
try
{
sql = "select * from customer where userID='" + getUser + "' and userPassword='" + getPsw + "'";
rs = stmt.executeQuery(sql);
if(rs.next())
str = "login success!";
else
str = "login fail!";
}
catch(SQLException sqlexception)
{
System.out.println(sqlexception.getMessage());
}
return str;
System.out.println(str);
}
我编译时候他显示说
unreachable statement
missing return statement
但是我原来不是这样写的啊
也不对的啊!
能告诉我正确的写法么?
谢谢了!!!!!!!!!!!!!!!!!
System.out.println(str);
你都return了,当然不会执行下面的语句了
Note: sun.tools.javac.Main has been deprecated.
/login/login.jsp:16: Incompatible type for declaration. Can't convert void
to java.lang.String.
String loginInfo = userlogin.login();
^
1 error, 1 warning
我是用String的类型的啊
怎么说我是void的了!
大家帮我看看
Note: sun.tools.javac.Main has been deprecated.
/login/login.jsp:16: Invalid cast from void to java.lang.String.
String loginInfo = (String)userlogin.login();
^
1 error, 1 warning
还是有错误!!!!!!!
login我是定义为String的返回类型的啊
怎么硬要说我是void呢?
特别感谢 netramper(过山风)
现在两个javaBean都能用了,我在公司也好交差了!
^_^