<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.lang.Math.*" %>
<jsp:useBean id="conn" scope="page" class="download.conn"/>
<html>
<head>
<title>网上书店</title>
<link href="incoming/style.css" rel="stylesheet" type="text/css">
</head>
<body>
<%
String userid =request.getParameter("useid");
String password = request.Parameter("password");
String username = request.getParameter("username");
String address = request.getParameter("address");
String phone =request.getParameter("phone");
String email = request.getParameter("email");
String sql="INSERT INTO BUYERINFO
VALUES('"+userid+"','"+password+",'"+username+"','"+address+"','"+phone+"','"+email+"')";
conn.executeUpdate(sql);
%>
<br><a class="title">已经注册成功!请<a href="login.jsp">登录</a></a><br>
<%@ include file="incoming/footer.jsp"%>
</body>
</html>
小弟用上面的代码想往数据库中插入数据,可是每次都显示下面的错误:
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Unable to compile class for JSP An error occurred at line: 13 in the jsp file: /ruanjianxiazai/adduser.jsp Generated servlet error: String literal is not properly closed by a double-quote org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
org.apache.jasper.JasperException: Unable to compile class for JSP An error occurred at line: 13 in the jsp file: /ruanjianxiazai/adduser.jsp Generated servlet error: String literal is not properly closed by a double-quote org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84) org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328) org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:409) org.apache.jasper.compiler.Compiler.compile(Compiler.java:297) org.apache.jasper.compiler.Compiler.compile(Compiler.java:276) org.apache.jasper.compiler.Compiler.compile(Compiler.java:264) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:303) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.15 logs.
Apache Tomcat/5.5.15
希望有人能救下我,谢谢了
----------------解决方案--------------------------------------------------------
conn.executeUpdate(sql); 这个对象方法从何而来?
你的驱动,连接,状态对象呢?
----------------解决方案--------------------------------------------------------
可以在JSP中使用一个useBean,实现和后台数据库的连接。在处理页面写<%@ page language="java" import="java.sql.*" %>
<jsp:useBean id="addBean" scope="page" class="guest.guestbook" /> //class=包名.类名
在插入语句后写addBean.executeUpdate(strSQL);
把以下文件贴到写字板,另存为.java文件,放在webapps\ROOT\WEB-INF\classes\guest类文件根目录下,以后执行数据库操作时写useBean语句就行了。
package guest; //包名
import java.sql.*;
public class guestbook { //类名
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr = "jdbc:odbc:guestbook"; //odbc:后面是你配置数据源的名
private Connection conn = null;
private Statement stmt = null;
ResultSet rs = null;
public guestbook() {
try {
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e) {
System.err.println("guestbook(): " + e.getMessage());
}
}
public ResultSet executeQuery(String sql) {
rs = null;
try {
conn = DriverManager.getConnection(sConnStr);
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex) {
System.err.println("aq.executeQuery: " + ex.getMessage());
}
return rs;
}
public void executeUpdate(String sql) {
stmt = null;
rs=null;
try {
conn = DriverManager.getConnection(sConnStr);
stmt = conn.createStatement();
stmt.executeQuery(sql);
stmt.close();
conn.close();
}
catch(SQLException ex) {
System.err.println("aq.executeQuery: " + ex.getMessage());
}
}
public void closeStmt(){
try{
stmt.close();
}
catch(SQLException e){
e.printStackTrace();
}
}
public void closeConn(){
try{
conn.close();
}
catch(SQLException e){
e.printStackTrace();
}
}
}
----------------解决方案--------------------------------------------------------
老大应该这样来做
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.lang.Math.*" %>
<jsp:useBean id="conn" scope="page" class="download.conn"/>
<html>
<head>
<title>网上书店</title>
<link href="incoming/style.css" rel="stylesheet" type="text/css">
</head>
<body>
<%
String userid =request.getParameter("useid");
String password = request.Parameter("password");
String username = request.getParameter("username");
String address = request.getParameter("address");
String phone =request.getParameter("phone");
String email = request.getParameter("email");
//添加
Statement stmt=conn.createStatement();
String sql="INSERT INTO BUYERINFO
VALUES('"+userid+"','"+password+",'"+username+"','"+address+"','"+phone+"','"+email+"')";
//更改conn.executeUpdate(sql);
stmt.executeUpdate(sql);
%>
<br><a class="title">已经注册成功!请<a href="login.jsp">登录</a></a><br>
<%@ include file="incoming/footer.jsp"%>
</body>
</html>
好了这样就好了你先自己来检测以下 应该不会出现问题呢!
你主要是少个sql执行类Statement
你直接用conn来执行插入就不对了;..
----------------解决方案--------------------------------------------------------
老大。。连接数据库操作时首先应该装载驱动程序、再创建数据库连接。然后在执行增删改查操作。关于装载驱动与连接数据库有四种类型,你自己针对你自己的喜好来定。不过现在都用第四类型驱动。二楼哪们朋友写的是第一类型ORACLE的连接。可能不适合你。你用的是SQLSERVER :
SQLSERVER
装载驱动
Class.fromname("com.microsoft.jdbc.sqlsqerver.SQLServerDriver").newInstance();
创建连接
Connection conn=java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=数据库名","sa","")
这里SQLSERVER 用户名SA 密码为空
记得SQLSERVER 打SP3以上的补丁。而且1433端口要打开哦
----------------解决方案--------------------------------------------------------
把javabean里头的内容也贴上来吧。
----------------解决方案--------------------------------------------------------
哈哈。你要继续努力了。
----------------解决方案--------------------------------------------------------
好像是类不能编译!
----------------解决方案--------------------------------------------------------
你应该把你的.java文件也写出来才能看出错误
不过你数据库连接好像错了!
----------------解决方案--------------------------------------------------------