public class ValidateCodeServlet extends ><html>
<head>
<title>简单页面</title>
<script>
function yzm(){
var Num="";
for(var i=0;i<4;i++)
{
Num+=Mathfloor(Mathrandom()10);
}
documentgetElementById("yzphoto")value=Num;
documentgetElementById("yzm")value=Num;
}
function userLogin(){
var userName = documentgetElementById("userName")value;
var password = documentgetElementById("password")value;
var yztext = documentgetElementById("yztext")value;
var yzm = documentgetElementById("yzm")value;
if(userName != "jq"){
alert("用户名错误");
}else if(password != "123"){
alert("密码错误");
}else if(yztext != yzm){
alert("验证码错误");
}else{
alert("登陆成功");
}
locationreload();
}
</script>
</head>
<body onLoad="yzm()">
<div style="width:100%;text-align:center">
<h1>用户登录</h1>
<table>
<tr>
<td>用户名:</td>
<td><input id="userName" type="text" value=""/></td>
</tr>
<tr>
<td>密码:</td>
<td><input id="password" type="password" value=""/></td>
<tr>
<tr><td>
验证码:
</td>
<td><input id="yztext" type="text" value=""/><input style="width:50px;background-
color:red;color:blue" type="text" id="yzphoto" value=""/><input type="hidden" id="yzm"
value=""></td></tr>
<tr>
<td colspan="2" align="center"><input onclick="userLogin()" type="button" value="登陆"/></td>
</tr>
</table>
</div>
</body>
</html>
原理:
1生成一个随机字符串,
2将字符串放在Session中
3将字符串绘制在一个中
4,将用流的方式输出
代码:
/Project Name [JavaEE_Web]
File Name [CaptchaGeneratorServletjava]
Creation Date [2015-01-01]
Copyright© geyyang@gmailcom All Rights Reserved
Work hard, play harder, think big and keep fit
/
package servletcases;
import javaawtColor;
import javaawtFont;
import javaawtGraphics2D;
import javaawtimageBufferedImage;
import javaioIOException;
import javautilRandom;
import javaximageioImageIO;
import javaxservletServletException;
import javaxservletServletOutputStream;
import javaxservletannotationWebServlet;
import javaxservlet>这个问题很简单的。我想你动态产生的验证码一定是一个单独的页面然后再把这个页面导入到你的输入信息的页面的。你打开你的动态生成验证码的页面。在里面你一定可以找到一个sessionsetAttribute(""); 这个方法是把你验证码的值保存在session里面。根据你的意思在用jsd出来验证 首先你在页面中加一小脚本<% Stirng vcode= (String)sessiongetAttribute("验证码Key") %>然后在你的提交按钮中加一个onClick事件 请输入验证码:<input type="text" id="txtvcode" name="txtvcode" /> <input type="button" name="text" id="text" value="提交" onClick="checkVcode('<%= vcode%>')" />这样就可以把你动态生成的验证码值传入到js的函数中去了。 <script> function checkVcode(vcode){ var txtvcode= documentgetElementById("txtvcode")value; if(vcode==txtvcode){ alert("输入验证码正确"); }else{ alert("输入验证码错误"); } } </script>人在网吧。没工具调试。我想这些代码不会出问题的。看错误啊
orgapachejasperJasperException: /imagejsp(3,4) Page directive: illegal to have multiple occurrences of contentType with different values (old: text/html; charset=UTF-8, new: image/jpeg)
你是直接在另一个jsp里include的吧,不能指定不同的contentType
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)