
.createJPEGEncoder(jpegOutputStream)
jpegEncoder.encode(challenge)
} catch (IllegalArgumentException e) {
response.sendError(HttpServletResponse.SC_NOT_FOUND)return
} catch (CaptchaServiceException e) { }
// 生成验证码图片的byte数组
captchaChallengeAsJpeg = jpegOutputStream.toByteArray()response.setHeader("Cache-Control", "no-store")response.setHeader("Pragma", "no-cache")response.setDateHeader("Expires", 0)response.setContentType("image/jpeg")
ServletOutputStream responseOutputStream = response.getOutputStream()responseOutputStream.write(captchaChallengeAsJpeg)responseOutputStream.flush()responseOutputStream.close()
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR)return
在页面中,直接使用<img src="imageServlet">,在src中填写前面创建的servlet的URL,即可显示出验
证码图片,最后,可以通过一下代码,来验证用户输入的验证码是否正确:
String inputCode = request.getParameter("code")// 取得用户输入的验证码 String sessionId = request.getSession().getId()Boolean isResponseCorrect = Boolean.FALSE
try {// 通过sessionId和用户输入的内容,验证用户输入是否正确
isResponseCorrect = DefaultImageService.getInstance()
.validateResponseForID(sessionId, inputCode)
} catch (CaptchaServiceException e) {// 处理验证时,可能出现的异常}
仅通过2行调用Captcha的代码,就可以实现从图片生成到验证输入的功能,非常快捷,默认生成的图片。
jqueryui默认显示的是英文的日期格式,可以通过插件设置为显示中文的方式,如下是设置显示中文的代码:$((function($){
$.datepicker.regional['zh-CN'] = {
clearText: '清除',
clearStatus: '清除已选日期',
closeText: '关闭',
closeStatus: '不改变当前选择',
prevText: '<上月',
prevStatus: '显示上月',
prevBigText: '<<',
prevBigStatus: '显示上一年',
nextText: '下月>',
nextStatus: '显示下月',
nextBigText: '>>',
nextBigStatus: '显示下一年',
currentText: '今天',
currentStatus: '显示本月',
monthNames: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
monthNamesShort: ['一','二','三','四','五','六', '七','八','九','十','十一','十二'],
monthStatus: '选择月份',
yearStatus: '选择年份',
weekHeader: '周',
weekStatus: '年内周次',
dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
dayNamesMin: ['日','一','二','三','四','五','六'],
dayStatus: '设置 DD 为一周起始',
dateStatus: '选择 m月 d日, DD',
dateFormat: 'yy-mm-dd',
firstDay: 1,
initStatus: '请选择日期',
isRTL: false}
$.datepicker.setDefaults($.datepicker.regional['zh-CN'])
})(jQuery))
完整的测试例子如下,可以通过试试运行查看运行效果:
<!doctype html>
<html>
<head>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" type="text/css" charset="utf-8"/>
</head>
<body>
<form>
<input type="text" size="15" class="datePicker"/>
</form>
<script src="http://ajax.microsoft.com/ajax/jQuery/jquery-1.7.2.min.js"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.min.js" type="text/javascript"></script>
<script type="text/javascript">
$((function($){
$.datepicker.regional['zh-CN'] = {
clearText: '清除',
clearStatus: '清除已选日期',
closeText: '关闭',
closeStatus: '不改变当前选择',
prevText: '<上月',
prevStatus: '显示上月',
prevBigText: '<<',
prevBigStatus: '显示上一年',
nextText: '下月>',
nextStatus: '显示下月',
nextBigText: '>>',
nextBigStatus: '显示下一年',
currentText: '今天',
currentStatus: '显示本月',
monthNames: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'],
monthNamesShort: ['一','二','三','四','五','六', '七','八','九','十','十一','十二'],
monthStatus: '选择月份',
yearStatus: '选择年份',
weekHeader: '周',
weekStatus: '年内周次',
dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
dayNamesMin: ['日','一','二','三','四','五','六'],
dayStatus: '设置 DD 为一周起始',
dateStatus: '选择 m月 d日, DD',
dateFormat: 'yy-mm-dd',
firstDay: 1,
initStatus: '请选择日期',
isRTL: false}
$.datepicker.setDefaults($.datepicker.regional['zh-CN'])
})(jQuery))
$('.datePicker').datepicker()
</script>
</body>
</html>
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)