Re: [Wicket-user] Issue of having a webpage return binary content
Thanks, in fact I get a even nicer way generate image, which is just use Image() object from wicket, thanks everyone On 11/22/06, Eelco Hillenius <[EMAIL PROTECTED]> wrote: > You can always do RequestCycle.get() (or > ((WebRequest)RequestCycle.get())) to get the current request cycle, on > which you can then call get(Web)Request and get(Web)Response > > Eelco > > On 11/21/06, Carfield Yim <[EMAIL PROTECTED]> wrote: > > Thanks for introducting the class to me, however look like this > > missing some object like session and request which I need > > > > In fact I am going to output captcha according to jCaptcha example, it > > need request and session as follow. But can I do the same at > > WebResource? > > > > public ImageCaptcha() throws ImageFormatException, IOException { > > super(); > > final WebRequest httpServletRequest = (WebRequest)getRequest(); > > final WebResponse httpServletResponse = (WebResponse)getResponse(); > > byte[] captchaChallengeAsJpeg = null; > > // the output stream to render the captcha image as jpeg into > > ByteArrayOutputStream jpegOutputStream = new > > ByteArrayOutputStream(); > > // get the session id that will identify the generated captcha. > > // the same id must be used to validate the response, the > > session id is a good candidate! > > String captchaId = getSession().getId(); > > // call the ImageCaptchaService getChallenge method > > BufferedImage challenge = new > > DefaultManageableImageCaptchaService().getImageChallengeForID(captchaId, > > > > httpServletRequest.getLocale()); > > // a jpeg encoder > > JPEGImageEncoder jpegEncoder = > > JPEGCodec.createJPEGEncoder(jpegOutputStream); > > jpegEncoder.encode(challenge); > > captchaChallengeAsJpeg = jpegOutputStream.toByteArray(); > > > > // flush it in the response > > httpServletResponse.setHeader("Cache-Control", "no-store"); > > httpServletResponse.setHeader("Pragma", "no-cache"); > > httpServletResponse.setDateHeader("Expires", 0); > > httpServletResponse.setContentType("image/jpeg"); > > OutputStream responseOutputStream = > > httpServletResponse.getOutputStream(); > > responseOutputStream.write(captchaChallengeAsJpeg); > > responseOutputStream.flush(); > > responseOutputStream.close(); > > } > > On 11/22/06, Eelco Hillenius <[EMAIL PROTECTED]> wrote: > > > For binary output, use a (web)resource. For instance, something like this: > > > > > > WebResource export = new WebResource() { > > > > > > @Override > > > public IResourceStream getResourceStream() { > > > CharSequence discounts = DataBase.getInstance() > > > .exportDiscounts(); > > > return new StringResourceStream(discounts, "text/plain"); > > > } > > > > > > @Override > > > protected void setHeaders(WebResponse response) { > > > super.setHeaders(response); > > > response.setAttachmentHeader("discounts.csv"); > > > } > > > }; > > > export.setCacheable(false); > > > > > > new ResourceLink(this, "exportLink", export); > > > > > > > > > Eelco > > > > > > - > > > Take Surveys. Earn Cash. Influence the Future of IT > > > Join SourceForge.net's Techsay panel and you'll get the chance to share > > > your > > > opinions on IT & business topics through brief surveys - and earn cash > > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > > ___ > > > Wicket-user mailing list > > > Wicket-user@lists.sourceforge.net > > > https://lists.sourceforge.net/lists/listinfo/wicket-user > > > > > > > - > > Take Surveys. Earn Cash. Influence the Future of IT > > Join SourceForge.net's Techsay panel and you'll get the chance to share your > > opinions on IT & business topics through brief surveys - and earn cash > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > ___ > > Wicket-user mailing list > > Wicket-user@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/wicket-user > > > > - > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > ___ > Wicket-user mailing list > Wicket-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wicket-user > -
Re: [Wicket-user] Issue of having a webpage return binary content
You can always do RequestCycle.get() (or ((WebRequest)RequestCycle.get())) to get the current request cycle, on which you can then call get(Web)Request and get(Web)Response Eelco On 11/21/06, Carfield Yim <[EMAIL PROTECTED]> wrote: > Thanks for introducting the class to me, however look like this > missing some object like session and request which I need > > In fact I am going to output captcha according to jCaptcha example, it > need request and session as follow. But can I do the same at > WebResource? > > public ImageCaptcha() throws ImageFormatException, IOException { > super(); > final WebRequest httpServletRequest = (WebRequest)getRequest(); > final WebResponse httpServletResponse = (WebResponse)getResponse(); > byte[] captchaChallengeAsJpeg = null; > // the output stream to render the captcha image as jpeg into > ByteArrayOutputStream jpegOutputStream = new ByteArrayOutputStream(); > // get the session id that will identify the generated captcha. > // the same id must be used to validate the response, the > session id is a good candidate! > String captchaId = getSession().getId(); > // call the ImageCaptchaService getChallenge method > BufferedImage challenge = new > DefaultManageableImageCaptchaService().getImageChallengeForID(captchaId, > > httpServletRequest.getLocale()); > // a jpeg encoder > JPEGImageEncoder jpegEncoder = > JPEGCodec.createJPEGEncoder(jpegOutputStream); > jpegEncoder.encode(challenge); > captchaChallengeAsJpeg = jpegOutputStream.toByteArray(); > > // flush it in the response > httpServletResponse.setHeader("Cache-Control", "no-store"); > httpServletResponse.setHeader("Pragma", "no-cache"); > httpServletResponse.setDateHeader("Expires", 0); > httpServletResponse.setContentType("image/jpeg"); > OutputStream responseOutputStream = > httpServletResponse.getOutputStream(); > responseOutputStream.write(captchaChallengeAsJpeg); > responseOutputStream.flush(); > responseOutputStream.close(); > } > On 11/22/06, Eelco Hillenius <[EMAIL PROTECTED]> wrote: > > For binary output, use a (web)resource. For instance, something like this: > > > > WebResource export = new WebResource() { > > > > @Override > > public IResourceStream getResourceStream() { > > CharSequence discounts = DataBase.getInstance() > > .exportDiscounts(); > > return new StringResourceStream(discounts, "text/plain"); > > } > > > > @Override > > protected void setHeaders(WebResponse response) { > > super.setHeaders(response); > > response.setAttachmentHeader("discounts.csv"); > > } > > }; > > export.setCacheable(false); > > > > new ResourceLink(this, "exportLink", export); > > > > > > Eelco > > > > - > > Take Surveys. Earn Cash. Influence the Future of IT > > Join SourceForge.net's Techsay panel and you'll get the chance to share your > > opinions on IT & business topics through brief surveys - and earn cash > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > ___ > > Wicket-user mailing list > > Wicket-user@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/wicket-user > > > > - > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > ___ > Wicket-user mailing list > Wicket-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wicket-user > - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Issue of having a webpage return binary content
Thanks for introducting the class to me, however look like this missing some object like session and request which I need In fact I am going to output captcha according to jCaptcha example, it need request and session as follow. But can I do the same at WebResource? public ImageCaptcha() throws ImageFormatException, IOException { super(); final WebRequest httpServletRequest = (WebRequest)getRequest(); final WebResponse httpServletResponse = (WebResponse)getResponse(); byte[] captchaChallengeAsJpeg = null; // the output stream to render the captcha image as jpeg into ByteArrayOutputStream jpegOutputStream = new ByteArrayOutputStream(); // get the session id that will identify the generated captcha. // the same id must be used to validate the response, the session id is a good candidate! String captchaId = getSession().getId(); // call the ImageCaptchaService getChallenge method BufferedImage challenge = new DefaultManageableImageCaptchaService().getImageChallengeForID(captchaId, httpServletRequest.getLocale()); // a jpeg encoder JPEGImageEncoder jpegEncoder = JPEGCodec.createJPEGEncoder(jpegOutputStream); jpegEncoder.encode(challenge); captchaChallengeAsJpeg = jpegOutputStream.toByteArray(); // flush it in the response httpServletResponse.setHeader("Cache-Control", "no-store"); httpServletResponse.setHeader("Pragma", "no-cache"); httpServletResponse.setDateHeader("Expires", 0); httpServletResponse.setContentType("image/jpeg"); OutputStream responseOutputStream = httpServletResponse.getOutputStream(); responseOutputStream.write(captchaChallengeAsJpeg); responseOutputStream.flush(); responseOutputStream.close(); } On 11/22/06, Eelco Hillenius <[EMAIL PROTECTED]> wrote: > For binary output, use a (web)resource. For instance, something like this: > > WebResource export = new WebResource() { > > @Override > public IResourceStream getResourceStream() { > CharSequence discounts = DataBase.getInstance() > .exportDiscounts(); > return new StringResourceStream(discounts, "text/plain"); > } > > @Override > protected void setHeaders(WebResponse response) { > super.setHeaders(response); > response.setAttachmentHeader("discounts.csv"); > } > }; > export.setCacheable(false); > > new ResourceLink(this, "exportLink", export); > > > Eelco > > - > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > ___ > Wicket-user mailing list > Wicket-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wicket-user > - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
[Wicket-user] Issue of having a webpage return binary content
I need to create a webpage output captcha image to user, actually that is done and work for me to output binary to outputstream. However there is MarkupNotFoundException appear at my log file. I guess I can put a dummy HTML at the classpath, however, can I not doing that but tell wicket don't lookup markup? - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Issue of having a webpage return binary content
For binary output, use a (web)resource. For instance, something like this: WebResource export = new WebResource() { @Override public IResourceStream getResourceStream() { CharSequence discounts = DataBase.getInstance() .exportDiscounts(); return new StringResourceStream(discounts, "text/plain"); } @Override protected void setHeaders(WebResponse response) { super.setHeaders(response); response.setAttachmentHeader("discounts.csv"); } }; export.setCacheable(false); new ResourceLink(this, "exportLink", export); Eelco - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user