【发布时间】:2015-06-04 15:08:33
【问题描述】:
我遇到了一些将 JSP 表单转换为 JDBC 的代码。 我在编码方面相对较新,但是在互联网上搜索了很长时间后,我仍然没有解决问题。 我需要以我的 jsp 形式将人们键入的数据“插入”到一个表中。
JSP:
<form action="CampaignToJDBC" method="post">
Enter company name: <input type="text" name="pname" /><br/>
Enter company email: <input type="email" name="pemail" /><br/>
<input type="submit" value="Apply" />
</form>
小服务程序:
Connection con = null;
PreparedStatement ps = null;
// ____________________________________________
String pname = request.getParameter("pname");
String pemail = request.getParameter("pemail");
Class.forName(driver);
con = DriverManager.getConnection(URL);
String Query = "insert into campaigns(pname, pemail) values(?, ?)";
ps = con.prepareStatement(Query);
ps.setString(1, pname);
ps.setString(2, pemail);
ps.executeUpdate();
SQL:
DROP TABLE campaigns;
CREATE TABLE campaigns(
Pname varchar2(32),
Pemail varchar2(32)
);
我的问题是它没有将它插入到数据库中,并且根据我新获得的经验,我不知道为什么。我查了几个例子,但它们看起来都像我的。
- 亚历山大
完整的服务:
@WebServlet(name = "CampaignToJDBC", urlPatterns = {"/CampaignToJDBC"})
public class CampaignToJDBC extends HttpServlet {
public static String driver = "oracle.jdbc.driver.OracleDriver";
public static String URL = "jdbc:oracle:thin:@datdb.cphbusiness.dk:1521:dat";
public static String ID = "";
public static String PW = "";
private int id = 0;
Connection con = null;
PreparedStatement ps = null;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String pname = request.getParameter("pname");
String pemail = request.getParameter("pemail");
try {
Class.forName(driver);
con = DriverManager.getConnection(URL, ID, PW);
String Query = "insert into campaigns(Pname, Pemail) values(?, ?)";
ps = con.prepareStatement(Query);
ps.setString(1, pname);
ps.setString(2, pemail);
ps.executeUpdate();
id = id + 1;
} catch (Exception e) {
} finally {
try {
ps.close();
} catch (SQLException ex) {
Logger.getLogger(CampaignToJDBC.class.getName()).log(Level.SEVERE, null, ex);
}
try {
con.close();
} catch (SQLException ex) {
Logger.getLogger(CampaignToJDBC.class.getName()).log(Level.SEVERE, null, ex);
}
}
RequestDispatcher rd = request.getRequestDispatcher("display.jsp");
rd.forward(request, response);
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
【问题讨论】:
-
那到底是servlet里面的那一行??并且请为您的 servlet 类提供完整的代码。
-
关闭连接。这里很好Example
-
你有 try catch 块吗?如果是这样,它会抛出任何异常吗?
-
检查异常
-
好的,我添加了一个完整的 servlet。但是我尝试检查异常,我不得不承认我并不完全理解它们