版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 区块链金融科技工程师面试题集
- 2025神农科技集团有限公司第一批校园招聘17人笔试参考题库附带答案详解(3卷合一版)
- 2025新疆数途科技有限公司招聘17人笔试参考题库附带答案详解(3卷)
- 2025年凤凰出版传媒集团秋季招聘笔试参考题库附带答案详解(3卷)
- 2025安徽芜湖鸠兹水务有限公司第二批人员招聘复审及笔试参考题库附带答案详解(3卷)
- 2025四川自贡市国有资本投资运营集团有限公司人员招聘笔试参考题库附带答案详解(3卷)
- 数字化校园环境下小学生数学课外活动创新设计研究教学研究课题报告
- 护师面试常见问题及答案
- 河北省河北省南运河河务中心2024年公开招聘工作人员笔试历年参考题库典型考点附带答案详解(3卷合一)
- 嘉兴市2024浙江嘉兴市南湖区卫生系统招聘事业单位人员41人笔试历年参考题库典型考点附带答案详解(3卷合一)
- 店长岗位职责与日常管理手册
- 全球重点区域算力竞争态势分析报告(2025年)-
- 2025北京热力热源分公司招聘10人参考笔试题库及答案解析
- 2025年湖南省法院系统招聘74名聘用制书记员笔试参考题库附答案
- 2025广西机电职业技术学院招聘教职人员控制数人员79人备考题库及答案解析(夺冠)
- 2026届高考政治一轮复习:必修2 经济与社会 必背主干知识点清单
- 大学生校园创新创业计划书
- 护士职业压力管理与情绪调节策略
- 贵州国企招聘:2025贵州凉都能源有限责任公司招聘10人备考题库及答案详解(必刷)
- 招标人主体责任履行指引
- 2025-2026学年北师大版五年级数学上册(全册)知识点梳理归纳
评论
0/150
提交评论