java - servlet - request.setattribute jsp
Cómo enviar parámetros desde un servlet (3)
Estoy intentando utilizar un RequestDispatcher para enviar parámetros de un servlet.
Aquí está mi código de servlet:
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String station = request.getParameter("station");
String insDate = request.getParameter("insDate");
//test line
String test = "/response2.jsp?myStation=5";
RequestDispatcher rd;
if (station.isEmpty()) {
rd = getServletContext().getRequestDispatcher("/response1.jsp");
} else {
rd = getServletContext().getRequestDispatcher(test);
}
rd.forward(request, response);
}
Aquí está mi jsp, con el código para leer el valor; sin embargo, muestra nulo.
<h1>response 2</h1>
<p>
<%=request.getAttribute("myStation") %>
</p>
Gracias por cualquier sugerencia. Verder
En su servlet use request.setAttribute de la siguiente manera
request.setAttribute("myStation", value);
donde el valor pasa a ser el objeto que desea leer más tarde.
y extraerlo más tarde en un servlet / jsp diferente utilizando request.getAttribute como
String value = (String)request.getAttribute("myStation")
o
<%= request.getAttribute("myStation")>
Tenga en cuenta que el alcance del uso de get / setAttribute es de naturaleza limitada: los atributos se restablecen entre las solicitudes. Si tiene la intención de almacenar valores por más tiempo, debe usar la sesión o el contexto de la aplicación, o mejor una base de datos.
Los atributos son diferentes de los parámetros, ya que el cliente nunca establece atributos. Los desarrolladores usan más o menos los atributos para transferir el estado de un servlet / JSP a otro. Por lo tanto, debe usar getParameter (no hay setParameter) para extraer datos de una solicitud, establecer atributos si es necesario usando setAttribute, reenviar la solicitud internamente usando RequestDispatcher y extraer los atributos usando getAttribute.
Use getParameter () . Se establece un atributo y se lee internamente dentro de la aplicación.
En tu código, String test = "/response2.jsp?myStation=5";
Está agregando myStation = 5 como cadena de consulta. Como los parámetros de cadena de consulta se almacenan como parámetros de solicitud en Objeto de solicitud.
Por lo tanto, puedes usar,
Funciona bien. Gracias.