设计师工作室网站网页设计实训报告2000字通用
news/
2025/10/5 14:53:04/
文章来源:
设计师工作室网站,网页设计实训报告2000字通用,小型企业网站设计与制作,大数据精准获客软件在Web程序中#xff0c;验证码是经常使用的技术之一。Web程序永远面临未知用户和未知程序的探测。为了防止恶意脚本的执行#xff0c;验证码技术无疑是首选方案之一。本文将讨论如何在JSP和Servlet中使用验证码技术。 验证码的产生思路很简单#xff0c;在Servlet中随机产生… 在Web程序中验证码是经常使用的技术之一。Web程序永远面临未知用户和未知程序的探测。为了防止恶意脚本的执行验证码技术无疑是首选方案之一。本文将讨论如何在JSP和Servlet中使用验证码技术。 验证码的产生思路很简单在Servlet中随机产生验证码字符序列并计入session中JSP中以图片的形式进行显示。当用户在JSP表单中输入验证码并提交时在相应的Servlet中验证是否与session中保存的验证码一致。下面通过代码一次演示验证码产生和实现的验证的过程。 1 验证码的产生 我们需要创建一个名为ValcodeServlet的servlet并在其doGet()方法中完成验证码的产生。首先通过随机数的产生类Random随机产生一个4位的验证码并将其存入session然后使用BufferedImage和Graphics类把验证码转为图片当然为了起到较好的效果我们需要添加一些干扰线最后使用ImageIO将图片输出。详细代码如下 protectedvoiddoGet(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException { // 告知浏览当作图片处理 response.setContentType(image/jpeg); // 告诉浏览器不缓存 response.setHeader(pragma, no-cache); response.setHeader(cache-control, no-cache); response.setHeader(expires, 0); // 产生由4位数字构成的验证码 int length 4; String valcode ; Random rd new Random(); for(int i0; ilength; i) valcoderd.nextInt(10); // 把产生的验证码存入到Session中 HttpSession session request.getSession(); session.setAttribute(valcode, valcode); // 产生图片 int width 80; int height 25; BufferedImageimg newBufferedImage(width, height,BufferedImage.TYPE_INT_RGB); // 获取一个Graphics Graphics g img.getGraphics(); // 填充背景色 g.setColor(Color.WHITE); g.fillRect(0, 0, width, height); // 填充干扰线50 for(int i0; i50; i){ g.setColor(new Color(rd.nextInt(100)155,rd.nextInt(100)155,rd.nextInt(100)155)); g.drawLine(rd.nextInt(width), rd.nextInt(height),rd.nextInt(width), rd.nextInt(height)); } // 绘制边框 g.setColor(Color.GRAY); g.drawRect(0, 0, width-1, height-1); // 绘制验证码 Font[] fonts {new Font(隶书,Font.BOLD,18),new Font(楷体,Font.BOLD,18),new Font(宋体,Font.BOLD,18),new Font(幼圆,Font.BOLD,18)}; for(int i0; ilength; i){ g.setColor(new Color(rd.nextInt(150),rd.nextInt(150),rd.nextInt(150))); g.setFont(fonts[rd.nextInt(fonts.length)]); g.drawString(valcode.charAt(i), width/valcode.length()*i2, 18); } // 输出图像 g.dispose(); ImageIO.write(img, jpeg, response.getOutputStream()); } 上面的代码只是产生了一个常规的验证码我们可以根据自己的需要对验证码的产生策略和干扰线进行调整。Servlet编写完毕别忘了在web.xml中进行配置以便能在JSP中调用其代码如下 servlet description/description display-nameValcodeServlet/display-name servlet-nameValcodeServlet/servlet-nameservlet-classorg.icer.jee.valcode.servlet.ValcodeServlet/servlet-class /servlet servlet-mapping servlet-nameValcodeServlet/servlet-name url-pattern/ValcodeServlet/url-pattern /servlet-mapping 2 验证码的显示 产生验证码的servlet编写完毕并且已经web.xml中进行了配置那么我们在input.jsp中使用img /标记以图片的方式调用servlet即可显示验证码。 当然为了能起到验证效果本例中还包含了简单的表单。为了放置验证码无法识别此处还提供了看不清点击换一张功能用户点击图片时重新加载验证码图片问号是为了放置浏览器缓存而不能实现重新请求图片。JSP中表单部分代码如下 formnameform1methodpostactionLoginServlet 验证码 inputnamevcodetypetextclassinput02idvcode imgsrcValcodeServletalignabsmiddletitle看不清点击换一张onClickthis.srcthis.src?/ inputtypesubmitnamebuttonidbuttonvalue 提交 /form 3 实现验证功能 当表单提交到CheckServlet时对用户填写的验证码和session中存储的验证码进行比对根据结果给出不同提示。代码如下 protectedvoiddoPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException { // 获取验证码 String valcode request.getSession().getAttribute(valcode).toString(); // 获取用户填写的验证码 String vcode request.getParameter(vcode); // 进行验证 if(!valcode.equals(vcode)) System.out.println(验证码错误); else System.out.println(验证码正确); } 上面只是根据验证情况在控制台进行了输出使用时根据实际的业务逻辑需求进行修改即可。 总起来说验证码技术本质上就是利用Java绘图技术把随机产生的验证码字符图形化并在JSP中以图形调用最后在用户提交表单后在对应的servlet中进行验证。本文只是提供验证码的基本实现思路希望大家能灵活应用。 作者中软卓越天津ETC转载于:https://www.cnblogs.com/zretc/archive/2013/06/09/3129062.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/928366.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!