分享

JSP JDBC SQLSERVER2000用户登录验证实例

 Ethan的博客 2010-12-27
第一次纯用jsp来实现用户登录的功能,刚开始想使用存储过程来传递页面参数到数据库来验证,但最终不熟悉jsp的参数传递使用,因此放弃。

    在此用的jsp连sql2000来实现数据库验证前台输入的用户名密码是否正确。

1、开发准备

下载Microsoft SQL Server 2000 Driver for JDBC 的jar包,在环境变量中加入path即可,同时下载的三个jar包放到工程的lib下

这里用sql2000自带的Northwind数据库中Customers表为示例,本例子把CustomerID 作为用户名,把CompanyName作为密码来验证。

2、开发说明

本例子使用用了三个jsp页面来实现用户登录的功能

login.jsp 用户输入界面

logincheck.jsp  具体验证逻辑页面

ok.jsp 登录成功结果页面

3、login.jsp

 该页面主要是通过表单把输入框的值提交到tomcat后台,然后后台把值传给logincheck.jsp来验证数据库中是否存在这样的记录

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>login.html</title>
<script language="javaScript" >

//首先判断输入的是否是空值,不是则提交
function checkstr()
{
 if(document.getElementById("CustomerID").value==""){
  alert("用户名不能为空!");    
      return false;    }
    if(document.getElementById("CompanyName").value==""){
     alert("密码不能为空!");     
     return false;    }
      form.submit();

</script>
</head>
<body>
<table width="1000" border="0" cellspacing="0" cellpadding="0">
<tr>
    <td ><form name="form" method="post" action="logincheck.jsp">
        <table width="563" height="100" border="0" bordercolor="#FF9900">
          <tr>
            <td width="148" align="center"> </td>
            <td width="121" height="35" align="center">  用户名:</td>
            <td width="280" align="left" >
              <input name="CustomerID" type="text" maxlength="13" ></td>
          </tr>
          <tr>
            <td align="center"> </td>
            <td align="center">密  码:</td>
            <td align="left">
              <input name="CompanyName" type="password" size="60" maxlength="60" ></td>
          </tr>
          <tr align="center" valign="bottom">
            <td height="32" colspan="3"><input name="login" type="button" value="登陆" onClick="checkstr()">
             </td>
          </tr>
        </table>
    </form></td>
</tr>
</table>
</body>
</html>

4.logincheck.jsp

本页面负责处理后台传来的值,做验证

<%@ page contentType="text/html; charset=gb2312" language="java" %>
<html>
<head>
<title>logincheck.jsp</title>
</head>
<%@ page import="java.sql.*"%>

<body>
<%  

//获取表单中变量的值

String CustomerID=(String)request.getParameter("CustomerID");
String CompanyName=(String)request.getParameter("CompanyName");

//可以打印一下看看后台是否传过来了

System.out.println("CustomerID:"+CustomerID);
System.out.println("CompanyName:"+CompanyName);
try{

 //首先定义连接数据的用户名和密码
   String dbname="sa";
   String dbpass="sa";
   //定义jdbc的连接驱动
   String url="jdbc:microsoft:sqlserver://127.0.0.1;DatabaseName=Northwind";
   Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
    Connection conn = DriverManager.getConnection(url, dbname, dbpass);
    //定义查询语句   
   String sqls="select * from Customers where CustomerID='"+CustomerID+"' and CompanyName='"+CompanyName+"'";     
     //执行查询语句
     Statement stmt = conn.createStatement();        
     ResultSet rs = stmt.executeQuery(sqls);
     if(null == rs){

//测试查询为空
      System.out.println("null!!!!!!!!!!!!!!!");
     }

//k为查询到的记录数     
     int k=0;
     if(rs.next()){
      k=k+1;
     }
  //如果查询记录数大于0则跳转到ok.jsp,否则重新回到输入页面
     if(k>0)  {
      response.sendRedirect("ok.jsp");
      }
    else{
      response.sendRedirect("login.jsp");   
      }     
     conn.close();    
}catch(Exception e){
out.println(e.toString());
}
%>
</body>
</html>

5.ok.jsp

测试验证是否成功

<%@ page contentType="text/html; charset=gb2312" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>ok</title>
</head>
<body>
<p>成功登陆!</p>
</body>
</html>

6.启动tomcat测试一下程序结果。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约