用struts2做一个带有图片效果的登陆验证码

我们在登陆网站的时候总是会有带有图片验证功能的验证码,它是怎么做出来的了,今天我就详细的将每一步步骤写出来。

1.在action层

 1 package cn.itcast.javaee.js.checkcode;
 2
 3 import java.io.PrintWriter;
 4 import javax.servlet.http.HttpServletResponse;
 5 import org.apache.struts2.ServletActionContext;
 6 import com.opensymphony.xwork2.ActionContext;
 7 import com.opensymphony.xwork2.ActionSupport;
 8
 9 /**
10 * 验证码检查
11 * @author AdminTC
12 */
13 public class CheckcodeAction extends ActionSupport{
14 //客户端验证码
15 private String checkcode;//2525
16 //注入客户端验证码
17 public void setCheckcode(String checkcode) {
18 this.checkcode = checkcode;
19 }
20 /**
21 * 验证
22 */
23 public String check() throws Exception {
24 //图片路径
25 String tip = "images/MsgError.gif";
26 //从服务器获取session中的验证码
27 String checkcodeServer = (String) ActionContext.getContext().getSession().get("CHECKNUM");
28 //将客户端的验证码与服务端的验证码进行比较
29 if(checkcode.equals(checkcodeServer)){
30 tip = "images/MsgSent.gif";
31 }
32 //以IO流的方式将tip变量的值输出到AJAX异步对象中
33 HttpServletResponse response = ServletActionContext.getResponse();
34 response.setContentType("text/html;charset=UTF-8");
35 PrintWriter pw = response.getWriter();
36 pw.write(tip);
37 pw.flush();
38 pw.close();
39 //以下方式不是最好的,但可以完成AJAX异步交互
40 return null;
41 }
42 }

2.在webroot下兴建一个image文件夹放置错误或正确的图片

时间: 2024-10-24 21:31:57

用struts2做一个带有图片效果的登陆验证码的相关文章

做一个具有图片读入,写出,灰度化,黑白化的有图形界面的小软件

我们这一次的树莓基础的作业是做一个做一个具有图片读入,写出,灰度化,黑白化的小软件,我采用的是java,因为java有大量性能非常好的接口可用,譬如在图片这块,ImageIO,BufferedImage都是非常好用的,而我这一次作业也是使用这两个包. 首先我们要解决的是界面,界面可以直接用JFrame来打, 非常简单,我的界面有一个菜单栏和一个图片显示区,菜单栏有三个选项:文件,转换,保存,文件菜单有一个子菜单:打开文件,转换菜单有两个子菜单:变成灰度和变成黑白,保存菜单有三个子菜单:jpg,

用struts做一个带有随机数字的图片验证登录模块

在我们平常的工作中,登录模块有一个小的功能,就是图片验证模块,今天我就把步骤一步一步写出来. 1.新建一个web service,然后再WebRoot写,一个contentType="image/jpeg"格式的image.jsp页面,最后一句代码是将页面以图片输出. 1 <%@ page language="java" pageEncoding="UTF-8"%> 2 <%@ page contentType="im

用bootstrap的tab插件做一个图层切换效果(感觉会误导淫们,大家当乐子看吧)

小伙伴们啊,我JS真的是个渣渣,所以总想要偷懒,于是为了实现效果就把tab插件给改了(各位大神轻拍啊,我是小白,很纯洁滴,小心脏也很脆弱)…… 最近做的项目为了考虑以后的移动设备兼容性,所以用了Bootstrap.首页有一个需要鼠标点击不一样的按钮固定位置图层内容变化的效果(我描述清楚了吗Orz……),如下图: 分别点击1,2,3,4按钮时现实对应的内容变化. 我就呵呵了,这个跟tab插件很类似啊~~不就是点按钮换图层吗.如果在别处找独立插件,我这记性的,项目js文件里早晚被我弄得乱七八糟我都不

自定义带有图片的PreferenceActivity

http://my.oschina.net/huangsm/blog/40027 和大家分享一下关于android中PreferenceActivity使用以及为配置信息文件中添加图标的功能,首先给大家看一下效果图: 大家可以看到这是最终的效果图,android提供了很大的空间供开发者可以自行定义控件,你想让你的控件长成什么样子,你就可以让它长成什么样子.自己也很推崇这类开发思想,因为自行定义控件(前提:系统内置的控件满足不了自己的需求)的优点不言而喻.这边主要分享两种类型:1:单纯标题类型:2

使用react-native做一个简单的应用-03欢迎界面

Android和iOS的欢迎界面是不一样的,在iOS中有一个默认的欢迎界面,而Android则需要自己写.因此我就分开说一下这两个平台的欢迎界面的搭建.下面先看一下实现效果: Android: iOS: 一.iOS欢迎界面的实现: 它的实现跟React-Native是没有半毛钱的关系的.你需要在Xcode中去实现这个界面.也就是去设计LaunchScreen.xib,如图所示: 由于不是iOS的开发人员,对iOS也不是很懂,所以我就拖拖拽拽,最后将图片设置为居中就行啦. 二.Android欢迎界

手把手带你做一个超炫酷loading成功动画view Android自定义view

写在前面: 本篇可能是手把手自定义view系列最后一篇了,实际上我也是一周前才开始真正接触自定义view,通过这一周的练习,基本上已经熟练自定义view,能够应对一般的view需要,那么就以本篇来结尾告一段落,搞完毕设的开题报告后去学习新的内容. 有人对我说类似的效果网上已经有了呀,直接拿来就可以用,为什么还要写.我个人的观点是:第三方控件多数不能完全满足UI的要求,如果需要修改,那么必须理解他的实现,所以很有必要自己去写一款出来,成为程序的创造者,而不单单是使用者.所以,写一写已经实现的效果,

使用UIScrollView和UIPageControl做一个可以用手势来切换图片的效果

利用UIScrollView的滚动效果来实现,先上图: 实现过程是:在viewController里先加入UIScrollView和UIPageControl: -(void) loadView { [super loadView]; UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320,480)]; UIPageControl* pageControl = [[UIPageCont

VUE2.0+VUE-Router做一个图片上传预览的组件

之前发了一篇关于自己看待前端组件化的文章,但是由于学习和实践的业务逻辑差异,所以自己练习的一些demo逻辑比较简单,打算用vue重构现在公司做的项目,所以在一些小的功能页面上使用vue来做的,现在写的这个是项目中用户反馈功能而来的,收获还是挺多的. 收获:dom操作=>数据操作       router的使用       组件的使用,具体总结放在尾部. 功能:1.上传图片 2.显示缩略图 3.可以删除 4.可以重新选择文件 先上成品图(主要抽取图片这块),自己在家主要做的功能,样式就不计较了.

做一个360度看车的效果玩玩(web)

前几天在 Lexus 官网看到有这样的一个效果:http://www.lexus.com.cn/models/es/360 于是顺手打开控制台看了下他们是怎么做的,发现使用的技术还是比较简单的,通过背景图的切换来完成全景的效果. 心血来潮自己做了一个优化一点的版本,先上 DEMO 和 源码.(由于图片资源较大,加载时间较长,请耐心等待) 接下来分享下我的制作流程.首先观察下他们的图片链接: http://img.lexus.do2014.cn/images/es/car/spoke10a/Son