在HTML中输入emp详细信息,并通过HTML调用的JSP保存到MySql数据库

在HTML中输入emp详细信息,并通过HTML调用的JSP保存到MySql数据库,jsp,Jsp,emp.html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title h

emp.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body bgcolor="wheat">
<center>
<form action="insert.jsp" method="post">
Empno: <input type="text" name="t1"> <br><br>
Empname:<input type="text" name="t2"> <br><br>
Salary:<input type="text" name="t3"> <br><br>
<input type="submit" value="createEmp">
</form>
</center>
</body>
</html>

在此处插入标题
Empno:

Empname:

工资:

insert.jsp:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@page import="java.sql.*" %>
<%@page import="java.util.*" %>

<%!
Connection con;
PreparedStatement ps;
public void jspInt(){
    try {
        Class.forName("com.mysql.jdbc.Driver");
        con = DriverManager.getConnection("jdbc:mysql://localhost/test","root","test");
        ps = con.prepareStatement("insert into emp values(?,?,?)");
    }
    catch (Exception e) {
        // TODO: handle exception
    }
}
public void jspDestroy() {
    try {
        ps.close();
        con.close();
    }
    catch(Exception e) {
        e.printStackTrace();
    }
}
%>
<%
int eid = Integer.parseInt(request.getParameter("t1"));
String ename = request.getParameter("t2");
float sal = Float.parseFloat(request.getParameter("t3"));
ps.setInt(1, eid);
ps.setString(2, ename);
ps.setFloat(3, sal);
ps.executeUpdate();
%>
<%@ include file="emp.html" %>

错误:当我单击提交按钮时,我收到一个空指针异常:

java.lang.NullPointerException
在org.apache.jsp.insert_jsp.jspDestroy(insert_jsp.java:27)
位于org.apache.jasper.runtime.HttpJspBase.destroy(HttpJspBase.java:84)
位于org.apache.jasper.servlet.JspServletWrapper.destroy(JspServletWrapper.java:321)
在org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:131)
位于org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:253)
位于org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:258)
位于org.apache.jasper.servlet.JspServlet.service(JspServlet.java:205)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
位于org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
位于org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
位于org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
位于org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
位于org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
位于org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
位于org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
在org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
位于org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
位于org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
位于org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
位于org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
位于org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
位于org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
位于org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
位于org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
位于org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
位于org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
运行(Thread.java:595)


我使用的是MySQL 5.5、Tomcat 5和JDK1.5。我配置了构建路径并添加了服务器库和mysql连接器。罐子请解释一下。

您确定要重写jspInit方法吗?看起来您正在编写一个名为jspIntyes的新方法,您是对的。还有一个问题。在欢迎文件列表中,我将emp.html作为欢迎文件。但是我正在目录中得到一个文件列表。谢谢你的帮助。没问题。我得到了期望的结果。您已经用jspInt方法编写了jdbc初始化代码,它不是jsp的
jspInit()
,那么您如何初始化jdbc驱动程序和准备好的语句呢?