WEB登录验证和数据库连接的一个例子

  WEB登录验证和数据库连接的一个例子

第一步:先有HTML文件编写好登录页面:一个login.jsp文件代码如下:

  1. <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
  2. <%
  3. String path = request.getContextPath();
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  5. %>
  6. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  7. <html>
  8.   <head>
  9.     <base href="<%=basePath%>"> 
  10.     <title>My JSP 'login.jsp' starting page</title>
  11.   </head>
  12.   
  13.   <body>
  14.    <form name ="loginForm" method = "post" action="logintest1">
  15.    <table>
  16.    <tr>
  17.    <td><div align="right">User Name:</div></td>
  18.    <td><input type = "text" name = "username"></td></tr>
  19.     <tr>
  20.    <td><div align="right">Password:</div></td>
  21.    <td><input type = "password" name = "password"></td></tr>
  22.      <tr>
  23.      <td></td>
  24.      <td><input type = "Submit" name = "Submit" value="Submit"></td></tr>
  25.       </table>
  26.    </form>
  27.   </body>
  28. </html>

    第二步:设计Microsoft Access数据库login.mdb,添加表user,有user,password两列数据.设计后之后添加数据行,在WINDOWS提供的一个数据管理工具数据源(ODBC)中添加Access数据源.名为login.

    第三步:设计数据处理类,LoginCheck.java,代码如下:

  1. package logincheck;
  2. import java.io.*;
  3. import java.sql.*;
  4. import javax.servlet.*;
  5. import javax.servlet.http.*;
  6. import com.sun.corba.se.pept.transport.Connection;
  7. public class LoginCheck extends HttpServlet
  8. {
  9.     public void doGet(HttpServletRequest request, HttpServletResponse response)
  10.             throws ServletException, IOException
  11.     {
  12.         // If it is a get request forward to doPost()
  13.         doPost(request, response);
  14.     }
  15.     /* (non-Javadoc)
  16.      * @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
  17.      */
  18.     public void doPost(HttpServletRequest request, HttpServletResponse response)
  19.             throws ServletException, IOException
  20.     {
  21.         java.sql.Connection conn;
  22.         String diver = "sun.jdbc.odbc.JdbcOdbcDriver";
  23.         String url = "jdbc:odbc:login";
  24.         // Get the username from the request
  25.         String user = request.getParameter("username");
  26.         // Get the password from the request
  27.         String password = request.getParameter("password");
  28.         response.setCharacterEncoding("GB2312");
  29.         //String sqlstr = "select * from user where user ='"+user+ "' and password ='"+password+"'";
  30.         String sqlstr = "select * from user where user =? and password =?";
  31.         ResultSet result;
  32.         PrintWriter out;
  33.         try
  34.         {
  35.             try
  36.             {
  37.                 Class.forName(diver);
  38.             } catch (ClassNotFoundException e)
  39.             {
  40.                 // TODO Auto-generated catch block
  41.                 e.printStackTrace();
  42.             }
  43.             conn = DriverManager.getConnection(url);
  44.             PreparedStatement pstmt = conn.prepareStatement(sqlstr);
  45.             //System.out.println(password);
  46.             pstmt.setString(1, user);
  47.             pstmt.setString(2, password);
  48.             result = pstmt.executeQuery();
  49.             
  50.             response.setContentType("text/html;charset = GB2312");
  51.             // write html page.
  52.             out = response.getWriter();
  53.             
  54.             String title = "HelloServlet";
  55.             String heading1 = "This is output from HelloServlet by doPost:";
  56.             
  57.             out.print("<HTML><HEAD><TITLE>" + title + "</TITLE>");
  58.             out.print("</HEAD><BODY>");
  59.             out.print(heading1);
  60.             if (result.next())
  61.             {
  62.                 out.print("<h1><p>" + user + ":您好,你已经成功登录!</h1>");
  63.             }else
  64.             {
  65.                 out.print("<h1><p>"+ user+ " 这个用户不存在或者密码错误!</上>");
  66.             }
  67.             
  68.             out.print("</BODY></HTML>");
  69.             out.close();
  70.         } catch (SQLException e)
  71.         {
  72.             // TODO Auto-generated catch block
  73.             e.printStackTrace();
  74.         }
  75.     
  76.     }
  77.     public void destroy()
  78.     {
  79.     }
  80. }

最后,配置一下WEB.XML文件;添加如下

 <welcome-file-list>
  <welcome-file>login.jsp</welcome-file>
 </welcome-file-list>

<!-- logincheck connection -->
 <servlet>
  <servlet-name>login</servlet-name>
  <servlet-class>logincheck.LoginCheck</servlet-class>
 </servlet>

 <servlet-mapping>
  <servlet-name>login</servlet-name>
  <url-pattern>/logintest1</url-pattern>
 </servlet-mapping>

其中logincheck是LoginCheck.java所在的包,logintest1是登录页面的ACTION,login.jsp是启动页面.

启动Tomcat服务器,在浏览器中输入URL:http://localhost:8088/helloApp/login.jsp即可!!!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值