nincompoop
nincompoop

Reputation: 21

Print out a variable in a Java servlet using output stream

public class DemoServlet extends HttpServlet {

    public void service(HttpServletRequest req, HttpServletResponse resp)
        throws IOException, ServletException {

        //prints out my string
        resp.getOutputStream().write("Hello from servlet\n".getBytes());

        String variable ="VAR";
        //trying to print out variable by this way but doesn't work
        resp.getOutputStream().write("%s\n".getBytes(),variable);
        //doesn't work this way either
        resp.getOutputStream().write("variable is:"+ variable +"something else\n".getBytes());
    }
}

First, I was using PageWriter out= resp.getWriter(); but then I switched to ServletOutputStream because I wanted to print images. Every thing else is OK but:

public void makedbconnection() {
    try {
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        Dbcon = DriverManager.getConnection("jdbc:mysql://localhost/test");
    } catch(Exception idc) {
       //ON THIS LINE, out is ServletOutputStream.
       idc.printStackTrace(out);
    }
    //System.out.println("connection made");
}

Upvotes: 2

Views: 35089

Answers (3)

Nishant
Nishant

Reputation: 55866

Obviously you can use ServletOutputStream#print but you could use PrintWriter as well.

resp.getWriter().print(yourvariable)

Upvotes: 5

Alba Mendez
Alba Mendez

Reputation: 4605

ServletOutputStream has a large set of print(...) methods. When printing text, it's better to use them instead of write(...) ones.

Also, note that you can use print or write multiple times:

out.print("Hello, the variable is ");
out.print(variable);
out.println(". Something else?");

Notice that, instead of adding a \n in the end of the string, it's better to use println.

Upvotes: 0

Ernest Friedman-Hill
Ernest Friedman-Hill

Reputation: 81684

out is a ServletOutputStream. It has a rich set of overloaded print() methods. Just use

out.print(variable);

Upvotes: 4

Related Questions