我是jsp的新手,我使用此代码将数据插入msaccess表 我遇到问题,当我在提交所有必填字段后点击提交按钮时,页面应该重定向到quiz.jsp。但它没有发生,也注意到插入数据库。
<%@page language="java" import="java.sql.*" %>
<%
if(request.getParameter("submit")!=null)
{
Connection conn=null;
Statement stmt=null;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:odbc:biplob");
try{
Statement st = con.createStatement();
String quest = request.getParameter("quest").toString();
String QA = request.getParameter("QA").toString();
String QB = request.getParameter("QB").toString();
String QC = request.getParameter("QC").toString();
String QD = request.getParameter("QD").toString();
String correctAns = request.getParameter("correctAns").toString();
out.println("quest : " + quest);
String qry = "insert into quiz(quest,QA,QB,QC,QD,correctAns)values('"+quest+"','"+QA+"','"+QB+"','"+QC+"','"+QD+"','"+correctAns+"')";
out.println("qry : " + qry);
int val = st.executeUpdate(qry);
if(val>0)
{
response.sendRedirect("quiz.jsp");
}
con.close();
}
catch(SQLException ex){
System.out.println("SQL satatment not found");
}
}
catch(Exception e){
e.printStackTrace();
}
}
%>
请帮助我。这个代码在哪里出错。
答案 0 :(得分:1)
你保留了一个额外的右大括号。我认为如果你删除它会有效。
答案 1 :(得分:0)
在jsp中,Scriplets是非常糟糕的做法,你应该避免使用它。您提到的工作流程可以完全不用scriplet完成。而是从servlet将数据插入数据库。
以这种方式做,如果您遇到任何问题,请在此处询问。见How to avoid Java Code in JSP-Files?.
答案 2 :(得分:0)
替换
} catch(SQLException ex) {
System.out.println("SQL satatment not found");
}
} catch(Exception e) {
e.printStackTrace();
}
通过
} catch(SQLException ex) {
throw new ServletException(ex);
}
} catch(Exception e) {
throw new ServletException(e);
}
获取详细的错误报告,包括根本原因异常,消息和完整堆栈跟踪。它包含答案。