昨天夜里csdn 可能在维护博客更新不了
大家好,为了工具我之前学习过的jsp基础,这一集做一个用户登录的demo。主要用到jdbc(数据库为sqlserver)+jsp,很简单,本节不对jdbc做过多介绍。
首先看一下目录结构
csdn上传图片出现问题了。以后再修改吧!
登录流程:1.用户在login.html页面输入用户名和密码
2.点击提交,提交表单到login_check.jsp页面
3.login_check.jsp页面接收到表单数据,访问数据库,如果存在对应的用户名密码,则跳转到login_success.jsp 否则跳转到login_failed.html
代码:
login.html页面代码
<!DOCTYPE html PUBLIC"-//W3C//DTDHTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<metahttp-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<formaction="login_check.jsp">
<table>
<tr>
<td>用户名:</td>
<td><inputname="userName" type="text" /></td>
</tr>
<tr>
<td>密码:</td>
<td><inputname="password" type="text" /></td>
</tr>
<tr>
<td><inputtype="reset" value="重置" /></td>
<td><inputvalue="登录" type="submit"/></td>
</tr>
</table>
</form>
</body>
</html>
login_check.jsp页面代码
<%@ pagelanguage="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ page import="java.sql.*"%>
<!DOCTYPE html PUBLIC"-//W3C//DTDHTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<metahttp-equiv="Content-Type" content="text/html;charset=GB18030">
<title>Insert titlehere</title>
</head>
<body>
<%
StringdbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=SocketServer";
StringdbUserName = "sa";
StringdbPassword = "123";
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
.newInstance();
Connectioncon = DriverManager.getConnection(dbURL, dbUserName,
dbPassword);
Stringsql = "select * from workuser where username=? and password=?";
PreparedStatementpstmt = con.prepareStatement(sql);
pstmt.setString(1,request.getParameter("userName"));
pstmt.setString(2,request.getParameter("password"));
ResultSetrs = pstmt.executeQuery();
if(rs != null) {
if(rs.next()) {//有数据,表示登录成功
Stringname = rs.getString(1);
%>
<jsp:forwardpage="login_success.jsp">
<jsp:paramvalue="<%=name%>" name="userName" />
</jsp:forward>
<%
}else {
%>
<jsp:forwardpage="login_failed.jsp"></jsp:forward>
<%
}
}else {//没有数据,登录失败
%>
<jsp:forwardpage="login_failed.jsp"></jsp:forward>
<%
}
%>
</body>
</html>
login_success.jsp页面代码
<%@ pagelanguage="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC"-//W3C//DTDHTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<metahttp-equiv="Content-Type" content="text/html;charset=GB18030">
<title>Insert titlehere</title>
</head>
<body>
<h1>登录成功,欢迎<%= request.getParameter("userName")%>光临</h1>
</body>
</html>
login_failed.html页面代码
<%@ pagelanguage="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC"-//W3C//DTDHTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type"content="text/html; charset=GB18030">
<title>Insert titlehere</title>
</head>
<body>
<h1>登录失败</h1>
<ahref="login.html">重新登录</a>
</body>
</html>
总结:jsp中接收表单数据使用request.getParameter()方法
jsp服务器端跳转并传递参数用:<jsp:forwardpage=""><jsp:param value=""name=""/></jsp:forward>
jsp的标签指令和scriptlet指令混合使用时,标签指令必须放在<%%>指令外面不可以交叉