JavaWeb用户登录功能的实现大四快毕业了,3年多的时间中,乱七八糟得学了一大堆,想趁找工作之前把所学的东西整理一遍,所以就尝试着做一个完整的JavaWeb系统,这几天试着做了一个用户登录的功能,分享给大家,肯定有很多不完善的地方,希望大家提提宝贵的意见,必将努力完善它。我贴出此篇博客的目的是,将一些以后有可能用到的重复性的代码保存下来,用于以后需要时直接复制粘贴,所以,此篇博客大部分都是代码,讲解性的语句并不多,如果大家看得头疼,不如不看,以后万一用到的话再拿过来修修改改即可。有可能用得到的部分:生成验证码的Java类、操作数据库的Java类用户登录模块采用了多种语言:Html、css、query:页面Servlet、java:后台运行效果图:Login.html代码:!DOCTYPEhtmlhtmlheadlang=enmetacharset=UTF-8title登录界面/titlescriptsrc=js/jquery-1.11.1.js/scriptscriptsrc=js/login.js/scriptlinkhref=css/style.cssrel=stylesheettype=text/css//headbodydivid=loginpanelwrapdivclass=loginheaderdivclass=logintitle登录/div/divformaction=/UserLogin/Sample1/loginServletdivclass=loginformdivclass=loginform_rowlabel用户名:/labelinputtype=textclass=loginform_inputname=username//divdivclass=loginform_rowlabel密码:/labelinputtype=passwordclass=loginform_inputname=password//divdivclass=loginform_rowlabel验证码:/labelinputtype=textclass=loginform_input_validationCodename=validationCode/imgclass=validationCode_imgsrc=/UserLogin/Sample1/validationCode/divdivclass=loginform_rowspanclass=returnInfo/spaninputtype=submitclass=loginform_submitvalue=登录//divdivclass=clear/div/div/form/div/body/htmlJQuery代码:login.js$(function(){$(.loginform_submit).click(function(){if(checkInput()){$(form).action(/loginServlet);}else{returnfalse;}});$(.validationCode_img).click(function(){$(.validationCode_img).attr(src,/UserLogin/Sample1/validationCode?+Math.random());});functioncheckInput(){//判断用户名if($(input[name=username]).val()==null||$(input[name=username]).val()==){alert(用户名不能为空);$(input[name=username]).focus();returnfalse;}//判断密码if($(input[name=password]).val()==null||$(input[name=password]).val()==){alert(密码不能为空);$(input[name=password]).focus();returnfalse;}//判断验证码if($(input[name=validationCode]).val()==null||$(input[name=validationCode]).val()==){alert(验证码不能为空);$(input[name=validationCode]).focus();returnfalse;}returntrue;}});生成验证码的Servlet:ValidationCode.javapackagezh.userlogin.sample;importjavax.imageio.ImageIO;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importjava.awt.*;importjava.awt.image.BufferedImage;importjava.io.IOException;importjava.io.OutputStream;importjava.util.Random;/***Createdbyzhangon2014/9/13.*/publicclassValidationCodeextendsHttpServlet{@OverrideprotectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{//获得验证码集合的长度intcharsLength=codeChars.length();//下面3条记录是关闭客户端浏览器的缓冲区//这3条语句都可以关闭浏览器的缓冲区,但是由于浏览器的版本不同,对这3条语句的支持也不同//因此,为了保险起见,同时使用这3条语句来关闭浏览器的缓冲区resp.setHeader(ragma,No-cache);resp.setHeader(Cache-Control,no-cache);resp.setDateHeader(Expires,0);//设置图形验证码的长和宽intwidth=90,height=30;BufferedImageimage=newBufferedImage(width,height,BufferedImage.TYPE_INT_RGB);Graphicsg=image.getGraphics();//获得用于输出文字的Graphics对象Randomrandom=newRandom();g.setColor(getRandomColor(180,250));g.fillRect(0,0,width,height);g.setFont(newFont(TimesNewRoman,Font.ITALIC,height));g.setColor(getRandomColor(120,180));//用户保存最后随机生成的验证码StringBuildervalidationCode=newStringBuilder();//验证码的随机字体String[]fontNames={TimesNewRoman,Bookantiqua,Arial};//随机生成3-5个验证码for(inti=0;i4;i++){//随机设置当前验证码的字符的字体g.setFont(newFont(fontNames[random.nextInt(3)],Font.ITALIC,height));//随机获得当前验证码的字符charcodeChar=codeChars.charAt(random.nextInt(charsLength));validationCode.append(codeChar);//随机设置当前验证码字符的颜色g.setColor(getRandomColor(10,100));//在图形上输出验证码字符,x和y都是随机生成的g.drawString(String.valueOf(codeChar),16*i+random.nextInt(7),height-random.nextInt(6));}//获得HttpSession对象HttpSessionsession=req.getSession();//设置session对象5分钟失效session.setMaxInactiveInterval(5*60);//将验证码保存在session对象中,key为validation_codesession.setAttribute(validation_code,validationCode.toString());//关闭Graphics对象g.dispose();OutputStreamoutS=resp.getOutputStream();ImageIO.write(image,JPEG,outS);}@OverrideprotectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{doGet(req,resp);}//图形验证码的字符集,系统将随机从这个字符串中选择一些字符作为验证码privatestaticStringcodeChars=0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ;//返回一个随机颜色privatestaticColorgetRandomColor(intminColor,intmaxColor){Randomrandom=newRandom();if(minColor255){minColor=255;}if(maxColor255){maxColor=255;}//获得r的随机颜色值intred=minColor+random.nextInt(maxColor-minColor);//gintgreen=minColor+random.nextInt(maxColor-minColor);//bintblue=minColor+random.nextInt(maxColor-minColor);returnnewColor(red,green,blue);}}操作数据库的代码:ManageSQLServer2008.java(本人使用的数据库为SQLServer2008)packagezh.userlogin.sample.dbmanager;importjava.beans.Statement;importjava.sql.*;publicclassManageSQLServer2008{//数据库的驱动名privatefinalStringdbDriver=com.microsoft.sqlserver.jdbc.SQLServerDriver;//数据库的url地址privatefinalStringurl=jdbc:sqlserver://localhost:1433;databaseName=zhDemo;privatefinalStringuserName=sa;privatefinalStringpassword=123;private