-1
我有一個按鈕提交表單,我希望當點擊按鈕提交時,通過一個servlet將數據庫發送到數據庫(mariadb),然後通過同一個servlet再次將相同的servlet發佈到HTML頁面上點擊按鈕)。我可以做一個doPost,然後doGet在同一個提交按鈕?
當運行servlet時,它會通過HTML上的提交按鈕獲取新值。但只有當我自己運行servlet時(在Netbeans上右鍵單擊代碼並運行..)。它分開工作。
這doPost方法:
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Gson convertir = new Gson();
PrintWriter out = response.getWriter(); // PrintWriter imprime texto en un objeto. getWriter() devuelve un objeto PrintWriter.
String texto = request.getReader().readLine();//getReader() devuelve el contenido de la respuesta. readLine() lee el contenido de la variable "texto" y lo retorna.
TreeMap<String, String> objetoSabor = convertir.fromJson(texto, TreeMap.class);// Crea una lista treemap y convierte la respuesta de JSON a treemap..
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conMDB = DriverManager.getConnection("jdbc:mysql://localhost/cremo", "root", "root");
PreparedStatement sentencia = conMDB.prepareStatement("insert into inventarios (inv_hel_id, inv_sab_id, inv_cantidad ) values (?,?,?)");
sentencia.setString(1, objetoSabor.get("heladerias"));//"nombre" lo saca del objeto "sabor" en AJAX (sabor.nombre)
sentencia.setString(2, objetoSabor.get("sabor"));//"calorias" lo saca del objeto "calorias" en AJAX (sabor.calorias)
sentencia.setString(3, objetoSabor.get("calorias"));//"calorias" lo saca del objeto "calorias" en AJAX (sabor.calorias)
sentencia.execute();
這裏doGet方法:
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conMDB = DriverManager.getConnection("jdbc:mysql://localhost/cremo", "root", "root");
PreparedStatement sentencia = conMDB.prepareStatement("select * from inventarios");
ResultSet resultado = sentencia.executeQuery();//ResulSet pone el puntero en la primera fila de la tabla de la Base de datos.
while(resultado.next()){
out.println("[OK] " + request.getParameter("heladerias") + ", " + resultado.getString(2) + ", " + resultado.getString(3));
}
HTML表單:
<form>
<fieldset>
<p>
<select id="heladerias" name="heladerias">
<option value="1">Palermo</option>
<option value="2">Recoleta</option>
<option value="3">Belgrano</option>
</select>
<select id="sabores" name="sabores" >
<option value="1">Sambayon italiano</option>
<option value="3">Sambayon Frances</option>
<option value="5">Mousse de Limon</option>
<option value="6">Pistacho</option>
</select>
<input id="sabor_calorias" type="number" name="quantity" min="1" max="6000">
</p>
<input id="fecha" type="date" name="fecha" step="1" min="2016-01-01" max="2016-12-31">
<input type="submit" value="Submit" onclick="envioCorrecto()"/>
</fieldset>
</form>
任何線索如何做到這一點.... ??? – TOMAS