密码登录源码(jsp+java+数据库)
jsp界面:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <style type="text/css"> #code { font-family:Arial; font-style:italic; font-weight:bold; border:0; letter-spacing:2px; color:blue; } </style> <body > <% Object message = request.getAttribute("message"); if(message!=null && !"".equals(message)){ %> <script type="text/javascript"> alert("<%=request.getAttribute("message")%>"); </script> <%} %> <div align="center"> <h1 style="color: red;">登陆界面</h1> <form action ="Servlet?method=login" method="post" onsubmit="return check()"> <div> <div > 账号<input type="text" id="a" name="name"/> </div> <div > 密码<input type="password" id="b" name ="password" placeHolder='password'/> </div> <p> <input type = "text" id = "input"/> <input type = "button" id="code" onclick="createCode()"/> <input type = "button" value = "验证" onclick = "validate()"/> </p> <input type="submit" value="登录"> <a href="add.jsp" >注册</a> </div> </form> </div> <script type="text/javascript"> function check(){ var a = document.getElementById("a"); var b= document.getElementById("b"); if(a.value=="") { alert('账号为空'); a.focus(); return false; } if(b.value=="") { alert('密码为空'); a.focus(); return false; } } var code ; //在全局定义验证码 //产生验证码 window.onload = function createCode(){ code = ""; var codeLength = 4;//验证码的长度 var checkCode = document.getElementById("code"); var random = new Array(0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R', 'S','T','U','V','W','X','Y','Z');//随机数 for(var i = 0; i < codeLength; i++) {//循环操作 var index = Math.floor(Math.random()*36);//取得随机数的索引(0~35) code += random[index];//根据索引取得随机数加到code上 } checkCode.value = code;//把code值赋给验证码 } //校验验证码 function validate(){ var inputCode = document.getElementById("input").value.toUpperCase(); //取得输入的验证码并转化为大写 if(inputCode.length <= 0) { //若输入的验证码长度为0 alert("请输入验证码!"); //则弹出请输入验证码 } else if(inputCode != code ) { //若输入的验证码与产生的验证码不一致时 alert("验证码输入错误!@_@"); //则弹出验证码输入错误 createCode();//刷新验证码 document.getElementById("input").value = "";//清空文本框 } else { //输入正确时 alert("^-^"); //弹出^-^ } } </script> </body> </html>
servlet中的方法:
private void logincheck(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{ // TODO 自动生成的方法存根 req.setCharacterEncoding("utf-8"); String a = req.getParameter("name"); String b = req.getParameter("password"); int k=service.logincheck(a,b); if(k==0) { req.setAttribute("message", "用户名或密码错误!"); req.getRequestDispatcher("login.jsp").forward(req,resp); }else if(k==2){ req.setAttribute("message", "登录成功"); req.getRequestDispatcher("index.jsp").forward(req,resp); } }
service中的方法:
public int logincheck(String a,String b) { int f=0; if(dao.logincheck(a,b)) f=2; return f; }
dao层方法:
public boolean logincheck(String x, String y) { // 登录验证 boolean f=false; String sql = "select * from account where name='" + x + "'and password='" + y + "'"; Connection conn = Shujuku.conn(); Statement state = null; ResultSet rs = null; try { state = conn.createStatement(); rs = state.executeQuery(sql); while(rs.next()) { f = true; } } catch (Exception e) { e.printStackTrace(); } finally { Shujuku.close(state, conn); } return f; }