您的位置:首页 > Web前端 > JavaScript

用登录界面总结jsp基本语法

2013-10-25 16:59 288 查看
  jsp是html语言和java语言的结合,但是一般在jsp中写的java代码很少,往往只有几行,这是是由于在jsp写过多的java代码易发生错误,所以在jsp上实现用户登录很不实际,但是这里为了总结jsp的基本语法,登录界面相当有用。

  登录界面由4个界面组成,一个登录界面(login.html),一个检验信息界面(check.jsp),一个登录成功界面(success.jsp),一个登录失败界面(failure.jsp),其中check.jsp是核心,它并不显示出来,但是承担连接数据库,检验信息,并根据登录信息是否匹配决定往success.jsp和failure.jsp中哪个界面跳转。

  下面是代码

login.html

<!DOCTYPE html>
<!-- Author:zhangshufeng -->
<!-- Date:2013/10/23 -->
<html>
<head>
<meta charset="UTF-8">
<title>登录界面</title>
<script type="text/javascript">
function validate(f) {
if (!(/^\w{5,10}$/.test(f.userid.value))) {
alert("用户名长度为5-10位");//弹出对话框说明输入的用户名长度错误
f.userid.focus();//将焦点设置在userid的输入框中,即当输入userid失败的时候会在默认在userid框中输入
return false;
}
//设置输入检查:用户名长度和密码长度都要为5-10位
if (!(/^\w{5,10}$/.test(f.password.value))) {
alert("密码长度为5-10位");
f.password.focus();
return false;
}
return true;
}
</script>
</head>
<body>
<form action="check.jsp" method="post"
onSubmit="return validate(this)">
<!--onSubmit属性值确定是否向check.jsp发送消息-->
<table >
<tr>
<td><h1>登录界面</h1>
<td>
</tr>
<tr>
<td>用户名:</td>
<td><input type="text" name="userid" /></td>
</tr>
<tr>
<td>密  码:</td>
<!--  是为了让格式好看 -->
<td><input type="text" name="password" /></td>
</tr>
<tr>
<td><input type="submit" value="登录" /></td>
</tr>
</table>
</form>
</body>
</html>

check.jsp

<!-- @author:zhangshufeng -->
<!-- Date:2013/10/23 -->
<%@page
import="com.sun.xml.internal.ws.api.addressing.WSEndpointReference.Metadata"%>
<%@page import="java.sql.*,java.util.*"%>
<%@ 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">
<title>LoginCheck</title>
</head>
<body>
<%!public static String DriverName = "com.mysql.jdbc.Driver";
public static String DBURL = "jdbc:mysql://localhost:3306/userRecord";
public static String tableName = "tuser";
public static String DBUser = "root";
public static String DBPwd = "18157143347";

/*定义了关于数据库的一系列常量,比如想要连接的数据库的地址和连接权限(用户名和密码)*/
%>
<%
Boolean flag = false;//flag值表示用户输入是否正确
Connection conn = null;
String userid = request.getParameter("userid");
String password = request.getParameter("password");
System.out.println("userid:" + userid + ",password:" + password);
String sql = "select username from tuser where userid=? and userpwd=?";
/*这是定义输入语句的标准格式,?部分可以用sql.setDataType(number,content),DataType
表示?表示的数据类型,比如String,number表示问号的次序,1表示第一个?的位置,如下所示*/
%>
<%
try {
Class.forName(DriverName);
conn = DriverManager.getConnection(DBURL, DBUser, DBPwd);
PreparedStatement pf = conn.prepareStatement(sql);
pf.setString(1, userid);
pf.setString(2, password);
ResultSet result = pf.executeQuery();
/*上述代码用来连接数据库以及从数据库的指定表搜索满足要求的数据,
用ResultSet记录搜索结果*/
if (!result.next()) {
flag = false;
} else {
flag = true;
}
/*通过检验result中是否为空来设置flag的值*/
} catch (Exception ex) {
ex.printStackTrace();
}
%>
<%
try {
conn.close();
} catch (Exception ex) {
ex.printStackTrace();
}
%>
<%
if (flag) {
%>
<jsp:forward page="success.jsp" />
<%
}
%>
<%
if (!flag) {
%>
<jsp:forward page="failure.jsp" />
<%
}
%>
<!--根据flag的值决定往那个界面跳转,若成功跳转向"success.jsp",若
若失败跳转向"failure.jsp" -->
</body>
</html>

success.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">
<title>SuccessPage</title>
</head>
<body>
<p>登录成功</p>
</body>
</html>


failure.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">
<title>FailurePage</title>
</head>
<body>
<p>密码或用户名错误</p>
<a href="login.html">请重新登录</a>
</body>
</html>


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: