Bom dia, galera estou utilizando um sevlet em minha aplicação JSF que contem um trecho com o seguinte código
private static void processStream(InputStream is, ServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
BufferedImage image;
try {
image = ImageIO.read(is);
} catch (IOException ioe) {
log.fine(ioe.toString());
// Includes javax.imageio.IIOException
response.sendRedirect("badimage.jspx");
return;
} catch (CMMException cmme) {
log.fine(cmme.toString());
// Have seen this in logs
response.sendRedirect("badimage.jspx");
return;
} catch (IllegalArgumentException iae) {
log.fine(iae.toString());
// Have seen this in logs for some JPEGs
response.sendRedirect("badimage.jspx");
return;
}
if (image == null) {
response.sendRedirect("badimage.jspx");
return;
}
if (image.getHeight() <= 1 || image.getWidth() <= 1 ||
image.getHeight() * image.getWidth() > MAX_PIXELS) {
log.fine("Dimensions too large: " + image.getWidth() + 'x' + image.getHeight());
response.sendRedirect("badimage.jspx");
return;
}
Reader reader = new MultiFormatReader();
LuminanceSource source = new BufferedImageLuminanceSource(image);
BinaryBitmap bitmap = new BinaryBitmap(new GlobalHistogramBinarizer(source));
Collection<Result> results = new ArrayList<Result>(1);
ReaderException savedException = null;
try {
// Look for multiple barcodes
MultipleBarcodeReader multiReader = new GenericMultipleBarcodeReader(reader);
Result[] theResults = multiReader.decodeMultiple(bitmap, HINTS);
if (theResults != null) {
results.addAll(Arrays.asList(theResults));
}
} catch (ReaderException re) {
savedException = re;
}
if (results.isEmpty()) {
try {
// Look for pure barcode
Result theResult = reader.decode(bitmap, HINTS_PURE);
if (theResult != null) {
results.add(theResult);
}
} catch (ReaderException re) {
savedException = re;
}
}
if (results.isEmpty()) {
try {
// Look for normal barcode in photo
Result theResult = reader.decode(bitmap, HINTS);
if (theResult != null) {
results.add(theResult);
}
} catch (ReaderException re) {
savedException = re;
}
}
if (results.isEmpty()) {
try {
// Try again with other binarizer
BinaryBitmap hybridBitmap = new BinaryBitmap(new HybridBinarizer(source));
Result theResult = reader.decode(hybridBitmap, HINTS);
if (theResult != null) {
results.add(theResult);
}
} catch (ReaderException re) {
savedException = re;
}
}
if (results.isEmpty()) {
handleException(savedException, response);
return;
}
if (request.getParameter("full") == null) {
response.setContentType("text/plain");
response.setCharacterEncoding("UTF8");
Writer out = new OutputStreamWriter(response.getOutputStream(), "UTF8");
try {
for (Result result : results) {
out.write(result.getText());
out.write('\n');
}
} finally {
out.close();
}
} else {
request.setAttribute("results", results);
request.getRequestDispatcher("decoderesult.jspx").forward(request, response);
}
}
if (request.getParameter("full") == null) {
response.setContentType("text/plain");
response.setCharacterEncoding("UTF8");
Writer out = new OutputStreamWriter(response.getOutputStream(), "UTF8");
try {
for (Result result : results) {
out.write(result.getText());
out.write('\n');
}
} finally {
out.close();
}
ele faz uma verificação que caso atenda retorna uns dados... porem esse dados é mostrado pelo out.write(result.getText);
e abre uma pagina em branco em minha aplicação para mostrar isso ... gostaria de saber se é possivel eu mostrar esses dados na mesma pagina onde pedi a verificação...
Obrigado pessoal


