public class DemoServlet extends HttpServlet {
public void service(HttpServletRequest req, HttpServletResponse resp)
throws IOException, ServletException {
//prints out my string
resp.getOutputStream().write("Hello from servletn".getBytes());
String variable ="VAR";
//trying to print out variable by this way but doesn't work
resp.getOutputStream().write("%sn".getBytes(),variable);
//doesn't work this way either
resp.getOutputStream().write("variable is:"+ variable +"something elsen".getBytes());
}
}
首先,我使用的是PageWriter out= resp.getWriter();
但后来我切换到ServletOutputStream
因为我想打印图像。其他一切都可以,但是:
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");
}
显然你可以使用ServletOutputStream#print
但你也可以使用PrintWriter。
resp.getWriter().print(yourvariable)
out
是一个ServletOutputStream。它具有一组丰富的重载print()
方法。只需使用
out.print(variable);
>ServletOutputStream
有一大组print(...)
方法。打印文本时,最好使用它们而不是write(...)
文本。
另外,请注意,您可以多次使用 print
或write
:
out.print("Hello, the variable is ");
out.print(variable);
out.println(". Something else?");
请注意,与其在字符串末尾添加n
,不如使用 println
。