2014-08-29 36 views
1

我在Netbeans中沒有出現任何錯誤,但除了「Hola?」之外,它不會執行任何操作。我把測試, 我認爲主要的錯誤是在PrintWriter的命令,它不會在我的顯示器產生任何東西,JSP和表格 - 不會啓動代碼

<%@page import="java.io.*"%> 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>Página Nacho</title> 
</head> 
    <%@page import="ejemplo.BaseDatos" %> 
    <% out.println("Hola?"); 
     out.println("<body>"); 
      BaseDatos b = new BaseDatos(); 
      PrintWriter salida = response.getWriter(); 
      if (request.getParameter("Agregar")!= null){ 
      boolean inserto = b.inserta (
      request.getParameter("nombre"), 
      request.getParameter("apellido_p"), 
      request.getParameter("apellido_m"), 
      request.getParameter("direccion"), 
      request.getParameter("telefono"), 
      request.getParameter("email") 
      ); 
      if(inserto){ 
       salida.println("<br>Usuario agregado"); 
      }else{ 
       salida.println("<br>No fue posible agregar el usuario"); 
      } 
      }else{ 
      //Agrega la funcionalidad de consultar todos los usuarios 
      } 
     out.println("</body>"); 
    %> 
</html> 

這是該代碼的Java文件,它的命名上西班牙語,但我認爲沒有什麼太難:

package ejemplo; 

import java.sql.*; 
public class BaseDatos { 
Connection conexion = null; 
public BaseDatos(){ 
conexion = null; 
} 
private boolean conecta(){ 
try { 
String urlBD = "jdbc:mysql://localhost/practica2?user=root&password="; 
Class.forName("com.mysql.jdbc.Driver").newInstance(); 
conexion = DriverManager.getConnection(urlBD); 
} catch (Exception e) { 
System.out.println(e); 
return false; 
} 
return true; 
} 
public boolean inserta(String nom, String ap_p, String ap_m, String dir, String tel,      String email){ 
try { 
if (conecta()){ 
String q = "insert into  personas (nombre,apellido_p,apellido_m,direccion,telefono,email) values(?,?,?,?,?,?)"; 
PreparedStatement i = conexion.prepareStatement(q); 
i.setString(1, nom); 
i.setString(2, ap_p); 
i.setString(3, ap_m); 
i.setString(4, dir); 
i.setString(5, tel); 
i.setString(6, email); 
i.executeUpdate(); 
    i.close(); 
conexion.close(); 
return true; 
}else{ 
return false; 
} 
} catch (Exception e){ 
System.out.println(e); 
return false; 
} 
} 

public String tablaUsuarios(){ 
try{ 
if(conecta()){ 
String q="select * from personas"; 
PreparedStatement p=conexion.prepareStatement(q); 
ResultSet r=p.executeQuery(); 
String tabla="<table border=\"3\" align=\"center\">"; 
tabla+="<tr bgcolor=blue><th align=center><font color=white>Nombre</font></th>"; 
tabla+="<th align=center><font color=white>Apellido</font></th></tr>"; 
while(r.next()){ 
    tabla+="<tr><td>"+r.getString("nombre")+"</td><td>"+r.getString("apellido_p")+"  </td></tr>"; 
} 
r.close(); 
p.close(); 
conexion.close(); 
return tabla; 
}else{ 
return ""; 
} 
}catch(Exception e) { 
System.out.println(e); 
return ""; 
} 
} 
} 

感謝在先進的所有幫助。

+0

是否插入到數據庫 – 2014-08-29 05:57:42

+0

您需要將一個名爲「Agregar」的參數傳遞給頁面才能執行某些操作。 – Abhi 2014-08-29 05:59:52

回答

0

JSP有一大堆URL參數,最少的是名爲「Agregar」的參數。您需要將這些參數傳遞給頁面以供進一步處理。

if (request.getParameter("Agregar")!= null){ 
      boolean inserto = b.inserta (
      request.getParameter("nombre"), 
      request.getParameter("apellido_p"), 
      request.getParameter("apellido_m"), 
      request.getParameter("direccion"), 
      request.getParameter("telefono"), 
      request.getParameter("email") 
      ); 
      if(inserto){ 
       salida.println("<br>Usuario agregado"); 
      }else{ 
       salida.println("<br>No fue posible agregar el usuario"); 
      } 
      }else{ 
      //Agrega la funcionalidad de consultar todos los usuarios 
      } 
+0

感謝您的答案,參數「Agregar」需要放在Java中,不是嗎?我很迷茫,只是我的第二個作業在jsp – 2014-08-29 06:38:11

+0

通過URL傳遞給它,像這樣http:// localhost:8080/test.jsp?Agregar = 1234 – Abhi 2014-08-29 06:40:51

+0

對不起,如果太麻煩了,但是,我該如何傳遞它? – 2014-08-29 06:44:03