`
zhangjingqiang
  • 浏览: 71697 次
  • 性别: Icon_minigender_1
  • 来自: 东京
社区版块
存档分类
最新评论

JDBC登录

    博客分类:
  • Java
阅读更多

LoginCheckServlet.java

package chap05svlt;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.codec.digest.DigestUtils;

public class LoginCheckServlet extends HttpServlet {

	private void loadJDBCDriver() throws ServletException {
		try {
			Class.forName("org.postgresql.Driver");
		} catch (ClassNotFoundException e) {
			throw new ServletException(e);
		}
	}

	private Connection getConnection() throws ServletException {
		try {
			return( DriverManager.getConnection(
					"jdbc:postgresql://localhost:5432/BookStore", "okada",
					"okada") );
		} catch (SQLException e) {
			throw new ServletException(e);
		}
	}

	private void closeConnection(Connection con) {
		try {
			con.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	private static String getStringDigest( String inString ){
		return( DigestUtils.md5Hex( inString + "digested" ) );
	}
	
	private void forward( String dest,
						    HttpServletRequest	request,
						    HttpServletResponse	response)
						throws ServletException, IOException {
		getServletContext().getRequestDispatcher(dest).forward(request, response);
	}

	public void init() throws ServletException {
		loadJDBCDriver();
	}

	protected void doPost( HttpServletRequest	request,
							 HttpServletResponse response)
						throws ServletException, IOException {

		String account = request.getParameter("account");
		String password = request.getParameter("password");

		String password_db;
		String email;
		String name;

		Connection con = getConnection();
		try {
			PreparedStatement ps = con.prepareStatement(
					"select * from t_customer where uid like ?;");
			ps.setString(1, account);
			
			ResultSet rs = ps.executeQuery();
			if (!rs.next()) {
				throw new ServletException("no account");
			}

			password_db = rs.getString("passwordmd5");
			email = rs.getString("email");
			name = rs.getString("name");
			
			if (rs.next()) {
				throw new ServletException("too many accounts found");
			}
			rs.close();
			ps.close();

		} catch (SQLException e) {
			throw new ServletException(e);
		} finally {
			closeConnection(con);
		}

		if (password_db.equals( getStringDigest(password) )) {
			request.setAttribute("email", email);
			request.setAttribute("name", name);
			forward("/result.jsp", request, response);			
		} else {
			forward("/index.html", request, response);
		}
	}
}

index.html

<html>
<head></head>
<body>

ユーザID、パスワードを入力してください。<br>
<br>

<form action="/Chap05Svlt/LoginCheckServlet" method="POST">
	ユーザID: <input type="text" name="account">		<br>
	パスワード: <input type="password" name="password">	<br>
	
	<input type="submit" value="submit">
</form>

</body>
</html>

result.jsp

<%@ page language="java" contentType="text/html;charset=Windows-31J" %>
<html>
<head>
	<title></title>
</head>
<body>
あなたは、 <br>
氏名: <%= request.getAttribute( "name" ) %> <br>
アカウント: <%= request.getParameter( "account" ) %><br>
E-Mail: <%= request.getAttribute( "email" ) %> <br>

<a href="/Chap05Svlt/index.html">トップ</a>へ戻る。
</body>
</html>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>Chap05Svlt</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <display-name>LoginCheckServlet</display-name>
    <servlet-name>LoginCheckServlet</servlet-name>
    <servlet-class>chap05svlt.LoginCheckServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>LoginCheckServlet</servlet-name>
    <url-pattern>/LoginCheckServlet</url-pattern>
  </servlet-mapping>
</web-app>

所需类包:

commons-codec-1.3.jar

postgresql-8.3-603.jdbc3.jar

代码来自日本的技术图书http://www.shuwasystem.co.jp/products/7980html/2197.html

分享到:
评论

相关推荐

    JDBC.rar_jdbc登录_jdbc登录注册

    在"JDBC.rar_jdbc登录_jdbc登录注册"这个项目中,主要涉及的是使用JDBC实现用户登录和注册的功能。以下将详细介绍如何利用JDBC进行这些操作: 1. **数据库连接**:首先,我们需要加载数据库驱动并建立到数据库的...

    Servlet和jdbc登录示例

    在这个“Servlet和JDBC登录示例”中,我们将探讨如何使用这两项技术实现一个简单的用户登录系统。 首先,我们需要创建数据库表结构。在logindemo.sql文件中,可能包含了创建用户表的SQL语句。通常,一个用户表可能...

    JDBC 登录校验

    以下是关于JDBC登录校验的详细知识点: 1. **JDBC驱动**:连接数据库的第一步是加载合适的JDBC驱动。不同的数据库厂商提供了不同的驱动,例如MySQL的Connector/J,Oracle的ojdbc,都需要在程序启动时通过`Class.for...

    Servlet和jdbc登录示例源代码(内附数据库脚本)

    在这个登录示例源代码中,我们将探讨如何使用Servlet作为控制器,JDBC作为数据访问层来实现用户登录功能。同时,提供的数据库脚本用于创建存储用户信息的数据表。 Servlet是Java平台上的一个标准接口,它允许我们...

    JDBC实现用户登录功能

    本教程将详细讲解如何利用JDBC实现用户登录功能,并在用户成功登录后显示其个人信息。 首先,我们需要了解JDBC的基本概念。JDBC是Java API,它为Java程序提供了一个标准的接口,用来访问各种类型的数据库。使用JDBC...

    JSP+JDBC实现登录注册

    以下是实现JSP+JDBC登录注册系统的步骤: 1. **数据库设计**:首先,我们需要设计一个用户表,包含字段如`username`(用户名)、`password`(密码,通常需要加密存储)、`email`(邮箱)等。可以使用SQL语句创建该...

    Spring+Spring MVC+Spring JDBC+MySql实现简单登录注册

    在本项目中,我们主要利用Spring框架,包括其核心模块Spring、MVC模块Spring MVC以及数据访问/集成模块Spring JDBC,结合MySQL数据库来构建一个基础的登录注册系统。以下是这个项目涉及的关键技术点: 1. **Spring...

    JDBC_用户登录案例_前端页面.zip

    综上所述,JDBC 用户登录案例涵盖了数据库连接、SQL 查询、用户认证等多个关键环节,涉及到了 Java 与数据库的交互、前端与后端的通信以及基本的网页设计。这些知识对于开发基于 Java 的 Web 应用程序至关重要。

    jsp+jdbc+servlet登陆完整程序和注解

    结合以上知识点,这个压缩包可能包含了一个使用JSP创建的登录界面,Servlet负责处理登录逻辑,JDBC用于与数据库交互,进行用户验证。同时,代码中可能使用了大量的注解来简化配置和提高可读性。为了更好地理解和使用...

    JSP + JDBC 登陆系统 登陆界面处理界面成功界面失败界面注销界面(有数据库版)

    **JSP + JDBC 登录系统详解** 在Java Web开发中,JSP(JavaServer Pages)和JDBC(Java Database Connectivity)是两个核心组件,用于构建动态网页和与数据库交互。本项目是一个基于JSP和JDBC实现的登录系统,包含...

    jsp+servlet+jdbc注册登录入门项目

    本项目是一个基于JSP、Servlet和JDBC技术的简单注册登录系统,旨在帮助初学者快速理解和掌握这些核心技术在实际开发中的应用。在这个项目中,开发者将使用MySQL作为后端数据库,创建一个名为`test`的数据库,并在...

    运用JDBC实现一个注册登录系统的编写

    本文将深入探讨如何运用JDBC来构建一个简单的注册登录系统,旨在帮助初学者理解JDBC的核心概念以及在实际应用中的操作流程。 首先,我们需要了解JDBC的基本组件。JDBC驱动程序是连接Java应用程序和数据库的关键,...

    Jsp+Servlet+JavaBean+JDBC简单登录实例

    **JSP+Servlet+JavaBean+JDBC简单登录实例详解** 在Web开发中,构建一个用户登录系统是常见的需求。本实例将详细讲解如何利用JavaServer Pages (JSP)、Servlet、JavaBean以及Java Database Connectivity (JDBC) 来...

    JSP+Servlet + JDBC+MySQL 注册和登录

    在这个项目中,“JSP+Servlet + JDBC+MySQL 注册和登录”就是一个典型的技术栈,用于实现这样的系统。下面我们将深入探讨这四个技术组件及其在实现注册和登录功能中的作用。 1. **JSP(JavaServer Pages)**:JSP是...

    EJB实验报告。实验一:使用Session Bean和JDBC技术完成登录和注册功能

    3. 创建LoginBean类,实现Login接口,提供登录功能,利用JDBC连接数据库,查询用户信息。 4. 设计并实现注册接口Register接口,定义一个名为addUser的抽象方法,用于添加新用户到数据库。 5. 创建RegisterBean类,...

    JDBC详解 JDBC详解

    DriverManager 类也处理诸如驱动程序登录时间限制及登录和跟踪消息的显示等事务。对于简单的应用程序,一般程序员需要在此类中直接使用的唯一方法是 DriverManager.getConnection,该方法将建立与数据库的连接。 ...

    sap JDBC数据源配置

    5. **配置数据源属性**:设置数据源名称、驱动程序路径、JDBC URL 和登录凭据等。 6. **保存并测试连接**:完成配置后,保存设置,并测试连接以确保一切正常。 ##### 使用 Console Administrator 创建 JDBC 2.0 ...

    最简单的用户登录与注册系统 spring mvc spring jdbc

    这个项目是一个基于Spring MVC和Spring JDBC的简单用户管理应用,旨在帮助初学者理解如何在实际开发中实现用户登录、注册以及信息修改功能。Spring MVC是Spring框架的一个模块,主要用于构建Web应用程序,而Spring ...

    jdbc数据库登录系统.rar

    标题中的“jdbc数据库登录系统.rar”表明这是一个使用Java编程语言,并通过JDBC(Java Database Connectivity)技术实现的数据库登录系统。JDBC是Java标准库的一部分,它为Java开发者提供了与各种数据库进行交互的...

Global site tag (gtag.js) - Google Analytics