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;
}