`

JSP复习笔记——第10章 连接数据库 之 使用JSP基于数据库完成用户登陆程序

阅读更多

使用JSP基于数据库完成用户登陆程序
使用Statement存在安全问题:SQL注入漏洞
select * from person where name="darkness" and password="wind" or "1"="1"
密码:wind" or "1"="1
---------------person.sql----------------------
DROP TABLE person ;

CREATE TABLE person 
(
	id varchar(20) not null primary key ,
	name varchar(20) not null ,
	password varchar(20) 
) ;

INSERT INTO person (id,name,password) VALUES ('darkness','wind','ffffff') ;
INSERT INTO person (id,name,password) VALUES ('cloud','sky','wind') ;

-- 提交事务
commit ;

--------------------login.jsp-------------
<%@page contentType="text/html;charset=gb2312"%>
<html>
<head>
	<title>登陆</title>
</head>
<body>
<center>
	<h1>登陆范例——用户名及密码固定</h1>
	<hr>
	<br>
	<br>
	<form action="login_conf.jsp" method="post">
	<table>
		<tr>
			<td colspan="2">用户登陆</td>
		</tr>
		<tr>
			<td>用户名:</td>
			<td><input type="text" name="uname"></td>
		</tr>
		<tr>
			<td>密&nbsp;&nbsp;码:</td>
			<td><input type="password" name="upassword"></td>
		</tr>
		<tr>
			<td colspan="2">
			<input type="submit" value="登陆">
			<input type="reset" value="重置">
			</td>
		</tr>
	</table>
	</form>
</center>
</body>
</html>

-----------------------login_conf.jsp------------
<%@ page contentType="text/html;charset=gb2312"%>
<%-- 导入java.sql包,表示要使用数据库操作 --%>
<%@ page import="java.sql.*"%>
<html>
<head>
	<title>登陆</title>
</head>
<body>
<center>
	<h1>登陆范例——用户名及密码固定</h1>
	<hr>
	<br>
	<br>
	<%
		// 接收请求的内容
		String name = request.getParameter("uname") ;
		String password = request.getParameter("upassword") ;

		// 定义变量,如果用户是合法用户,则将此标记变为true
		boolean flag = false ;
	%>
	<%
		// 定义数据库操作的常量、对象
		// 数据库驱动程序
		final String DBDRIVER	= "oracle.jdbc.driver.OracleDriver" ;
		// 数据库连接地址
		final String DBURL		= "jdbc:oracle:thin:@localhost:1521:sky" ;
		// 数据库用户名
		final String DBUSER		= "scott" ;
		// 数据库连接密码
		final String DBPASSWORD	= "darkness" ;
		// 声明一个数据库连接对象
		Connection conn			= null ;
		// 声明一个数据库操作对象
		PreparedStatement pstmt	= null ;
		// 声明一个结果集对象
		ResultSet rs			= null ;
		// 声明一个SQL变量,用于保存SQL语句
		String sql = null ;
	%>
	<%
		// 进行数据库操作
		try {
			// 编写SQL语句
			sql = "SELECT name FROM person WHERE id=? and password=?" ;
			// 加载驱动程序
			Class.forName(DBDRIVER) ; 
			// 连接数据库
			conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
			// 实例化数据库操作对象
			pstmt = conn.prepareStatement(sql) ;
			// 设置pstmt的内容
			pstmt.setString(1,name) ;
			pstmt.setString(2,password) ;
			// 查询记录
			rs = pstmt.executeQuery() ;
			// 判断是否有记录
			if(rs.next())
			{
				// 如果有记录,则执行此段代码
				// 用户是合法的,可以登陆
				flag = true ;
			}
			// 依次关闭
			rs.close() ;
			pstmt.close() ;
			conn.close() ;
		}catch(Exception e){
}
	%>
	<%
		// 判断用户名及密码
		if(flag) {
			// 合法用户
	%>
			<jsp:forward page="login_success.jsp"/>
	<%
		} else {
			// 非法用户
	%>
			<jsp:forward page="login_failure.jsp"/>
	<%
		}
	%>
</center>
</body>
</html>

----------------------login_success.jsp-------------
<%@page contentType="text/html;charset=gb2312"%>
<html>
<head>
	<title>登陆</title>
</head>
<body>
<center>
	<h1>登陆范例——用户名及密码固定</h1>
	<hr>
	<br>
	<br>
	<h2>登陆成功</h2>
	<h3>欢迎<font color="red" size="15">
		<%=request.getParameter("uname")%>
	</font>光临!!!</h3>
</center>
</body>
</html>
------------------login_failure.jsp-------------
<%@page contentType="text/html;charset=gb2312"%>
<html>
<head>
	<title>登陆</title>
</head>
<body>
<center>
	<h1>登陆范例——用户名及密码固定</h1>
	<hr>
	<br>
	<br>
	<h2>登陆失败</h2>
	<h3>错误的用户名及密码!!!</h3>
	<a href="login.jsp">重新登陆</a>
</center>
</body>
</html>

分享到:
评论

相关推荐

    JSP复习笔记——第10章 连接数据库 之 JDBC相关 - 堕落天使 - JavaEye技术网站.mht

    JSP复习笔记——第10章 连接数据库 之 JDBC相关 - 堕落天使 - JavaEye技术网站.mhtJSP复习笔记——第10章 连接数据库 之 JDBC相关 - 堕落天使 - JavaEye技术网站.mht

    使用jsp基于数据库完成用户登陆程序

    在本文中,我们将深入探讨如何使用JavaServer Pages (JSP)技术结合数据库来构建一个用户登录程序,这对于初学者来说是一次很好的学习实践。JSP是Java平台上的动态网页技术,它允许开发者将HTML代码与Java代码混合...

    使用JSP基于数据库完成用户登陆(代码+笔记)_java_

    在本项目中,我们将探讨如何使用Java Server Pages (JSP)技术来实现一个基于数据库的用户登录系统。这个系统的核心是通过JSP页面与后台数据库交互,验证用户的用户名和密码,确保只有合法用户能够访问受保护的资源。...

    使用JSP基于数据库完成用户登陆(代码+笔记)

    总结起来,使用JSP基于数据库完成用户登录涉及到前端表单设计、后端处理逻辑编写、数据库连接与查询以及安全性控制等多个环节。通过理解并掌握这些知识点,开发者可以构建出一个完整的用户登录系统。在实际项目中,...

    jsp毕业设计——JSP数据库连接池的研究与实现(源代码+论文).zip

    本项目“JSP毕业设计——JSP数据库连接池的研究与实现”显然聚焦于如何高效地管理和使用数据库资源,特别是通过数据库连接池来优化性能。 数据库连接池是现代Web应用中一个关键的组件,它的核心功能是管理数据库...

    dreamweaver编写jsp时连接数据库

    7. **关闭连接**:完成数据库操作后,记得关闭连接以释放资源: ```jsp if (conn != null) { conn.close(); } ``` 8. **测试与调试**:保存JSP文件并在Dreamweaver中运行,查看浏览器中的输出,确认是否成功...

    JSP的连接数据库并修改数据库代码

    本文将深入探讨如何使用JSP来连接数据库,并基于此修改数据库内容的关键知识点。 ### 1. JSP与数据库连接 在JSP页面中,连接数据库是通过Java Database Connectivity (JDBC) API完成的。JDBC为Java应用程序提供了...

    JSP连接数据库的简易登陆界面

    **JSP连接数据库的简易登陆界面** 在网页开发中,JSP(JavaServer Pages)是一种动态网页技术,常用于构建Web应用程序。本项目是关于如何使用JSP来创建一个简单的登录界面,它与SQL Server 2008数据库进行交互,以...

    jsp连接数据库代码大全.pdf

    JSP 连接数据库代码大全 本文档提供了 JSP 连接 Oracle、SQL Server 和 DB2 数据库的完整代码示例,旨在帮助初学者学习 JSP 连接数据库的基本知识。下面是对标题、描述、标签和部分内容的详细解释。 一、JSP 连接 ...

    jsp连接数据库连接池代码示例

    3. **释放连接**:在完成数据库操作后,不应直接关闭连接,而是将其归还给连接池,以便后续请求可以复用。 4. **管理连接**:连接池还需要负责监控连接状态,如超时、空闲时间过长的连接可以被回收,确保连接池的...

    JSP连接数据库大全

    JSP连接数据库大全JSP连接数据库大全JSP连接数据库大全JSP连接数据库大全JSP连接数据库大全JSP连接数据库大全

    JSP基于数据库完成用户登陆(代码 笔记).rar

    JSP基于数据库完成用户登陆(代码 笔记),内容:基于Oracle数据库和JDBC技术,在之前的范例上进行进一步修改使用户的信息在数据库中进行验证。程序功能:完成用户登录功能,用户名及密码保存在数据库之中,使用数据库...

    JSP基于数据库完成用户登陆程序

    本示例主要讲解了如何使用JSP(JavaServer Pages)结合数据库实现一个简单的用户登录功能。这个程序由四个JSP页面组成,分别是: 1. login.jsp:这是用户登录的页面,用户输入用户名和密码后,通过POST方法提交到...

    Jsp程序设计——交友网站

    **JSP程序设计——交友网站** 本项目是一个基于JSP技术构建的交友网站,它源自于张跃平的JSP程序设计课程中的实例,并经过个人的深入修改和扩展,增加了更多的功能,使得整个系统更加完善且可以直接运行。下面将...

    在JSP中使用数据库实验报告

    【在JSP中使用数据库实验报告】 实验报告的目的是让学生熟悉如何在JavaServer Pages (JSP)中与数据库进行交互,特别是使用Java Database Connectivity (JDBC)技术。实验涵盖了多种数据库操作,包括查询、更新、添加...

    JSP操作数据库,实现新用户注册和用户登录功能

    在这个例子中,由于使用了文本文件来模拟数据库存储,所以数据的验证是通过读取文本文件中的内容并与用户的输入进行匹配来完成的。如果找到匹配的用户名和密码,`rightuser`被设置为`true`。 在实际的应用中,通常...

    jsp连接mysql数据库登录

    在本文中,我们将深入探讨如何使用JSP(JavaServer Pages)连接MySQL数据库来实现一个简单的登录界面。这个过程包括前端的HTML和JavaScript验证,以及后端的Java代码处理与数据库的交互。 首先,JSP是一种动态网页...

    JSP实现登录注册连接MySql数据库-初学

    连接到MySQL数据库,我们需要引入JDBC(Java Database Connectivity)驱动,这通常在JSP头部通过`&lt;%@ page...%&gt;`指令完成。例如: ```jsp *" %&gt; ;charset=UTF-8" language="java" %&gt; ``` 接着,我们需要在JSP中...

    jsp+Mysql实现用户登录,含数据库

    本项目通过结合JSP(JavaServer Pages)和MySQL数据库实现了这样一个系统,旨在为不同身份的用户提供安全的登录功能。以下将详细讲解该项目涉及的技术点和实现流程。 1. **JSP**:JSP是一种动态网页技术,它允许...

Global site tag (gtag.js) - Google Analytics