源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
查看: 453|回复: 16

[JSP编程] JSP+MySQL实现网站的登录与注册小案例

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2016-8-8 15:57:08 | 显示全部楼层 |阅读模式
这篇文章主要为大家详细介绍了JSP+MySQL实现网站的登录与注册小案例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

为了练手,我就自己试着做了一个网站的登录与注册的小案例。由于没有做美化处理,所以界面并不是很好看。

网站实现的功能如下:
 •用户首次注册功能
 •用户登录功能 

下面我将会分模块展示

注册模块

首先需要一个注册界面,如下register.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"
 pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>User to Register Page!</title>
</head>
<body>
<hr><br>Welcome to this <font color="green">Enroll(Register) Page</font>!<br>
<form action="do_register.jsp" method="get">
<br>
<h1>Please input your message:</h1><br>
Name:<input type="text" name="register_name"><br>
Pswd:<input type="password" name="register_password"><br>
<br><br><br>
<input type="submit">    <input type="reset"><br>
</body>
</html>


然后就是action对应的注册处理页,如下do_register.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"
 pageEncoding="utf-8"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Server to do the register page!</title>
</head>
<body>
<%
 String Register_name=request.getParameter("register_name");
 String Register_password=request.getParameter("register_password");
%>

<%
try{
 Class.forName("com.mysql.jdbc.Driver");
 Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/summer", "root", "mysql");
 Statement stmt=conn.createStatement();
 //desogn the sql statement
 String InsertSQL="INSERT INTO User(Name,Password) values('"+Register_name+"','"+Register_password+"')";
 System.out.println(Register_name+"\t"+Register_password);


 //do the query operation,and here is the most important sql statement. 
 int FLAG=stmt.executeUpdate(InsertSQL);

 if(FLAG>0){
 response.getWriter().write("Congratulation! REgister Success!");
 }else{
 response.getWriter().write("Sorry!Register Failed!\nPlease Retry it!");
 }
}catch(SQLException e){

}
%>


</body>
</html>

小总结:
不足之处:
 •对于数据库的操作做得不够好,没有及时的将不用的资源关闭,应该及时的对那些不用的打开的资源进行关闭操作,释放资源。
 •界面效果做的不够好,response输出是先于out的输出的。
 •数据库操作显得过于繁琐,应该集成一下,做一个专门处理数据库操作的工具包,以实现代码的良好的复用性!

登录模块

首先是登录界面,login.jsp,鄙人加进去一个超链接(用意是让login.jsp作为门户页面,实现登录注册合二为一的效果,虽然二者并没有合二为一,而且注册界面过于简单了),大家就先凑活看吧。

<%@ page language="java" contentType="text/html; charset=utf-8"
 pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>User Login Page</title>
</head>
<body>

<hr><br>Welcome to this <font color="green">Login Page</font>!<br>
<form action="do_login.jsp" method="get">
<br>
<h1>Please input your message:</h1><br>
Name:<input type="text" name="name"><br>
Pswd:<input type="password" name="password"><br>
<br><br><br>
<input type="submit">    <input type="reset"><br>
Click me to <font color="green"><a href="register.jsp">Register</a>!</font><br>


</form>

</body>
</html>

然后是对登录信息的处理页,do_login.jsp:

<%@page import="java.sql.DriverManager"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
 pageEncoding="utf-8"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Server Page Depend !</title>
</head>
<body>
<h3>Which Pae will be depend by the user's message!</h3>

<%
 String name=request.getParameter("name");
 String password=request.getParameter("password");
%>


<%
 Class.forName("com.mysql.jdbc.Driver");
 Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/summer", "root", "mysql");
 Statement stmt=conn.createStatement();
 //desogn the sql statement
 String queryNumberSQL="SELECT Name from User where Name='"+name+"' and Password='"+password+"'";
 //do the query operation
 ResultSet rs=stmt.executeQuery(queryNumberSQL);
 boolean flag=false;
 if(rs.next()){
 flag=true;
 session.setAttribute("UserName", name);
 }else{
 flag=false;
 }

%>
<%
 if(flag){
%>
<jsp:forward page="login_success.jsp"></jsp:forward>
<%
 }else{

%>
<jsp:forward page="login_failed.jsp"></jsp:forward>
<%
 }
%>



</body>
</html>

对于登陆成功的用户,跳转到登陆成功界面login_success.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"
 pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>User Login Success Page!</title>
</head>
<body>
<hr><br>
<h1>Login Success!</h1><br>
<font color="green">Welcome <%=session.getAttribute("UserName") %>!</font>

<h3 align="center">your persional Message is:</h3>
<%
 out.println("Name:"+session.getAttribute("UserName"));
%>
<font color="red"><a href="login.jsp">Click me</a> to log out!</font>

</body>
</html>

对于登录失败的用户,进行温馨的页面提示,login.failed.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"
 pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Login Failed Page!</title>
</head>
<body>
<hr>
<br>
<h1><font color="red">Sorry,Login Failed</font></h1><br>
<font color="red"><a href="login.jsp">Click me</a> to login!</font>
</body>
</html>

大总结:

进步之处:
 •使用到了session对象来存储用户登录的姓名信息,实现了页面间的信息的交互
 •配合了MySQL,在一定程度上体验了JEE的模式

不足之处:
 •代码过于繁冗,复用性不好
 •资源利用率不高,使用过的不再使用的资源要及时的进行关闭。虽然java虚拟机有自动的垃圾回收机制,但最好还是养成好的习惯!
 •界面控制做的不够好,体验性差,欠缺思考

待改进之处:
 •加上复杂一点的用户注册,使用bean的方式做处理比较好
 •模块化,使用MVC的概念
 •改善界面的权限,防止盗链
 •加上其他的诸如上传文件,下载文件功能,丰富网站的功能。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

回复

使用道具 举报

0

主题

1万

回帖

68

积分

注册会员

Rank: 2

积分
68
发表于 2022-12-22 01:12:27 | 显示全部楼层
给爸爸爸爸爸爸爸爸爸爸八佰伴八佰伴
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-6-24 12:48:19 | 显示全部楼层
很不错的玩意
回复 支持 反对

使用道具 举报

4

主题

2万

回帖

316

积分

中级会员

Rank: 3Rank: 3

积分
316
发表于 2023-7-3 10:53:01 | 显示全部楼层
可以,看卡巴
回复 支持 反对

使用道具 举报

1

主题

1万

回帖

51

积分

注册会员

Rank: 2

积分
51
发表于 2023-11-13 06:21:53 | 显示全部楼层
笑纳了老板
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

182

积分

注册会员

Rank: 2

积分
182
发表于 2024-3-20 06:06:44 | 显示全部楼层
啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦
回复 支持 反对

使用道具 举报

6

主题

2万

回帖

247

积分

中级会员

Rank: 3Rank: 3

积分
247
发表于 2024-5-10 20:00:21 | 显示全部楼层
谢谢您的分享!
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

307

积分

中级会员

Rank: 3Rank: 3

积分
307
发表于 2024-8-31 22:22:39 | 显示全部楼层
抽根烟,下来看看再说
回复 支持 反对

使用道具 举报

4

主题

2万

回帖

262

积分

中级会员

Rank: 3Rank: 3

积分
262
发表于 2024-9-24 00:42:19 | 显示全部楼层
先把创新班才能下班才能下班
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

69

积分

注册会员

Rank: 2

积分
69
发表于 2024-10-2 02:21:38 | 显示全部楼层
啦啦啦啦啦德玛西亚
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-23 08:24 , Processed in 0.078894 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表