CheckCodeServlet :
package web;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Random;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public class CheckCodeServlet extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("image/jpeg");
// 图片的内存映像
BufferedImage image
= new BufferedImage(60, 20,
BufferedImage.TYPE_INT_RGB);
Random r = new Random();
// 获得画笔对象
Graphics g = image.getGraphics();
g.setColor(new Color(r.nextInt(255),
r.nextInt(255),
r.nextInt(255)));
g.fillRect(0, 0, 60, 20);
g.setColor(new Color(0,0,0));
String number =
String.valueOf(r.nextInt(99999));
//将验证码写入session
HttpSession session =
request.getSession();
session.setAttribute("checodeNum", number);
g.drawString(number, 5, 15);
// 压缩成jpeg格式
OutputStream os =
response.getOutputStream();
JPEGImageEncoder encoder =
JPEGCodec.createJPEGEncoder(os);
// 把BufferedImage对象中的图像信息编码后
// 向创建该对象(encoder)时指定的输出流输出
encoder.encode(image);
}
}
ActionServlet:
package web;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ActionServlet extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String uri = request.getRequestURI();
String path = uri.substring(uri.lastIndexOf("/"),
uri.lastIndexOf("."));
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
try {
//Thread.sleep(10000);
} catch (Exception e) {
e.printStackTrace();
}
if(path.equals("/valiusername")){
System.out.println("valiusername...");
if(1==2)
throw new ServletException("some error");
String username =
request.getParameter("username");
System.out.println("username:" + username);
if(username.equals("zs")){
out.println("用户名已经被占用");
}else{
out.println("用户名可以使用");
}
}else if(path.equals("/valicheckcode")){
String number1 = request.getParameter("number");
String number2 =
(String) request.getSession()
.getAttribute("checodeNum");
if(!number1.equals(number2)){
out.println("验证码出错");
}else{
out.println("验证码正确");
}
}else if(path.equals("/regist")){
System.out.println("insert data to db!");
out.println("<h1>regist success!</h1>");
}
}
}
ajax.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<html>
<head>
<title>Insert title here</title>
<script type="text/javascript" src="js/prototype1.6.js"></script>
<script type="text/javascript">
function getXmlHttpRequest(){
//获得xmlHttpRequest
var xmlHttpRequest = null;
if ((typeof XMLHttpRequest) != 'undefined') {
// FF
xmlHttpRequest = new XMLHttpRequest();
}else {
xmlHttpRequest = new ActiveXObject('Microsoft.XMLHttp');
}
return xmlHttpRequest;
}
//访问服务器,查看该用户名是否可用
function valiusername(){
//获得XmlHttpRequest对象
var xmlReq = getXmlHttpRequest();
//发送请求
xmlReq.open("get","valiusername.do?username=" + $F("username"),true);
//注册一个回调函数
xmlReq.onreadystatechange=function(){
//处理服务器返回的数据,只有当服务器的数据全部返回以后,才需要处理。
if(xmlReq.readyState == 4){
if(xmlReq.status == 200){
var info = xmlReq.responseText;
$('username_msg').innerHTML=info;
}else{
$('username_msg').innerHTML='要访问的组件出错';
}
}else{
$('username_msg').innerHTML='正在验证...';
}
};
xmlReq.send(null);
}
function valiusername2(){
var xmlReq = getXmlHttpRequest();
xmlReq.open("post","valiusername.do",true);
xmlReq.setRequestHeader(
"Content-Type",
"application/x-www-form-urlencoded");
xmlReq.onreadystatechange=function(){
if(xmlReq.readyState == 4){
if(xmlReq.status == 200){
var info = xmlReq.responseText;
$('username_msg').innerHTML=info;
}else{
$('username_msg').innerHTML='要访问的组件出错';
}
}else{
$('username_msg').innerHTML='正在验证...';
}
};
xmlReq.send("username=" + $F('username'));
}
function valicheckcode(){
var xmlReq = getXmlHttpRequest();
xmlReq.open('post','valicheckcode.do',true);
xmlReq.setRequestHeader(
"Content-Type",
"application/x-www-form-urlencoded");
xmlReq.onreadystatechange=function(){
if(xmlReq.readyState == 4){
var info = xmlReq.responseText;
$('checkcode_msg').innerHTML= info;
}
};
xmlReq.send("number=" + $F('number'));
}
</script>
</head>
<body style="font-size:30pt;">
<form action="regist.do" method="post">
<fieldset>
<legend>
regist
</legend>
username:
<input type="text" name="username" id="username" onblur="valiusername();" />
<span style="color:red;" id="username_msg"></span>
<br />
password:
<input type="password" name="pwd" />
<br />
checkcode:<img src="checkcode" id="img1"/>
<a href="javascript:;" onclick="document.getElementById('img1').src='checkcode?' + (new Date().getTime())">change</a>
<input type="text" name="number" id="number" onblur="valicheckcode();"/>
<span style="color:red;" id="checkcode_msg"></span>
<br/>
<input type="submit" value="confirm" />
</fieldset>
</form>
</body>
</html>
分享到:
相关推荐
【Ajax示例】中国省份、城市、城镇联动选择列表框
.net下最简单的ajax示例,很实用的功能
ajax 纯JavaScript demo ajax示例
ajax示例 原代码ajax示例 原代码
18个Ajax 示例 轻松学会ajax
WebTest.ajax示例java版本
ajax 示例源码 最容易理解,清晰的解析了AJAX的原理
ajax示例说明
Ajax 示例,调用后台代码 静态非刷新获得系统当前时间
* 使用Ajax 验证商务卡的密码是否正确 * add by zhaoyue * 2009-04-14 */ var xmlHttp ; var isTrue=false ; function createXMLHttpRequest(){ if(window.ActiveXObject){ xmlHttp=new ActiveXObject(...
c# asp.net下的简单ajax示例源码和配置说明(AjaxPro控件方式) 本示例由VS2010建立
struts2 + jsonplugin google自动提示 ajax示例
Ajax示例程序及PPT
Ajax示例-简单会员注册 v1.0
此AJAX示例代码能让你深入浅出ajax,对于Ajax的初学者更会有很大的帮助。
简单的AJAX示例。验证用户名,判断用户名是否存在。包括jsp页面,web配置,servlet以及servlet.jar.
自己整理的AjaxPro的AJAX示例,VS2008的例子
Ajax示例中国省份、城市、城镇联动选择列表框
这是一个比较简单的Ajax示例。一看就会懂