先给上代码:
conn.java
package tzm.conn;
import java.sql.*;
public class conn{
private static String DBDRIVER="sun.jdbc.odbc.JdbcOdbcDriver";
private static String DBURL="jdbc:odbc:TY";
public Connection DBconn=null;public conn(){
try
{
Class.forName(DBDRIVER);
}
catch(Exception e)
{
System.out.println("加载驱动错误");
}
try{
DBconn=DriverManager.getConnection(DBURL);
}
catch(Exception ex)
{
System.out.println(ex);
}
}
}loginChecked.jsp
<%@ page contentType="text/html;charset=GBK"%>
<%@ page language="java"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="tzm.conn.*" %>
<h1 align="center">JDBC登陆验证</h1>
<br>
<jsp:useBean id="conn" class="tzm.conn.conn" scope="request"/>
<%
String name = request.getParameter("zh") ;
String passwd = request.getParameter("passwd") ;
Connection DBconn=null;
ResultSet rs=null;
PreparedStatement pstmt;
String sql = "SELECT name,passwd FROM student WHERE name=? and passwd=?";
pstmt = DBconn.prepareStatement(sql) ;
pstmt.setString(1,name);
pstmt.setString(2,passwd);
rs = pstmt.executeQuery() ;
if(rs.next())
{
out.println("登陆成功!") ;
}
else
{
out.println("登陆失败!") ;
}%>提示错误:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:460)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
root cause java.lang.NullPointerException
org.apache.jsp.loginChecked_jsp._jspService(loginChecked_jsp.java:74)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.28 logs.求教,我也搞不懂是什么问题。有时候会提示:
loginChecked.jsp中pstmt = DBconn.prepareStatement(sql) ;
这里有问题。
conn.java
package tzm.conn;
import java.sql.*;
public class conn{
private static String DBDRIVER="sun.jdbc.odbc.JdbcOdbcDriver";
private static String DBURL="jdbc:odbc:TY";
public Connection DBconn=null;public conn(){
try
{
Class.forName(DBDRIVER);
}
catch(Exception e)
{
System.out.println("加载驱动错误");
}
try{
DBconn=DriverManager.getConnection(DBURL);
}
catch(Exception ex)
{
System.out.println(ex);
}
}
}loginChecked.jsp
<%@ page contentType="text/html;charset=GBK"%>
<%@ page language="java"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="tzm.conn.*" %>
<h1 align="center">JDBC登陆验证</h1>
<br>
<jsp:useBean id="conn" class="tzm.conn.conn" scope="request"/>
<%
String name = request.getParameter("zh") ;
String passwd = request.getParameter("passwd") ;
Connection DBconn=null;
ResultSet rs=null;
PreparedStatement pstmt;
String sql = "SELECT name,passwd FROM student WHERE name=? and passwd=?";
pstmt = DBconn.prepareStatement(sql) ;
pstmt.setString(1,name);
pstmt.setString(2,passwd);
rs = pstmt.executeQuery() ;
if(rs.next())
{
out.println("登陆成功!") ;
}
else
{
out.println("登陆失败!") ;
}%>提示错误:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:460)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
root cause java.lang.NullPointerException
org.apache.jsp.loginChecked_jsp._jspService(loginChecked_jsp.java:74)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.28 logs.求教,我也搞不懂是什么问题。有时候会提示:
loginChecked.jsp中pstmt = DBconn.prepareStatement(sql) ;
这里有问题。
解决方案 »
- 关于ireport的问题,求解!!!!在线等!!!!
- 说说心里话
- spring3.0怎么注入实体层
- 求代码接收网上的邮件,并汇总。
- Struts Validator验证,第一次加载页面就验证?
- 关于复选框被选中后,如何编辑和删除数据记录的问题。(仔细看,比较复杂。)谢谢大家
- 快放假回家过年了,散分(前5人)
- 为什么把.class文件删除了,jsp还能正常运行?
- 加载一个页面的时候执行一个javascript函数,我错了吗?
- (急)为何我的结果集一用last()或absolute()方法,系统提示java.sql.SQLException: 操作不允许: Unsupported syntax for refreshRow()。
- 继续求字符串转成时间日期
- 求JSP网络编程技术与实例 电子书(人民邮电出版社 2005-10 )
楼主的代码实在不敢恭维。 我觉的这不叫什么封装。 楼主加油哦。
谢谢大家!我会加油的~~(*-*)
Type mismatch: cannot convert from conn to Connection
10: <%
11: String name = request.getParameter("zh") ;
12: String passwd = request.getParameter("passwd") ;
13: Connection DBconn=new tzm.conn.conn();
14: ResultSet rs=null;
15: PreparedStatement pstmt;
16: 还是不对。55555
你的类没有编译。 上面写的很清楚了
JSP文件在F:\jspwork下面
The method conn() is undefined for the type conn
10: <%
11: String name = request.getParameter("zh") ;
12: String passwd = request.getParameter("passwd") ;
13: Connection DBconn=new tzm.conn.conn().conn();
14: ResultSet rs=null;
15: PreparedStatement pstmt;
16:
不行呀
try
{
Class.forName(DBDRIVER);
}
catch(Exception e)
{
System.out.println("加载驱动错误");
}
try{
DBconn=DriverManager.getConnection(DBURL);
}
catch(Exception ex)
{
System.out.println(ex);}
return DBconn;
}
}
是这样改的吗?
private static final String driverName="com.microsoft.jdbc.sqlserver.SQLServerDriver";
private static final String conStr="jdbc:microsoft:sqlserver://localhost:1433;databaseName=Demo";
private static final String user="sa";
private static final String pwd="";
/**
* 获得连接,JDBC方式
* */
public static Connection getConn(){
Connection con=null;
try {
Class.forName(driverName);
con=DriverManager.getConnection(conStr,user,pwd); } catch (Exception e) {
e.getMessage();
}
return con;
}
Connection conn = DriverManager.getConnection(url, userName, password);
private String driverClass = "com.mysql.jdbc.Driver";
private String url = "jdbc:mysql://localhost:3306/test";
private String username = "root";
private String psw = "root"; /**
* 加载驱动
*/
public DBManager() { try {
Class.forName(driverClass);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
} /**
* 获取连接
*
* @return
*/
public Connection getConnection() {
Connection conn = null;
try {
conn = DriverManager.getConnection(url, username, psw);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
} /**
* 关闭资源
*
* @param conn
* @param stmt
* @param rs
*/
public void closeResource(Connection conn, Statement stmt, ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (stmt != null) {
stmt.close();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
} }
}类名要大写不会不知道吧,还有
public conn()你这是要写个构造方法呢?还是要写个方法外部调用获取连接?
我发的这个是连接mysql的 你自己改改看吧
import java.sql.*;
public class Conn{
private static String DBDRIVER="sun.jdbc.odbc.JdbcOdbcDriver";
private static String DBURL="jdbc:odbc:TY";
public Connection DBconn=null;public Connection conn(){
try
{
Class.forName(DBDRIVER);
}
catch(Exception e)
{
System.out.println("加载驱动错误");
}
try{
DBconn=DriverManager.getConnection(DBURL);
}
catch(Exception ex)
{
System.out.println(ex);}
return DBconn;
}
}loginChecked.jsp<%@ page contentType="text/html;charset=GBK"%>
<%@ page language="java"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="tzm.conn.Conn" %>
<h1 align="center">JDBC登陆验证</h1>
<br>
<jsp:useBean id="conn" class="tzm.conn.Conn" scope="request"/>
<%
String name = request.getParameter("zh") ;
String passwd = request.getParameter("passwd") ;
Connection DBconn=new tzm.conn.conn().conn();
ResultSet rs=null;
PreparedStatement pstmt=null;
String sql = "SELECT name,passwd FROM student WHERE name=? and passwd=?";
pstmt = DBconn.prepareStatement(sql) ;
pstmt.setString(1,name);
pstmt.setString(2,passwd);
rs = pstmt.executeQuery() ;
if(rs.next())
{
out.println("登陆成功!") ;
}
else
{
out.println("登陆失败!") ;
}%>
错误:
org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 13 in the jsp file: /loginChecked.jsp
tzm.conn.conn cannot be resolved to a type
10: <%
11: String name = request.getParameter("zh") ;
12: String passwd = request.getParameter("passwd") ;
13: Connection DBconn=new tzm.conn.conn().conn();
14: ResultSet rs=null;
15: PreparedStatement pstmt=null;
16:
类名搞错了
Connection DBconn=new tzm.conn.Conn().conn();你看看你上次写的代码 类名叫conn 后面你给的代码叫Conn。
tzm.conn.conn cannot be resolved to a type 说的类型不配陪。楼主仔细点呀
<jsp:useBean id="conn" class="tzm.conn.Conn" scope="request"/>
<%
这句useBean 用了CLASS tzm.conn.Conn 取的实例化对象名为id为conn那么
在下面实例化调用conn()的时候 就应该是Connection DBconn=conn.conn();
这样就对了。谢谢大家了~!