public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.print( " <script> alert( 'Booking successfully ') </script> ");
ByteArrayOutputStream out1 = QRCode.from(all).to(ImageType.PNG).stream();
response.setContentType("image/png");
response.setContentLength(out1.size());
OutputStream outStream = response.getOutputStream();
outStream.write(out1.toByteArray()); outStream.flush();
outStream.close();上網看過,只能用其中一個.但是我想用2個. 怎樣做. 另外,我試過加out.clear() 和out = pageContext.pushBody(); 就出錯.cannot find symbol.
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter(); String doc_id = request.getParameter("doctor").toString();
String TIME1 = request.getParameter("time");
String date1 = request.getParameter("datepicker");
SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd");
SimpleDateFormat sdf1 = new SimpleDateFormat("HH:mm");
HttpSession session = request.getSession(true);
//connect database
PreparedStatement statement = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName(driver).newInstance();
con = DriverManager.getConnection(url + dbName, username, password);
stmt = con.createStatement(); statement = con.prepareStatement("INSERT INTO booking (booking_id,client_id,doctor_id,booking_date,booking_time,status) VALUES(?,?,?,?,?,?)");
rs = stmt.executeQuery("select count(*)+1 as rowCount from booking");
java.util.Date date = new java.util.Date();
java.util.Date time1 = new java.util.Date();
date = sdf.parse(date1);
time1 = sdf1.parse(TIME1);
rs.next();
int count = rs.getInt("rowCount");
if (count < 10) {
statement.setString(1, "B0000" + count);
} else if (count >= 10 || count <= 99) {
statement.setString(1, "B000" + count);
}else if(count>=100 || count<=999){
statement.setString(1, "B00" + count);
}
statement.setString(2, (String) session.getAttribute("Username"));
statement.setString(3, doc_id);
statement.setDate(4, new java.sql.Date(date.getTime()));
statement.setTime(5, new java.sql.Time(time1.getTime()));
statement.setString(6, "N");
statement.executeUpdate();
out.print( " <script> alert( 'Booking successfully ') </script> ");
String qrtext2 = request.getParameter("subject").toString();
String all="client id: "+session.getAttribute("Username")+"\n"+"doc id: "+doc_id+"\n"+"subject: "+qrtext2+"\n"+"Date: "+date1+"\n"+"Time: "+TIME1; ByteArrayOutputStream out1 = QRCode.from(all).to(ImageType.PNG).stream();
response.setContentType("image/png");
response.setContentLength(out1.size());
OutputStream outStream = response.getOutputStream();
outStream.write(out1.toByteArray()); outStream.flush();
outStream.close();
//out.clear();
//out = pageContext.pushBody(); } catch (Exception e) {
out.print(e);
} finally {
try {
statement.close();
rs.close();
stmt.close();
con.close();
out.close(); } catch (Exception e) {
}
out.close();
}
}
servlet: 放入qr code代碼和getParameter("all");但是最後出來的是死圖.
加out.print("<img src="+request.getContextPath()+"/QRcode?bid="+all+">"); 就可以了