How to pass a value of a variable from a java class to the jsp page
Seems like you're doing AJAX, so I'd say your response would need to be encoded in an AJAX-compatible way (JSON, XML, ...).
If you do AJAX-encoding, your function might look like this:
function(response){ var toplevel = response.<your_top_level_element>;}
Edit:
We're using JSON Simple for JSON encoding.
Our Java backend then looks like this (simplified version without error checking):
public String execute(){ JSONObject jsonResult = new JSONObject(); jsonResult.put( "result", "ok"); return jsonResult.toJSONString();}
And in the Javascript function:
function(response){ var result = response.result; //now yields "ok"}
From your code,
request.setAttribute("rest", res);
You shouldn't set it as request attribute. Setting request attributes is only useful if you're forwarding to a JSP file. You need to write it straight to the response yourself. Replace the line by
response.getWriter().write(res);
This way it'll end up in the response body and be available as variable response
in your JS function.
See also:
If this is an ajax request, you can forward the request into another jsp page rather than return. With this
getServletContext().getRequestDispatcher("/ajax.jsp").forward(request, response);create the jsp page(ajax.jsp) on your webcontent and add this sample code.<p>${rest}</p> <!-- Note: You can actually design your html here. You can also format this as an xml file and let your js do the work.//-->
Another way is replace your System.out.println with this
PrintWriter out = response.getWriter();out.print("The value of res been passed is "+res);
but I guess this is a bad practice. See example here.