版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JavaWeb用户登录功能的实现大四快毕业了, 3年多的时间中,乱七八糟得学了一大堆, 想趁找工作之前把所学的东西整理一遍, 所以就尝试着做一个完整的JavaWeb系统,这几天试着做了一个用户登录的功能,分享给大家,肯定有很多不完善的地方,希望大家提提宝贵的意见,必将努力完善它。我贴出此篇博客的目的是, 将一些以后有可能用到的重复性的代码保存下来,用于以后需要时直接复制粘贴,所以,此篇博客大部分都是代码,讲解性的语句并不多,如果大家看得头疼,不如不看,以 后万一用到的话再拿过来修修改改即可。有可能用得到的部分:生成验证码的Java类、操作数据库的 Java类用户登录模块采用了多种语言:Html
2、、css、query: 页面Servlet、java: 后台运行效果图:Login.html 代码: 登录界面 script src=js/login.js 登录 form action = /UserLogin/Sample1/loginServlet 用户名:input type=text class=loginform_input name=username / 密码:input type=password class=loginform_input name=password / 验证码:input type = text class=loginform_input_validatio
3、nCode name =validationCode/JQuery 代码:login.js$(function()$(.loginform_submit).click(function()if(checkInput() $(form).action(/loginServlet);elsereturn false;);$(.validationCode_img).click(function()$(.validationCode_img).attr(src,/UserLogin/Sample1/validationCode?+Math.random(););function checkInput
4、()判断用户名if($(inputname=username).val() = null | $(inputname=username).val() = )alert(用户名不能为空);$(inputname=username).focus();return false;判断密码if($(inputname=password).val() = null | $(inputname=password).val() = ) alert(密码不能为空);$(inputname=password).focus();return false;判断验证码if($(inputname=validationC
5、ode).val() = null | $(inputname=validationCode).val() = ) alert(验证码不能为空);$(inputname=validationCode).focus();return false;return true;);生成验证码的 Servlet: ValidationCode.javaimport java.awt.*;/* Created by zhang on 2014/9/13.*/public class ValidationCode extends HttpServletOverrideprotected void doGet(
6、HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException /获得验证码集合的长度int charsLength = codeChars.length();下面3条记录是关闭客户端浏览器的缓冲区3条语句的支持这3条语句都可以关闭浏览器的缓冲区,但是由于浏览器的版本不同,对这也不同因此,为了保险起见,同时使用这3条语句来关闭浏览器的缓冲区resp.setHeader(ragma, No-cache);resp.setHeader(Cache-Control, no-cache);re
7、sp.setDateHeader(Expires, 0);设置图形验证码的长和宽int width = 90, height = 30;BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);Graphics g = image.getGraphics(); 获得用于输出文字的Graphics 对象Random random = new Random();g.setC010r(getRandomC010r(180, 250);g.fillRect(0, 0, width, height);
8、g.setFont(new Font(Times New Roman,Font.ITALIC,height);g.setC010r(getRandomC010r(120, 180);用户保存最后随机生成的验证码StringBuilder validationCode = new StringBuilder();验证码的随机字体String口 fontNames = Times New Roman,Book antiqua,Arial;随机生成3-5个验证码for(int i = 0; i 255)minColor = 255;if(maxColor 255)maxColor = 255;/获彳
9、导r的随机颜色值int red = minColor + random.nextInt(maxColor-minColor);/gint green = minColor + random.nextInt(maxColor-minColor);/bint blue = minColor + random.nextInt(maxColor-minColor);return new Color(red,green,blue);操作数据库的代码:ManageSQLServer2008.java(本人使用的数据库为 SQLServer 2008)import java.sql.*;public cla
10、ss ManageSQLServer2008 /数据库的驱动名/数据库的url地址private final String userName = sa;private final String password = 123;private Connection conn = null;public ManageSQLServer2008()加载数据库驱动try Class.forName(dbDriver).newInstance(); catch (Exception e) e.printStackTrace();/获取数据库链接try conn = DriverManager.getCon
11、nection(url,userName,password); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace();执行各种SQL语句的方法private ResultSet execSQL(String sql,Objectargs) throws SQLException/建立 PreparedStatement对象PreparedStatement pStmt = conn.prepareStatement(sql);为pStmt对象设置SQL参数值for(int i = 0; i ar
12、gs.length; i+) pStmt.setObject(i+1, argsi);执行SQL语句pStmt.execute();返回结果集,如果执行的SQL语句不返回结果集,则返回 null return pStmt.getResultSet();private void closeSQLConn()关闭数据库链接if(conn != null) try conn.close(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace();public String checkUser(Stri
13、ng username,String password) boolean has_username = false;boolean password_correct = false;ResultSet rs = null;try rs = execSQL(select * from zh_users); catch (SQLException e) e.printStackTrace(); return null;try while(rs.next()String temp_username = rs.getString(user_name).trim();String temp_passwo
14、rd = rs.getString(password_md5).trim(); if(username.equals(temp_username) has_username = true;if(password.equals(temp_password) password_correct = true;return hasUserNameAndPasswordCorrect; return hasUserNameButPasswordInCorrect; catch (SQLException e) e.printStackTrace(); return hasNoUserName;用于处理用
15、户登录的 Servlet:LoginServlet.java/* Created by zhang on 2014/9/13.*/public class LoginServlet extends HttpServletOverrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException OutputStream out = resp.getOutputStream();String username = req.getParamet
16、er(username);String password = req.getParameter(password);String validationCode = req.getParameter(validationCode);HttpSession session = req.getSession();String validation_code = (String)session.getAttribute(validation_code);if(validationCode.equalsIgnoreCase(validation_code)elseManageSQLServer2008
17、mss = new ManageSQLServer2008();String result = mss.checkUser(username,password);if (result.equals(hasUserNameAndPasswordCorrect) else if (result.equals(hasUserNameButPasswordInCorrect) else if (result.equals(hasNoUserName) 转发到 result.jspRequestDispatcher rd = req.getRequestDispatcher(Login.html);rd.forward(req, resp);Overrideprotected void doPost(HttpSe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 玩具车配送货车司机招聘合同
- 居民议事会与社区交通管理
- 电子工程堆场租赁协议
- 滑雪度假村绿化草坪铺设协议
- 教育装备采购电子招投标指南
- 医院绿化景观建设与维护合同
- 建筑加固玻璃钢施工协议
- 庆典活动产权租赁合同
- 咨询公司员工住宿租赁协议
- 航空航天计量基准管理办法
- 12月4日全国法制宣传日宪法日宪法知识科普宣教PPT教学课件
- 乐山市市中区2022-2023学年上期期中测试七年级生物试题及答案
- 绿化监理实施细则
- 培训类项目立项评审指标体系
- 【课件】第4课 画外之意-中国传统花鸟画、人物画 课件-2022-2023学年高中美术人教版(2019)美术鉴赏
- 光伏组件支架及太阳能板安装施工方案54298
- 灾难救援现场的检伤分类方法
- 船舶管理知识考核题库与答案
- 《城市设计》2课件
- 通风队岗位说明书XXXX117
- 初中体育与健康人教九年级(2023年修订) 田径初三跨栏教案
评论
0/150
提交评论