//存储图片
upload。transferTo(file);
//回调函数,上传完即可在页面上显示图片。
response。setCharacterEncoding("utf-8");
String callback =request。getParameter("CKEditorFuncNum");
out。println("<script type=\"text/javascript\">");
out。println("window。parent。CKEDITOR。tools。callFunction("+ callback + ",'" + file。getName()+ "','')");
out。println("</script>");
得到的效果如下图2-5所示:
图2-5 ckeditor上传图片效果图
2。5。2 验证码插件kaptcha
我们先来说一下验证码出现的原因。数学家和计算机学家们为了解决机器很难分辨,而人类很容易分辨的东西,从而发现了验证码。验证码出现之后,也有很多用处。比如,黑客通过脚本语言就可以不断循环破解用户的密码,而有了验证码,用户的账户就安全了很多。本项目中也有很多地方会用到验证码。第一是用户注册的地方,为了防止用户恶意注册很多账户,因此用验证码控制一下。第二是发帖,防止用户恶意发帖,导致数据库存储太多垃圾信息。接下来介绍本项目使用的验证码插件kaptcha。
kaptcha 是谷歌开发的一个验证码插件。Kaptcha使用非常方便,只需要几步操作即可。同时,如果你对默认的验证码不满意,你可以对验证码的图片样式进行覆盖,既方便又灵活。Kaptcha会将生成的验证码字符串保存到session缓存中,然后在后台接收到用户输入的验证码,并把它与session中的验证码比较,就可以判断用户输入的是否正确了。
接下来我们来介绍一下kaptcha的使用方法。首先我们需要引入所需的jar包。然后在spring配置文件中配置kaptcha的bean组件,如下图2-6所示。当然我们需要在页面中加入图片标签用于显示验证码,<img src="#getRequestBase() /operator/login/kaptcha。htm " />。其中<img>标签的src属性为后台的路径,其作用是把图片画到指定的图片上。下面我们就需要在后台随机出一串字符串,然后把这串字符串加上样式画到前端的图片上。后台代码如下:
//清除缓存
response。setDateHeader("Expires", 0);
response。setHeader("Cache-Control","no-store, no-cache, must-revalidate");
response。addHeader("Cache-Control", "post-check=0, pre-check=0");
response。setHeader("Pragma", "no-cache");
// 设置返回类型为图片类型
response。setContentType("image/jpeg");
// 随机出一串字符串
String capText = captchaProducer。createText();
// 把字符串存在session中
HttpSession session = request。getSession();
session。setAttribute(Constants。KAPTCHA_SESSION_KEY, capText);
// 创建出相应的图片
BufferedImage bi = captchaProducer。createImage(capText);
ServletOutputStream out = response。getOutputStream();
// 把图片画到前端页面去
ImageIO。write(bi, "jpg", out);
图2-6 kaptcha的bean组件
2。5。3 报表工具HighCharts
Highcharts是一个非常简单、方便、实用的图表工具。HighCharts支持很多种图表,比如:折线图、柱状图、饼图等等。Highcharts使用javascript语言编写,调用起来非常方便,不用担心后台的语言,是现在很多公司生成报表的工具首选。
本项目会统计网站的信息,比如每个板块的发帖量,还有每个用户的浏览记录,由此来发展更新网站,从而给用户提供更好的体验。而直观的图表比简单的数字更容易分析出结果,本项目选用HighCharts作为展示数据的工具。