jsp&&JDBC实现简单的注册和界面登录

其中的界面CSS的设计是参照老师给定的模板样式进行设计的,主要更改的jsp中数据的获取以及数据在数据库中的查询等操作,先给一个链接吧。
 项目以及代码

提取码:c2kw

里面包含了页面的设计以及相关数据库的建立和使用,同时还包括了数据库的驱动,还是老问题,注意驱动版本与你的MySQL的版本是否对应,这个很重要。还有一定要将驱动的jar包安装到代码所对应的WEBINF的lib文件夹下,或者使用第三方库导入,一定要导进去,要不等于没做。

缺陷:没有给出相应的.sql文件,这个用Navicat自己建一个就行,一共包含两个元素:userid、userpwd,一个用户,一个用户密码,类型都是varchar,主键的话设置userid就好,刚才差点把自己的密码放进去,如果不小心放进去了,希望社工大佬放过我,本人人丑且穷。

下面粘上注册和登录在数据库操作方面上的核心代码

<script>
				function check() {
					var userid = document.getElementById("user").value;
					var pwd1 = document.getElementById("pwd").value;
					var pwd2 = document.getElementById("rpwd").value;
					if (userid == ''||userid==null) {
						alert("用户名不能为空");
					} else if (pwd1.length < 6) {
						alert("密码不足六位");
					} else if (pwd1 != pwd2) {
						alert("两次密码不一致");
					} else {
						document.getElementById("form1").submit();
					}
				}
			</script>
			<%
				String url;
				Class.forName("com.mysql.cj.jdbc.Driver");
				url = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC";
				Connection con = DriverManager.getConnection(url, "root", "1");
				String sql;
				String muid =request.getParameter("account");
				String mupwd =request.getParameter("password");
				String mrupwd =request.getParameter("repassword");
				//进行数据库中的查找
				if (muid != null && mupwd != null && mrupwd != null) {
					sql = "SELECT * FROM user WHERE userid=?";
					PreparedStatement preparedStatement = con.prepareStatement(sql);
					preparedStatement.setString(1, muid);
					ResultSet resultSet = preparedStatement.executeQuery();
					if (resultSet.next()) {
						//借鉴可以直接将js标签写入jsp中
						out.print("<script>alert('用户名已存在,请重新输入')</script>");
					} else {
						sql = "INSERT INTO user VALUES (?,?)";
						preparedStatement = con.prepareStatement(sql);
						preparedStatement.setString(1, muid);
						preparedStatement.setString(2, mupwd);
						preparedStatement.executeUpdate();
						out.print("<script>alert('恭喜,注册成功')</script>");
					}
				}
			%>
		

代码不是很美观,凑合着看吧,糙汉子一个,而且还没有女朋友,惆怅~~~~

登录:

<script type="text/javascript">
		function check() {
			var uid = document.getElementById("account").value;
			var upwd = document.getElementById("password").value;
			if (uid == null||uid=="") {
				alert("用户名不能为空!");
			} else if (upwd.length < 6) {
				alert("密码长度不能小于六位!"); 	
			} else {
				document.getElementById("form1").submit();
			}
		}
	</script>

<%
				String url;
				Class.forName("com.mysql.cj.jdbc.Driver");
				url = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC";
				Connection con = DriverManager.getConnection(url, "root", "1");
				String sql;
				String uid = request.getParameter("account");
				String upwd = request.getParameter("password");	
				//进行数据库中的查找
				if (uid != null && upwd != null ) {
					sql = "SELECT * FROM user WHERE userid=? AND userpwd=?";
					PreparedStatement preparedStatement = con.prepareStatement(sql);
					preparedStatement.setString(1, uid);
					preparedStatement.setString(2, upwd);
					ResultSet resultSet = preparedStatement.executeQuery();
					if (resultSet.next()) {
						//借鉴可以直接将js标签写入jsp中
						out.print("<script>alert('登陆成功');</script>");
					} else {
						out.print("<script>alert('登录失败');</script>");
					}
				}
			%>

注意几个小问题吧

1、在写JSP的时候,HTML中的标签可以直接嵌套到java语句当中去,就像代码中的out.print("<script>alert('登录失败');</script>");可以在输出语句中放入触发事件的alert(),不过此时括号里的登录失败要是用单引号,这一点比较实用。

2、在加载驱动的时候,要看清自己实用的驱动是什么版本的,8.0及以上的驱动,要加上cj,并且不使用SSL,同时要设置时钟,讲真我自己也不知道是为啥,但是别写错了,当时写成CTF好久都没有看出来。

3、实用SQL语句的时候,尽量不要使用SQL语句的拼接,因为会有安全漏洞,后面会说有关SQL注入的问题,要使用“?”和 preparedstatement来保存和执行SQL语句,代码上写的很清楚。

扫描二维码关注公众号,回复: 10460908 查看本文章

4、其他的就是按照步骤来就行了,我也有点想不出该补充什么,欢迎补充吧~~~~

发布了47 篇原创文章 · 获赞 6 · 访问量 5216

猜你喜欢

转载自blog.csdn.net/qq_41705207/article/details/89349192