站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题问个关于注册码的问题

问个关于注册码的问题

摘要: 问个关于注册码的问题


****************大家好 关于这段代码*****************
这是段产生注册码的代码是以前运行成功的代码
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
<%!
Color getRandColor(int fc,int bc){//给定范围获得随机颜色
Random random = new Random();
if(fc>255) fc=255;
if(bc>255) bc=255;
int r=fc+random.nextInt(bc-fc);
int g=fc+random.nextInt(bc-fc);
int b=fc+random.nextInt(bc-fc);
return new Color(r,g,b);
}
%>
<%
//设置页面不缓存
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);

// 在内存中创建图象
int width=60, height=20;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

// 获取图形上下文
Graphics g = image.getGraphics();

//生成随机类
Random random = new Random();

// 设定背景色
g.setColor(getRandColor(200,250));
g.fillRect(0, 0, width, height);

//设定字体
g.setFont(new Font("Times New Roman",Font.PLAIN,18));

//画边框
//g.setColor(new Color());
//g.drawRect(0,0,width-1,height-1);


// 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到
g.setColor(getRandColor(160,200));
for (int i=0;i<155;i++)
{
int x = random.nextInt(width);
int y = random.nextInt(height);
int xl = random.nextInt(12);
int yl = random.nextInt(12);
g.drawLine(x,y,x+xl,y+yl);
}

// 取随机产生的认证码(4位数字)
String sRand="";
for (int i=0;i<4;i++){
String rand=String.valueOf(random.nextInt(10));
sRand+=rand;
// 将认证码显示到图象中
g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
g.drawString(rand,13*i+6,16);
}

// 将认证码存入SESSION
session.setAttribute("rand",sRand);


// 图象生效
g.dispose();

// 输出图象到页面
ImageIO.write(image, "JPEG", response.getOutputStream());


%>
可是把他加入另外的JSP页面就不能运行了是为什么???
加入其他的页面的代码是
<td width="90"></td>
请问为什么验证蚂图片显示不出来


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>

<head>Simple jsp page</head>
<body>
<%@ include file="image.jsp" %>
</body>



要把image.jsp页面的
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>
去掉


去掉了还是显示不出来啊


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>

<head>Simple jsp page</head>
<body>
<%@ include file="image.jsp" %>
</body>

要这样引用那个图片页面


org.apache.jasper.compiler.CompileException: /login.jsp(176,25) /image.jsp(0,0) Page directive: can't have multiple occurrences of contentType
at org.apache.jasper.compiler.JspParseEventListener.handleDirective(JspParseEventListener.java:794)
at org.apache.jasper.compiler.DelegatingListener.handleDirective(DelegatingListener.java:125)
at org.apache.jasper.compiler.Parser$Directive.accept(Parser.java:255)
at org.apache.jasper.compiler.Parser.parse(Parser.java:1145)
at org.apache.jasper.compiler.Parser.parse(Parser.java:1103)
at org.apache.jasper.compiler.Parser.parse(Parser.java:1099)
at org.apache.jasper.compiler.ParserController.parse(ParserController.java:214)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:210)
at org.apache.jasper.servlet.JspServlet.loadJSP(JspServlet.java:548)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.loadIfNecessary(JspServlet.java:176)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:188)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125)
at java.lang.Thread.run(Thread.java:595)

这个异常 怎么回事??


你把你代码都贴出来



***********************************引用图片的代码 ***********************
<%@ page import="org.apache.log4j.Category,
com.erry.junco.resource.ResourceBox,
com.erry.lexmark.Constants"%>
<%@ page language="java" %>
<%@ page contentType="text/html;charset=GBK" %>
<%@ taglib uri="/WEB-INF/junco.tld" prefix="junco" %>
<%@ taglib uri="/WEB-INF/erry.tld" prefix="erry" %>
<%@ page import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %>

<%
// 定义Log4j对象
// 获取发出请求字符串的客户端的地址
Category log =
Category.getInstance(request.getRequestURI());

// 定义ResourceBox对象
ResourceBox resourceBox = ResourceBox.getInstance();

// 定义contextPath
String contextPath = request.getContextPath();
String loginName = (String)request.getAttribute("loginName");
if(loginName == null) loginName = "";
String errMsg = (String)request.getAttribute("loginMsg");
if(errMsg == null) errMsg = "";
String Action = contextPath + "/authorization/login.jmp";
//String bbsUrl = contextPath + "?login=true&referrer=/website/index.jsp";
%>

<head>



<link> rel="stylesheet" href="<%=contextPath%>/css/font.css" type="text/css">
<script type="text/Jscript" src="<%=contextPath%>/js/default.js"></script>
<script type="text/Jscript" src="<%=contextPath%>/js/dataverify.js"></script>
<script language="javascript">
function lengthValidate(obj, fromlen, tolen){
var str=obj.value;
if(str.length>fromlen|| str.length alert('密码长度不在范围以内');
return true ;
}
return false;
}

</script>
登录
<?import namespace="hcl" implementation="<%=contextPath%>/htc/popdate.htc" />
<?import namespace="hcl" implementation="<%=contextPath%>/htc/popbtn.htc" />
<?import namespace="hcl" implementation="<%=contextPath%>/htc/modbtn.htc" />
<?import namespace="hcl" implementation="<%=contextPath%>/htc/modline.htc" />
<script type="text/Jscript" src="<%=contextPath%>/js/addonverify.js"></script>
<script type="text/Jscript" src="<%=contextPath%>/js/erryutil.js"></script>
<script type="text/Jscript">
function forlogin(obj){
document.loginForm.action = obj;
var message = document.loginForm.sternSubmit();
if (message != ""){
window.setState(true);
}
}
</script>


<script type="text/Jscript" for="window" event="onload">

</script>