servlet 连接mysql数据库时出现错误,麻烦高手帮看看
对数据库实现插入操作
浏览器显示下面信息
type Exception reportmessagedescription The server encountered an internal error () that prevented it from fulfilling this request.exceptionjavax.servlet.ServletException: Servlet.init() for servlet insert threw exception
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877)
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:594)
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675)
java.lang.Thread.run(Thread.java:619)
root causejava.lang.NullPointerException
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Class.java:169)
org.sunxin.lesson.jsp.bookstore.insert.init(insert.java:31)
javax.servlet.GenericServlet.init(GenericServlet.java:212)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877)
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:594)
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675)
java.lang.Thread.run(Thread.java:619)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.35 logs.
addStuInfo.jsp页面
<%@ page contentType="text/html" language="java" import="java.util.*" pageEncoding="GB2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>
<script type="text/javascript"">
function validate()
{
var id = document.forms[0].id.value;
var name = document.forms[0].name.value;
var age = document.forms[0].age.value;
var major = document.forms[0].major.value;
if(id <= 0){
alert("学号不能为空,请输入学号!");
return false;
}
else if(name.length <= 0){
alert("姓名不能为空,请输入姓名!");
return false;
}
else if(age <= 0){
alert("请输入合法年龄!");
return false;
} else if(major.length <= 0){
alert("专业不能为空,请输入所学专业!");
return false;
} else{
return true;
}
//document.getElementById("form").submit();
}
</script>
<head>
<base href="<%=basePath%>">
<title>Welcome,home</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 background="pic/background.jpg"><br/><br/>
<center>
<div>主页<p>
<form name="form1" action="servlet/insert" method="post" onsubmit="return validate()">
<h4> 学号:<input type="text" name="id" class="{required:true}"></input><br></h4>
<h4> 姓名:<input type="text" name="name"></input><br></h4>
<h4> 年龄:<input type="text" name="age"></input><br></h4>
<h4> 性别:<input type="radio" name="gender" value="男">男
<input type="radio" name="gender" value="女">女<br></h4>
<h4> 专业:<input type="text" name="major"></input><br></h4>
<input type=submit><input type=reset> </form>
</div>
</center>
</body>
</html>servlet程序
insert.javapackage org.sunxin.lesson.jsp.bookstore;import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class insert extends HttpServlet
{
private String url;
private String user;
private String password;
private String id;
private String name;
private String age;
private String gender;
private String major;
/**
*
* @throws ServletException
*/
@Override
public void init() throws ServletException
{
String driverClass=getInitParameter("driverClass");
url=getInitParameter("url");
user=getInitParameter("user");
password=getInitParameter("password");
try
{
Class.forName(driverClass);
}
catch(ClassNotFoundException ce)
{
throw new UnavailableException("加载数据库驱动失败!");
}
}
/**
*
* @param req
* @param resp
* @throws ServletException
* @throws IOException
*/
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException,IOException
{
Connection conn=null;
Statement stmt=null;
try
{
conn=DriverManager.getConnection(url,user,password);
stmt=conn.createStatement();
// stmt.executeUpdate("create database bookstore");
stmt.executeUpdate("use jsp");
// stmt.executeUpdate("create table bookinfo(id INT not null primary key,title VARCHAR(50) not null,author VARCHAR(50) not null,bookconcern VARCHAR(100) not null,publish_date DATE not null,price FLOAT(4,2) not null,amount SMALLINT,re VARCHAR(200)) ENGINE=InnoDB");
stmt.addBatch("insert into student(id,name,age,gender,major) values(" + id + ",'" + name + "'," + age + ",'" + gender + "','" + major + "')");
// stmt.addBatch("insert into bookinfo values(2,'JSP深入编程','李四','李四出版社','2004-10-1',56.00,20,null)");
// stmt.addBatch("insert into bookinfo values(3,'J2EE高级编程','王五','王五出版社','2005-3-1',78.00,10,null)");
stmt.executeBatch();
PrintWriter out=resp.getWriter();
out.println("success!");
out.close();
}
catch(SQLException se)
{
se.printStackTrace();
}
finally
{
if(stmt!=null)
{
try
{
stmt.close();
}
catch(SQLException se)
{
se.printStackTrace();
}
stmt=null;
}
if(conn!=null)
{
try
{
conn.close();
}
catch(SQLException se)
{
se.printStackTrace();
}
conn=null;
}
}
}
}
部署信息web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>CreateDBServlet</servlet-name>
<servlet-class>org.sunxin.lesson.jsp.bookstore.CreateDBServlet</servlet-class>
<init-param>
<param-name>driverClass</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</init-param>
<init-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306/mysql</param-value>
</init-param>
<init-param>
<param-name>user</param-name>
<param-value>root</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>123456</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>insert</servlet-name>
<servlet-class>org.sunxin.lesson.jsp.bookstore.insert</servlet-class>
</servlet>
<servlet>
<servlet-name>insert1</servlet-name>
<servlet-class>org.sunxin.lesson.jsp.bookstore.insert1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CreateDBServlet</servlet-name>
<url-pattern>/CreateDBServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>insert</servlet-name>
<url-pattern>/servlet/insert</url-pattern>
</servlet-mapping>
</web-app>
对数据库实现插入操作
浏览器显示下面信息
type Exception reportmessagedescription The server encountered an internal error () that prevented it from fulfilling this request.exceptionjavax.servlet.ServletException: Servlet.init() for servlet insert threw exception
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877)
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:594)
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675)
java.lang.Thread.run(Thread.java:619)
root causejava.lang.NullPointerException
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Class.java:169)
org.sunxin.lesson.jsp.bookstore.insert.init(insert.java:31)
javax.servlet.GenericServlet.init(GenericServlet.java:212)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877)
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:594)
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675)
java.lang.Thread.run(Thread.java:619)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.35 logs.
addStuInfo.jsp页面
<%@ page contentType="text/html" language="java" import="java.util.*" pageEncoding="GB2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>
<script type="text/javascript"">
function validate()
{
var id = document.forms[0].id.value;
var name = document.forms[0].name.value;
var age = document.forms[0].age.value;
var major = document.forms[0].major.value;
if(id <= 0){
alert("学号不能为空,请输入学号!");
return false;
}
else if(name.length <= 0){
alert("姓名不能为空,请输入姓名!");
return false;
}
else if(age <= 0){
alert("请输入合法年龄!");
return false;
} else if(major.length <= 0){
alert("专业不能为空,请输入所学专业!");
return false;
} else{
return true;
}
//document.getElementById("form").submit();
}
</script>
<head>
<base href="<%=basePath%>">
<title>Welcome,home</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 background="pic/background.jpg"><br/><br/>
<center>
<div>主页<p>
<form name="form1" action="servlet/insert" method="post" onsubmit="return validate()">
<h4> 学号:<input type="text" name="id" class="{required:true}"></input><br></h4>
<h4> 姓名:<input type="text" name="name"></input><br></h4>
<h4> 年龄:<input type="text" name="age"></input><br></h4>
<h4> 性别:<input type="radio" name="gender" value="男">男
<input type="radio" name="gender" value="女">女<br></h4>
<h4> 专业:<input type="text" name="major"></input><br></h4>
<input type=submit><input type=reset> </form>
</div>
</center>
</body>
</html>servlet程序
insert.javapackage org.sunxin.lesson.jsp.bookstore;import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class insert extends HttpServlet
{
private String url;
private String user;
private String password;
private String id;
private String name;
private String age;
private String gender;
private String major;
/**
*
* @throws ServletException
*/
@Override
public void init() throws ServletException
{
String driverClass=getInitParameter("driverClass");
url=getInitParameter("url");
user=getInitParameter("user");
password=getInitParameter("password");
try
{
Class.forName(driverClass);
}
catch(ClassNotFoundException ce)
{
throw new UnavailableException("加载数据库驱动失败!");
}
}
/**
*
* @param req
* @param resp
* @throws ServletException
* @throws IOException
*/
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException,IOException
{
Connection conn=null;
Statement stmt=null;
try
{
conn=DriverManager.getConnection(url,user,password);
stmt=conn.createStatement();
// stmt.executeUpdate("create database bookstore");
stmt.executeUpdate("use jsp");
// stmt.executeUpdate("create table bookinfo(id INT not null primary key,title VARCHAR(50) not null,author VARCHAR(50) not null,bookconcern VARCHAR(100) not null,publish_date DATE not null,price FLOAT(4,2) not null,amount SMALLINT,re VARCHAR(200)) ENGINE=InnoDB");
stmt.addBatch("insert into student(id,name,age,gender,major) values(" + id + ",'" + name + "'," + age + ",'" + gender + "','" + major + "')");
// stmt.addBatch("insert into bookinfo values(2,'JSP深入编程','李四','李四出版社','2004-10-1',56.00,20,null)");
// stmt.addBatch("insert into bookinfo values(3,'J2EE高级编程','王五','王五出版社','2005-3-1',78.00,10,null)");
stmt.executeBatch();
PrintWriter out=resp.getWriter();
out.println("success!");
out.close();
}
catch(SQLException se)
{
se.printStackTrace();
}
finally
{
if(stmt!=null)
{
try
{
stmt.close();
}
catch(SQLException se)
{
se.printStackTrace();
}
stmt=null;
}
if(conn!=null)
{
try
{
conn.close();
}
catch(SQLException se)
{
se.printStackTrace();
}
conn=null;
}
}
}
}
部署信息web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>CreateDBServlet</servlet-name>
<servlet-class>org.sunxin.lesson.jsp.bookstore.CreateDBServlet</servlet-class>
<init-param>
<param-name>driverClass</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</init-param>
<init-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306/mysql</param-value>
</init-param>
<init-param>
<param-name>user</param-name>
<param-value>root</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>123456</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>insert</servlet-name>
<servlet-class>org.sunxin.lesson.jsp.bookstore.insert</servlet-class>
</servlet>
<servlet>
<servlet-name>insert1</servlet-name>
<servlet-class>org.sunxin.lesson.jsp.bookstore.insert1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CreateDBServlet</servlet-name>
<url-pattern>/CreateDBServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>insert</servlet-name>
<url-pattern>/servlet/insert</url-pattern>
</servlet-mapping>
</web-app>
解决方案 »
- 注册模块如何做生成 注册码
- 重复刷新页面 tomcat 会自动关闭
- 高手请进!我现在在java代码中打开一个excel文件后,不能Forward到指定的jsp画面了
- java 如何判断日文中的汉字
- 请问jsp的administration tool的用户名和密码是多少?请各位帮忙
- HQL问题,应该非常简单,解决马上给分
- 在两个jsp页面中传递韩文乱码,有解决方法吗?
- 请求帮忙:response.sendRedirect 怎么做到以 post 的方式传参数。
- APS改写为JSP
- 这个操作数据库的javabean中的executeQuery方法能否执行insert,update,delete SQL语句?
- web.xml中url映射问题
- 如何用 Java技术实现 Web形式的点对点聊天、通讯工具
有空指针啊!
try
{
Class.forName(driverClass);
}
为什么