`

生成验证码图片的jsp和filter冲突的问题

    博客分类:
  • web
阅读更多

根据网上的资料,我写了一个jsp用来产生验证码图片,web server为tomcat5,

<%@ page contentType="image/jpeg" import="javax.imageio.*,com.netstar.util.CheckCodeImage" pageEncoding="GBK"%>

<%CheckCodeImage image=new CheckCodeImage();

//设置页面不缓存
response.setHeader("pragma","no-cache");
response.setHeader("cache-control","no-cache");
response.setDateHeader("expires", 0);

// 将认证码存入session
session.setAttribute("checkCode",image.srand);

// 输出图象到页面
ImageIO.write(image.creatImage(), "jpeg", response.getOutputStream());
%>

结果运行以后filter中如下这行报错:        chain.doFilter(request, response);
错误信息为 getOutputStream() has already been called for this response

在网上搜索原因如下:

//关于采用文件流输出的方式处理:
//所有的%>后面不要换行,包括最后一个;
//因为Application Server在处理编译jsp时对于%>和<%之间的内容一般是原样输出,而且默认是PrintWriter,
//而你却要进行流输出:ServletOutputStream,这样做相当于试图在Servlet中使用两种输出机制,
//就会发生:getOutputStream() has already been called for this response的错误
//详细请见《More Java Pitfill》一书的第二部分 Web层Item 33:试图在Servlet中使用两种输出机制 270
//而且如果有换行,对于文本文件没有什么问题,但是对于其它格式,比如AutoCAD、Word、Excel等文件
//下载下来的文件中就会多出一些换行符0x0d和0x0a,这样可能导致某些格式的文件无法打开,有些也可以正常打开。

最后修改jsp文件,去掉多余的空格解决了问题。当然,通过jsp处理这些问题还是不太好,还是通过servlet来输出图片是最好的解决方法。

分享到:
评论

相关推荐

    生成验证码图片的jsp代码

    在Web开发中,使用JSP(JavaServer Pages)来生成验证码图片是一种常见的方法。下面我们将详细讨论如何在JSP中实现验证码的生成。 首先,我们需要理解验证码的基本原理。验证码通常包含一串随机的字母和数字,有时...

    利用jsp生成图片验证码

    这里,`generateRandomCode()`和`createAndDrawCaptcha(String)`是自定义的方法,分别实现了验证码生成和图片绘制的逻辑。 总之,通过JSP生成图片验证码虽然可能不如使用Servlet直接控制HTTP响应那么灵活,但仍然...

    JSP中利用Servlet生成验证码图片

    本文将详细介绍如何在Java Server Pages (JSP) 和 Servlet 技术的基础上,实现一个简单而实用的验证码图片生成工具。 #### 一、验证码的基本概念 验证码(CAPTCHA)是一种区分计算机和人类的方法,常用于验证用户...

    生成验证码 jsp 图片验证码

    在本主题中,我们将详细探讨如何使用Java Servlet(jsp)来生成图片验证码。 首先,我们需要理解验证码的基本原理。验证码通常包含一串随机生成的字母和数字,显示在一张图片上,用户需要输入看到的文字以证明他们...

    JSP生成图片验证码

    JSP生成图片验证码.txtJSP生成图片验证码.txtJSP生成图片验证码.txtJSP生成图片验证码.txtJSP生成图片验证码.txt

    JSP页面验证码生成图片

    ### JSP页面验证码生成图片详解 #### 一、概述 在网站登录或注册过程中,为了防止恶意登录或机器人操作,通常会使用验证码机制。本文档详细介绍了一种利用JSP技术生成验证码图片的方法。该方法通过Java后端动态...

    JSP 生成随机验证码图片(经典老代码)

    JSP 生成随机验证码图片(经典老代码)

    JSP生成验证码图片

    通过以上分析,我们可以看到JSP技术在生成验证码图片方面具有很高的灵活性和定制能力。从随机颜色生成到图像处理,再到安全性的考量,每一环节都体现了开发者对细节的精心设计。掌握这些原理和技术,对于提升网站的...

    jsp生成动态验证码

    jsp生成动态验证码,jsp生成动态验证码。

    jsp页面生成验证码

    在jsp登录页面生成验证码,并在登录的时候在后台进行验证码是否一致的比较。

    jsp随机生成验证码

    总结,使用JSP生成随机验证码涉及到JSP基本语法、内置对象、字符串操作、随机数生成、图像处理以及服务器端验证等多个知识点。这个过程不仅有助于提高网站安全性,也是理解JSP和Web开发实践的重要一课。

    验证码图片生成工具类,jsp类型

    一个可以生成验证码图片的jsp。

    验证码生成jsp 代码

    在本主题中,我们主要关注的是如何在Java服务器页面(JSP)中生成验证码。JSP是Java Web开发中的一个重要组件,它允许开发者将动态内容嵌入到HTML页面中。 验证码生成的流程通常包括以下几个步骤: 1. **生成随机...

    随机生成验证码(JSP)

    在本项目中,我们将探讨如何使用JSP(JavaServer Pages)和Servlet来实现随机生成的验证码功能。下面将详细阐述相关知识点。 首先,验证码的生成通常涉及到以下几个步骤: 1. **随机数字或字母生成**:验证码通常...

    jsp四位验证码图片生成

    本主题聚焦于"jsp四位验证码图片生成",这是一个利用JSP(JavaServer Pages)技术来创建动态生成的4位数字验证码图片的过程。我们将探讨JSP验证码的原理、实现方式以及与JavaScript验证码的对比。 验证码的核心在于...

    JSP自动生成彩色验证码

    本项目重点在于使用JSP(Java Server Pages)技术自动生成彩色验证码,为用户提供一个视觉上更友好的验证体验。下面我们将深入探讨这个主题。 首先,验证码通常由一组随机字符组成,这些字符可以是数字、字母或其他...

    jsp生成验证码很好的例子

    总之,"jsp生成验证码很好的例子"是关于如何利用JSP技术创建一个实用的验证码系统的学习资源,涵盖了随机字符串生成、图像处理和用户验证等多个方面,这对于任何需要防止自动化攻击的Web应用都是至关重要的。

    jsp验证码图片例子

    7. **将验证码和图片发送到客户端**:在JSP页面中,将生成的验证码字符串存储在session中,同时将图片以流的形式输出到HTTP响应中。客户端接收到图片后显示在网页上,用户输入看到的验证码。 8. **验证用户输入**:...

    Jsp图片验证码

    在网页开发中,图片验证码(CAPTCHA)是一种广泛使用的安全机制,用于防止自动化的...以上就是使用JSP生成和验证图片验证码的基本过程。在实际应用中,可以根据项目需求进行定制和优化,以达到更好的用户体验和安全性。

    Servlet生成图片验证码

    在这个场景中,我们使用Servlet来生成图片验证码,这是一种防止恶意自动化程序(如机器人)进行非法操作的安全机制。验证码通常是一串随机生成的字符,以图像形式显示,用户需要在输入框中正确输入才能完成验证。 ...

Global site tag (gtag.js) - Google Analytics