Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/01/2017, 07:51
sentoki79
 
Fecha de Ingreso: octubre-2013
Mensajes: 79
Antigüedad: 11 años, 1 mes
Puntos: 1
Problema a recoger variables pasadas de servlet a JPS

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:


SERVLET:


package Imagenes;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.RequestDispatcher;

/**
*
* @author Raul
*/
@WebServlet(name = "update", urlPatterns = {"/update"})
public class update extends HttpServlet {

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

int Id = Integer.parseInt(request.getParameter("Id"));

PrintWriter out = response.getWriter();

try {
String d = "com.mysql.jdbc.Driver";
Class.forName(d);
String sURL = "jdbc:mysql://localhost:3306/imagenes";
Connection Conexion;
Conexion = DriverManager.getConnection(sURL, "root", "oldViews17");
Statement misentencia;
ResultSet rs;
misentencia = Conexion.createStatement();

rs = misentencia.executeQuery("SELECT * FROM imagenes where Id=" + Id);
while (rs.next()) {
String nombre = rs.getString("Nombre");
String descripcion = rs.getString("descripcion");

/*request.setAttribute("nombre", nombre);
RequestDispatcher rd = request.getRequestDispatcher("update.jsp");
rd.forward(request, response);*/
response.sendRedirect("http://localhost:8080/SubirImagenes/update.jsp?nombre=" + nombre);

}
Conexion.close();
} catch (SQLException ex) {

} catch (ClassNotFoundException ex) {

}

}
}







JSP:




<%@page import="Imagenes.*" %>
<%@page import="java.sql.*" %>
<%@page import="java.io.*" %>
<%@page import="javax.servlet.http.*" %>
<%@page import="javax.imageio.ImageIO" %>
<%@page import="javax.servlet.ServletOutputStream" %>
<%@page import="java.awt.image.BufferedImage" %>

<jsp:setProperty name="imagen" property="*" />

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<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'>

<form action="http://localhost:8080/SubirImagenes/updateOk" method="Post">
<TABLE><TR><TH >Nombre</TH><TH >Descripcion</TH><TH colspan='3'>FOTO</TH></TR>


<%
// String nombre = (String) request.getAttribute("nombre") ;

String nombre=request.getParameter("nombre");

%>
<tr>

<td ><input type="text" value="<%=nombre %>"</td>

<td ><img src="http://localhost:8080/SubirImagenes/select?Id=<%=nombre%>" width="190px" height="100px" align="right"></td></tr>

</table>
<input type="submit" value='Modificar'>
</form>

</body>
</html>