- 浏览: 98434 次
- 性别:
- 来自: 北京
文章分类
最新评论
使用JSP基于数据库完成用户登陆程序
使用Statement存在安全问题:SQL注入漏洞
select * from person where name="darkness" and password="wind" or "1"="1"
密码:wind" or "1"="1
Java代码
1.---------------person.sql----------------------
2.DROP TABLE person ;
3.
4.CREATE TABLE person
5.(
6. id varchar(20) not null primary key ,
7. name varchar(20) not null ,
8. password varchar(20)
9.) ;
10.
11.INSERT INTO person (id,name,password) VALUES ('darkness','wind','ffffff') ;
12.INSERT INTO person (id,name,password) VALUES ('cloud','sky','wind') ;
13.
14.-- 提交事务
15.commit ;
---------------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 ;
Java代码
1.--------------------login.jsp-------------
2.<%@page contentType="text/html;charset=gb2312"%>
3.<html>
4.<head>
5. <title>登陆</title>
6.</head>
7.<body>
8.<center>
9. <h1>登陆范例——用户名及密码固定</h1>
10. <hr>
11. <br>
12. <br>
13. <form action="login_conf.jsp" method="post">
14. <table>
15. <tr>
16. <td colspan="2">用户登陆</td>
17. </tr>
18. <tr>
19. <td>用户名:</td>
20. <td><input type="text" name="uname"></td>
21. </tr>
22. <tr>
23. <td>密 码:</td>
24. <td><input type="password" name="upassword"></td>
25. </tr>
26. <tr>
27. <td colspan="2">
28. <input type="submit" value="登陆">
29. <input type="reset" value="重置">
30. </td>
31. </tr>
32. </table>
33. </form>
34.</center>
35.</body>
36.</html>
--------------------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>密 码:</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>
Java代码
1.-----------------------login_conf.jsp------------
2.<%@ page contentType="text/html;charset=gb2312"%>
3.<%-- 导入java.sql包,表示要使用数据库操作 --%>
4.<%@ page import="java.sql.*"%>
5.<html>
6.<head>
7. <title>登陆</title>
8.</head>
9.<body>
10.<center>
11. <h1>登陆范例——用户名及密码固定</h1>
12. <hr>
13. <br>
14. <br>
15. <%
16. // 接收请求的内容
17. String name = request.getParameter("uname") ;
18. String password = request.getParameter("upassword") ;
19.
20. // 定义变量,如果用户是合法用户,则将此标记变为true
21. boolean flag = false ;
22. %>
23. <%
24. // 定义数据库操作的常量、对象
25. // 数据库驱动程序
26. final String DBDRIVER = "oracle.jdbc.driver.OracleDriver" ;
27. // 数据库连接地址
28. final String DBURL = "jdbc:oracle:thin:@localhost:1521:sky" ;
29. // 数据库用户名
30. final String DBUSER = "scott" ;
31. // 数据库连接密码
32. final String DBPASSWORD = "darkness" ;
33. // 声明一个数据库连接对象
34. Connection conn = null ;
35. // 声明一个数据库操作对象
36. PreparedStatement pstmt = null ;
37. // 声明一个结果集对象
38. ResultSet rs = null ;
39. // 声明一个SQL变量,用于保存SQL语句
40. String sql = null ;
41. %>
42. <%
43. // 进行数据库操作
44. try {
45. // 编写SQL语句
46. sql = "SELECT name FROM person WHERE id=? and password=?" ;
47. // 加载驱动程序
48. Class.forName(DBDRIVER) ;
49. // 连接数据库
50. conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
51. // 实例化数据库操作对象
52. pstmt = conn.prepareStatement(sql) ;
53. // 设置pstmt的内容
54. pstmt.setString(1,name) ;
55. pstmt.setString(2,password) ;
56. // 查询记录
57. rs = pstmt.executeQuery() ;
58. // 判断是否有记录
59. if(rs.next())
60. {
61. // 如果有记录,则执行此段代码
62. // 用户是合法的,可以登陆
63. flag = true ;
64. }
65. // 依次关闭
66. rs.close() ;
67. pstmt.close() ;
68. conn.close() ;
69. }catch(Exception e){
70.}
71. %>
72. <%
73. // 判断用户名及密码
74. if(flag) {
75. // 合法用户
76. %>
77. <jsp:forward page="login_success.jsp"/>
78. <%
79. } else {
80. // 非法用户
81. %>
82. <jsp:forward page="login_failure.jsp"/>
83. <%
84. }
85. %>
86.</center>
87.</body>
88.</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>
Java代码
1.----------------------login_success.jsp-------------
2.<%@page contentType="text/html;charset=gb2312"%>
3.<html>
4.<head>
5. <title>登陆</title>
6.</head>
7.<body>
8.<center>
9. <h1>登陆范例——用户名及密码固定</h1>
10. <hr>
11. <br>
12. <br>
13. <h2>登陆成功</h2>
14. <h3>欢迎<font color="red" size="15">
15. <%=request.getParameter("uname")%>
16. </font>光临!!!</h3>
17.</center>
18.</body>
19.</html>
20.------------------login_failure.jsp-------------
21.<%@page contentType="text/html;charset=gb2312"%>
22.<html>
23.<head>
24. <title>登陆</title>
25.</head>
26.<body>
27.<center>
28. <h1>登陆范例——用户名及密码固定</h1>
29. <hr>
30. <br>
31. <br>
32. <h2>登陆失败</h2>
33. <h3>错误的用户名及密码!!!</h3>
34. <a href="login.jsp">重新登陆</a>
35.</center>
36.</body>
37.</html>
使用Statement存在安全问题:SQL注入漏洞
select * from person where name="darkness" and password="wind" or "1"="1"
密码:wind" or "1"="1
Java代码
1.---------------person.sql----------------------
2.DROP TABLE person ;
3.
4.CREATE TABLE person
5.(
6. id varchar(20) not null primary key ,
7. name varchar(20) not null ,
8. password varchar(20)
9.) ;
10.
11.INSERT INTO person (id,name,password) VALUES ('darkness','wind','ffffff') ;
12.INSERT INTO person (id,name,password) VALUES ('cloud','sky','wind') ;
13.
14.-- 提交事务
15.commit ;
---------------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 ;
Java代码
1.--------------------login.jsp-------------
2.<%@page contentType="text/html;charset=gb2312"%>
3.<html>
4.<head>
5. <title>登陆</title>
6.</head>
7.<body>
8.<center>
9. <h1>登陆范例——用户名及密码固定</h1>
10. <hr>
11. <br>
12. <br>
13. <form action="login_conf.jsp" method="post">
14. <table>
15. <tr>
16. <td colspan="2">用户登陆</td>
17. </tr>
18. <tr>
19. <td>用户名:</td>
20. <td><input type="text" name="uname"></td>
21. </tr>
22. <tr>
23. <td>密 码:</td>
24. <td><input type="password" name="upassword"></td>
25. </tr>
26. <tr>
27. <td colspan="2">
28. <input type="submit" value="登陆">
29. <input type="reset" value="重置">
30. </td>
31. </tr>
32. </table>
33. </form>
34.</center>
35.</body>
36.</html>
--------------------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>密 码:</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>
Java代码
1.-----------------------login_conf.jsp------------
2.<%@ page contentType="text/html;charset=gb2312"%>
3.<%-- 导入java.sql包,表示要使用数据库操作 --%>
4.<%@ page import="java.sql.*"%>
5.<html>
6.<head>
7. <title>登陆</title>
8.</head>
9.<body>
10.<center>
11. <h1>登陆范例——用户名及密码固定</h1>
12. <hr>
13. <br>
14. <br>
15. <%
16. // 接收请求的内容
17. String name = request.getParameter("uname") ;
18. String password = request.getParameter("upassword") ;
19.
20. // 定义变量,如果用户是合法用户,则将此标记变为true
21. boolean flag = false ;
22. %>
23. <%
24. // 定义数据库操作的常量、对象
25. // 数据库驱动程序
26. final String DBDRIVER = "oracle.jdbc.driver.OracleDriver" ;
27. // 数据库连接地址
28. final String DBURL = "jdbc:oracle:thin:@localhost:1521:sky" ;
29. // 数据库用户名
30. final String DBUSER = "scott" ;
31. // 数据库连接密码
32. final String DBPASSWORD = "darkness" ;
33. // 声明一个数据库连接对象
34. Connection conn = null ;
35. // 声明一个数据库操作对象
36. PreparedStatement pstmt = null ;
37. // 声明一个结果集对象
38. ResultSet rs = null ;
39. // 声明一个SQL变量,用于保存SQL语句
40. String sql = null ;
41. %>
42. <%
43. // 进行数据库操作
44. try {
45. // 编写SQL语句
46. sql = "SELECT name FROM person WHERE id=? and password=?" ;
47. // 加载驱动程序
48. Class.forName(DBDRIVER) ;
49. // 连接数据库
50. conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
51. // 实例化数据库操作对象
52. pstmt = conn.prepareStatement(sql) ;
53. // 设置pstmt的内容
54. pstmt.setString(1,name) ;
55. pstmt.setString(2,password) ;
56. // 查询记录
57. rs = pstmt.executeQuery() ;
58. // 判断是否有记录
59. if(rs.next())
60. {
61. // 如果有记录,则执行此段代码
62. // 用户是合法的,可以登陆
63. flag = true ;
64. }
65. // 依次关闭
66. rs.close() ;
67. pstmt.close() ;
68. conn.close() ;
69. }catch(Exception e){
70.}
71. %>
72. <%
73. // 判断用户名及密码
74. if(flag) {
75. // 合法用户
76. %>
77. <jsp:forward page="login_success.jsp"/>
78. <%
79. } else {
80. // 非法用户
81. %>
82. <jsp:forward page="login_failure.jsp"/>
83. <%
84. }
85. %>
86.</center>
87.</body>
88.</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>
Java代码
1.----------------------login_success.jsp-------------
2.<%@page contentType="text/html;charset=gb2312"%>
3.<html>
4.<head>
5. <title>登陆</title>
6.</head>
7.<body>
8.<center>
9. <h1>登陆范例——用户名及密码固定</h1>
10. <hr>
11. <br>
12. <br>
13. <h2>登陆成功</h2>
14. <h3>欢迎<font color="red" size="15">
15. <%=request.getParameter("uname")%>
16. </font>光临!!!</h3>
17.</center>
18.</body>
19.</html>
20.------------------login_failure.jsp-------------
21.<%@page contentType="text/html;charset=gb2312"%>
22.<html>
23.<head>
24. <title>登陆</title>
25.</head>
26.<body>
27.<center>
28. <h1>登陆范例——用户名及密码固定</h1>
29. <hr>
30. <br>
31. <br>
32. <h2>登陆失败</h2>
33. <h3>错误的用户名及密码!!!</h3>
34. <a href="login.jsp">重新登陆</a>
35.</center>
36.</body>
37.</html>
发表评论
-
JSP复习笔记——文件上传
2010-10-27 00:05 701SmartUpload主要的功能是上传文件 上传图片,可以通 ... -
JSP复习笔记——第11章 JSP 构架和MVC设计模式
2010-10-27 00:03 88011.1 JSP Model I 体系结构 11.2 J ... -
JSP复习笔记——第10章 连接数据库 之 JDBC相关
2010-10-27 00:03 606批处理: Java代码 1.import java.sq ... -
JSP复习笔记——第10章 连接数据库 之 jsp+DAO实现留言管理程序
2010-10-27 00:02 1043案例-jsp+DAO实现留言管理程序 ----------- ... -
JSP复习笔记——第10章 连接数据库 之 使用JSP+DAO完成用户登陆
2010-10-27 00:00 694使用JSP+DAO完成用户登陆 Java代码 1.im ... -
JSP复习笔记——第10章 连接数据库 之 DAO设计模式
2010-10-27 00:00 1114之前的开发可以发现以 ... -
JSP复习笔记——第10章 连接数据库 之 JSP+JDBC留言管理程序
2010-10-26 23:59 718JSP+JDBC留言管理程序 Java代码 1.-- 创 ... -
JSP复习笔记——第10章 连接数据库 之 使用数据源
2010-10-26 23:57 609JDBC基本操作过程: 打开数据库连接 操作数据库 ... -
JSP复习笔记——第10章 连接数据库 之 连接Oracle数据库
2010-10-26 23:56 676使用JDBC连接Oracle数据库: 在Tomcat中配置O ... -
JSP复习笔记——第10章 连接数据库 之 批处理
2010-10-26 23:55 701批处理: Java代码 1.< ... -
JSP复习笔记——第10章 连接数据库 之 移动游标
2010-10-26 23:54 564JDBC2.0: * 批处理 * ... -
JSP复习笔记——第10章 连接数据库之JDBC简介与基本使用
2010-10-26 23:54 582动态web的最大特点--> 可以操作数据库 JSP属于 ... -
JSP复习笔记——第10章 访问数据库
2010-10-26 23:53 66310.1 安装与配置MySQL数据库 10.2 JDBC的实 ... -
Jsp/Servlet复习笔记-----第9章 自定义标签和JSP标准标签库
2010-10-26 23:51 732标签库: 原因:在JSP的开发中,在标准的MVC设计模式里, ... -
Jsp/Servlet复习笔记-----第8章 JSP表达式语言
2010-10-26 23:50 5328.1 表达式语言简介 JSP ... -
Jsp/Servlet复习笔记-----第7章 JavaBean组件和JSP 中的标准动作
2010-10-26 23:50 7107.1 JavaBean 简介 7.1.1 使用Bean的原 ... -
Jsp/Servlet复习笔记-----第6章 JSP基础
2010-10-26 23:48 12726.1 JSP 简介 6.1.1 JSP的需求和优点 ... -
Jsp/Servlet复习笔记-----第5章 过滤器和事件监听器
2010-10-26 23:42 7615.1.1 概念 过滤器(filter)是能够对请求和响应 ... -
Jsp/Servlet复习笔记-----第4章 会话跟踪
2010-10-26 23:39 6284.1会话跟踪的需求 4.2 创建会话 4.3 ... -
Jsp/Servlet复习笔记-----第3章 Servlet技术
2010-10-26 23:38 6303.1 简介 3.1.1 Servlet的功用 ...
相关推荐
JSP复习笔记——第10章 连接数据库 之 JDBC相关 - 堕落天使 - JavaEye技术网站.mhtJSP复习笔记——第10章 连接数据库 之 JDBC相关 - 堕落天使 - JavaEye技术网站.mht
使用jsp基于数据库完成用户登陆程序,适合初学者使用
NULL 博文链接:https://depravedangel.iteye.com/blog/376043
使用JSP基于数据库完成用户登陆(代码+笔记)
使用JSP基于数据库完成用户登陆(代码+笔记)
jsp毕业设计——JSP数据库连接池的研究与实现(源代码+论文).zip
使用Eclipse,搭建tomcat服务器,使用jsp基于数据库完成用户登录 java connect to mysql
JSP连接数据库大全JSP连接数据库大全JSP连接数据库大全JSP连接数据库大全JSP连接数据库大全JSP连接数据库大全
JSP基于数据库完成用户登陆(代码 笔记),内容:基于Oracle数据库和JDBC技术,在之前的范例上进行进一步修改使用户的信息在数据库中进行验证。程序功能:完成用户登录功能,用户名及密码保存在数据库之中,使用数据库...
初学者 很实用的 jsp学习笔记——初学者的选择
使用JSP基于数据库完成用户登陆(代码+笔记
描述jsp连接数据库的完整代码 描述jsp连接数据库的完整代码 描述jsp连接数据库的完整代码 描述jsp连接数据库的完整代码 描述jsp连接数据库的完整代码
主要jsp基于数据完成简单的用户登录,使用四个jsp,一个登陆,一个是登陆成功的调用,一个是登录失败的调用,最后一个是连接数据库。
jsp连接Oracle8/8i/9i数据库,jsp连接Sql Server7.0/2000数据库 ,jsp连接DB2数据库,jsp连接Informix数据库,jsp连接Sybase数据库 ,jsp连接MySQL数据库,jsp连接PostgreSQL数据库
jsp中连接七种主要数据库的方式 可供初学者参考
jsp页面连接数据库jsp页面连接数据库
java jsp 连接 mysql 数据库 jar包java jsp 连接 mysql 数据库 jar包java jsp 连接 mysql 数据库 jar包java jsp 连接 mysql 数据库 jar包java jsp 连接 mysql 数据库 jar包java jsp 连接 mysql 数据库 jar包
自己写的jsp如何连接数据库的简易登陆界面,需要你自己配置Sqlserver 2008
使用JSP基于数据库完成用户登陆(代码+笔记).zip
jsp连接数据库代码大全jsp连接数据库代码大全