Foro de elhacker.net

Programación => Java => Mensaje iniciado por: luar79 en 23 Enero 2017, 11:49 am



Título: Problema a recoger variables pasadas de servlet a JPS
Publicado por: luar79 en 23 Enero 2017, 11:49 am
Muy buenas,


estoy tratando de pasar las variables recogidas en una consulta MySql en un servlet a un JSP. Pero probando de dos formas en ambas acaba dandome un error java.lang.NullPointerException.

Lo que trato de hacer es cuando dan al boton modificar cargue una servlet donde recojera la fila a modificar segun su Id (hasta aqui no hay problema). Despues esa servlet se encargara de enviar los datos de esa fila en un fomulario a un JSP para que el usuario pueda modificar sobre cada campo que quiera modificar. Y cuando pulse el boton actualizar del JSP cargara otra servlet donde finalmente actualizara los registros.

Utilizando en el primer servlet un response.sendRedirect(url+variable)--->al pasar al JSP da el error que recibe un valor null al recoger en request.getParameter(). (aqui veo como en la url por get se lee perfectamente la variable ..)


Y si utilizo la otra forma con request.getRequestDispatcher("update.jsp"); ya me da erro de valor null al entrar en la misma primera servlet. (aqui declaro setAttribute() y finalizo con un forward())


Agredeceria ideas  porque le he dado muchas vueltas a ver donde envia un valor null

Pego el codigo, gracias:


Código
  1. SERVLET:
  2.  
  3.  
  4. package Imagenes;
  5.  
  6. import java.io.IOException;
  7. import java.io.PrintWriter;
  8. import java.sql.Connection;
  9. import java.sql.DriverManager;
  10. import java.sql.ResultSet;
  11. import java.sql.SQLException;
  12. import java.sql.Statement;
  13. import javax.servlet.ServletException;
  14. import javax.servlet.annotation.WebServlet;
  15. import javax.servlet.http.HttpServlet;
  16. import javax.servlet.http.HttpServletRequest;
  17. import javax.servlet.http.HttpServletResponse;
  18. import javax.servlet.RequestDispatcher;
  19.  
  20. /**
  21. *
  22. * @author Raul
  23. */
  24. @WebServlet(name = "update", urlPatterns = {"/update"})
  25. public class update extends HttpServlet {
  26.  
  27. @Override
  28. protected void doGet(HttpServletRequest request, HttpServletResponse response)
  29. throws ServletException, IOException {
  30.  
  31. int Id = Integer.parseInt(request.getParameter("Id"));
  32.  
  33. PrintWriter out = response.getWriter();
  34.  
  35. try {
  36. String d = "com.mysql.jdbc.Driver";
  37. Class.forName(d);
  38. String sURL = "jdbc:mysql://localhost:3306/imagenes";
  39. Connection Conexion;
  40. Conexion = DriverManager.getConnection(sURL, "root", "oldViews17");
  41. Statement misentencia;
  42. misentencia = Conexion.createStatement();
  43.  
  44. rs = misentencia.executeQuery("SELECT * FROM imagenes where Id=" + Id);
  45. while (rs.next()) {
  46. String nombre = rs.getString("Nombre");
  47. String descripcion = rs.getString("descripcion");
  48.  
  49. /*request.setAttribute("nombre", nombre);
  50. RequestDispatcher rd = request.getRequestDispatcher("update.jsp");
  51. rd.forward(request, response);*/
  52. response.sendRedirect("http://localhost:8080/SubirImagenes/update.jsp?nombre=" + nombre);
  53.  
  54. }
  55. Conexion.close();
  56. } catch (SQLException ex) {
  57.  
  58. } catch (ClassNotFoundException ex) {
  59.  
  60. }
  61.  
  62. }
  63. }
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71. JSP:
  72.  
  73.  
  74.  
  75.  
  76. <%@page import="Imagenes.*" %>
  77. <%@page import="java.sql.*" %>
  78. <%@page import="java.io.*" %>
  79. <%@page import="javax.servlet.http.*" %>
  80. <%@page import="javax.imageio.ImageIO" %>
  81. <%@page import="javax.servlet.ServletOutputStream" %>
  82. <%@page import="java.awt.image.BufferedImage" %>
  83.  
  84. <jsp:setProperty name="imagen" property="*" />
  85.  
  86. <!DOCTYPE html>
  87. <html>
  88. <head>
  89. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  90. <title>JSP Page</title>
  91. </head>
  92. <body>
  93. <HTML ><HEAD><TITLE>oldViews</TITLE><META charset='utf-8'/><link rel='stylesheet' type='text/css' href='http://192.168.4.144/Styles/style.css'/></HEAD><BODY><HEADER><H1>Mostrar Imagenes</H1></HEADER><H2>Imagenes</H2><SECTION id='content'>
  94.  
  95. <form action="http://localhost:8080/SubirImagenes/updateOk" method="Post">
  96. <TABLE><TR><TH >Nombre</TH><TH >Descripcion</TH><TH colspan='3'>FOTO</TH></TR>
  97.  
  98.  
  99. <%
  100. // String nombre = (String) request.getAttribute("nombre") ;
  101.  
  102. String nombre=request.getParameter("nombre");
  103.  
  104. %>
  105. <tr>
  106.  
  107. <td ><input type="text" value="<%=nombre %>"</td>
  108.  
  109. <td ><img src="http://localhost:8080/SubirImagenes/select?Id=<%=nombre%>" width="190px" height="100px" align="right"></td></tr>
  110.  
  111. </table>
  112. <input type="submit" value='Modificar'>
  113. </form>
  114.  
  115. </body>
  116. </html>


· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex