JSP生成验证码4个数字怎么搞高人指点,刚学习啊!在线等~~~~~~~~~~~~~~~~

yougucao379548695 2006-07-01 08:32:51
JSP生成验证码4个数字怎么搞高人指点,刚学习啊!
具体验证的时候怎么比较,请指点!
...全文
1144 63 打赏 收藏 转发到动态 举报
写回复
用AI写文章
63 条回复
切换为时间正序
请发表友善的回复…
发表回复
yougucao379548695 2006-07-04
  • 打赏
  • 举报
回复
问题解决谢谢各位朋友帮忙分不多一人给点!
yougucao379548695 2006-07-03
  • 打赏
  • 举报
回复
...这里取到的session和图片显示的不对阿?慢一拍..晕
楼上的怎么解决啊,大家都帮忙看下啊?
yougucao379548695 2006-07-03
  • 打赏
  • 举报
回复
是啊,怎么解决啊
dixing 2006-07-03
  • 打赏
  • 举报
回复
<table border="1" width="90%" cellpadding="0" cellspacing="0">
<form name="myform" method="post" action="">
<tr><td valign="bottom" align="right">
<input type="text" name="checkcode" /></td>
<td width="37%" valign="middle">
<img src="code.jsp" border="0" align="absmiddle" />
</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="Submit" value="提交" /><%=session.getAttribute("rand")%></td>
</tr>
</form>
</table>

...这里取到的session和图片显示的不对阿?慢一拍..晕
dixing 2006-07-03
  • 打赏
  • 举报
回复
晕..我放在<iframe>里面好难控制...
sdxlh007 2006-07-03
  • 打赏
  • 举报
回复
<tr>
<td>验证码:</td>
<td width="30%">
<input name="CheckCode" type="text" id="CheckCode" size="8" maxlength="4" style="height:18px;" />
</td>
<td width="37%">
<img src="image.jsp" border="0" align="absmiddle" />
</td>
</tr>
这样写很困难么?我晕,为啥还要放到iframe里?
godblessh 2006-07-03
  • 打赏
  • 举报
回复
Mark
dixing 2006-07-03
  • 打赏
  • 举报
回复
<%@ include file="X.jsp" %>
进来不行阿....
Hao粑粑爱生活 2006-07-03
  • 打赏
  • 举报
回复
生成的那个可以放到session里,然后再取出来跟表单里的对比
yesunan 2006-07-03
  • 打赏
  • 举报
回复
在TIMCAT下用这个程序,为什么每次都抛
2006-7-3 9:43:23 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException: getOutputStream() has already been called for this response
at org.apache.catalina.connector.Response.getWriter(Response.java:606)
at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:195)
at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:124)
at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:117)
at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:191)
at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:115)
at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:75)
at org.apache.jsp.image_jsp._jspService(org.apache.jsp.image_jsp:127)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
怎么回事啊!
yougucao379548695 2006-07-03
  • 打赏
  • 举报
回复
<iframe name="yz" frameborder="0" width="100" height="30" scrolling="no" align="middle" src='yanzheng.jsp'>
</iframe>
这个可以。但是哪个验证码怎么传到我的login.jsp页面啊????
在login.jsp页面我得不到哪个验证码没办法比较啊。请指点。

yougucao379548695 2006-07-03
  • 打赏
  • 举报
回复
呵呵这么多人顶!
yougucao379548695 2006-07-03
  • 打赏
  • 举报
回复
是啊,在客户端检验验证码,再在服务器端验证客户信息!
dixing 2006-07-03
  • 打赏
  • 举报
回复
有没有可能在提交表单的本页用js检验验证码,并不用提交到服务器端?
OnlyFor_love 2006-07-03
  • 打赏
  • 举报
回复
以上代码测试成功,如有问题请及时和我联系。
我的MSN是 congbailing_914@hotmail.com
OnlyFor_love 2006-07-03
  • 打赏
  • 举报
回复
楼主我给你完整的吧!
image.jsp-------------------生成随即验证码图片的jsp页面
代码如下:
<%@ 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);
}
%>
<%
out.clear();//这句针对resin服务器,如果是tomacat可以不要这句
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(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);
}


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());
%>

login.jsp--------------------登录页面,在这里我是提供输入验证码然后提交进行验证
代码如下:
<%@ page language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>用户登录</title>
<script language="javascript">
function loadimage(){
document.getElementById("randImage").src = "image.jsp?"+Math.random();
}
</script>
</head>

<body>

<table width="256" border="0" cellpadding="0" cellspacing="0">
<!--DWLayoutTable-->
<form action="validate.jsp" method="post" name="loginForm">
<tr>
<td width="118" height="22" valign="middle" align="center"><input type="text" name="rand" size="15"></td>
<td width="138" valign="middle" align="center"><img alt="code..." name="randImage" id="randImage" src="image.jsp" width="60" height="20" border="1" align="absmiddle"></td>
</tr>
<tr>
<td height="36" colspan="2" align="center" valign="middle"><a href="javascript:loadimage();"><font class=pt95>看不清点我</font></a></td>
</tr>
<tr>
<td height="36" colspan="2" align="center" valign="middle"><input type="submit" name="login" value="提交"></td>
</tr>
</form>
</table>
</body>
</html>

validate.jsp-------------用来验证输入的验证码是否正确
代码如下:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%
String rand = (String)session.getAttribute("rand");
String input = request.getParameter("rand");
if(rand.equals(input)){
out.print("<script>alert('验证通过!');</script>");
} else{
out.print("<script>alert('请输入正确的验证码!');location.href='login.jsp';</script>");
}
%>

以上这三个jsp页面放在和WEB-INF相同的目录下,如果你放在不同的文件夹下,那么里面相关页面的路径你就要自己改了。
yougucao379548695 2006-07-03
  • 打赏
  • 举报
回复
我也头大了啊
sdxlh007 2006-07-03
  • 打赏
  • 举报
回复
把你的验证代码发上来啊,一直说不对,搞的我云里雾里的
qczl1224 2006-07-03
  • 打赏
  • 举报
回复
我倒塌,,你贴HTML代码干么!
<%=session.getAttribute("rand")%>这要这干吗。。这个绝对是取得的上一次的值!
yanzheng.jsp这个里面的代码了
yougucao379548695 2006-07-03
  • 打赏
  • 举报
回复
<table width="350" border="0" align="center" cellpadding="6">
<tr>
<td>用户名:
<input name="UserName" size="15" font face="宋体" style="font-size: 9pt; background-color:#EAEAF4"> </td>
</tr>
<tr>
<td>密  码:
<input type="password" name="Passwd" size="15" font face="宋体" style="font-size: 9pt; background-color:#EAEAF4"> </td>
</tr>
<tr>
<td>验证码:
<input type="text" name="verifycode" size="15" font face="宋体" style="font-size: 9pt; background-color:#EAEAF4">
<img src="yanzheng.jsp" border="0" align="middle"/>
<%=session.getAttribute("rand")%>


</td>
</tr>
<tr>
<td>
<p>
<input type="submit" name="Submit" value="确定" style="font-size: 9pt; color: #000000; background-color: #EAEAF4; solid #EAEAF4" onMouseOver ="this.style.backgroundColor='#ffffff'" onMouseOut ="this.style.backgroundColor='#EAEAF4'" title="确定">
 
<input type="reset" name="Submit2" value="重输" style="font-size: 9pt; color: #000000; background-color: #EAEAF4; solid #EAEAF4" onMouseOver ="this.style.backgroundColor='#ffffff'" onMouseOut ="this.style.backgroundColor='#EAEAF4'" title="重输">
</p></td>
</tr>
</table>
这个是我的怎么就不对啊
加载更多回复(43)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧