Servlet & Jsp 动态网站开发_6. JavaWeb简单登录实现

知道了转发和重定向之后,我们可以结合之前学的JDBC做一些小的demo了

一、登录

我们知道啊,在很多网站都有这个登录的功能,当然,还有注册啥的,我们先弄个简单的登录,感受感受

我们先打开数据库,创建一个 test1 的数据库,然后我们创建一个表,表的名字就叫 t_user

CREATE TABLE `t_user`  (
  `id` int(0) NOT NULL,
  `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

这里给大家脚本,username 是登录的账号,password 是密码,name 是登录的人的名字、昵称

然后我们可以新创建一个项目,也可以不用,就用之前的 HelloWorld,我这里就不从新创建了~~

有了数据库之后,我们需要创建一个 Servlet,这个 Servlet 是用来处理用户登录的请求的

有了这个 Servlet 之后,我们需要在 doPost 中做一些操作

1. 我们需要获取到用户登录的账号、密码

2. 去数据库比对,这个账号和密码是不是匹配

3. 如果正确我们让用户跳转到正确的页面,如果不正确,我们让请求发送到错误页面,告诉用户账号密码是错误的

然后我们按照思路进行操作,首先使用 getParameter() 这个方法获取用户名密码

然后我们就需要去数据库比对,这里呢,我们需要引入一下这个 jdbc 的 jar 包,如果大家有,就直接去使用,如果没有大家可以去 maven 仓库去下载(maven 仓库地址:https://mvnrepository.com/

就是这个,然后点击进去

自己对照自己本地的数据库版本进行下载,我本地使用的是 8.0.19,所以我就下载这个 8.0.19 的 jar

点击这个 jar 就好,可以看到 2.2MB,不是很大

下载之后,我们复制上这个 jar,然后粘贴到我们的项目中

需要粘贴到 lib,不要乱粘贴啊!!!

然后可以看到

这个地方, 有一个这个,这就说明我们这个项目中可以使用 jdbc 了,如果没有,需要大家自己进行构建一下,如果有了,就不要构建了!!!

然后我们自己封装一个 DBUtil 的类,方便以后我们操作,具体如下

我这里是使用的 MySQL 8.x 的版本,也就是说,这个连接数据库的 jar 包结构是被更改过的,所以我的 Class.forName 写的是 com.mysql.cj.jdbc.Driver,你们要是使用的 5.7 之前的,那这个驱动包是 com.mysql.jdbc.Driver

当然,8.x 中还加入了时区,所以我的 url 也比较长,其他的都和之前的一样,然后我们写一个 main 方法测试一下这个

OK 之后,我们回去到我们的 LoginServlet,这里直接上代码了,就不一个一个截图了,如果不会的,可以去看我的 JDBC 的教程:https://blog.csdn.net/weixin_45908370/category_10229180.html

我们通过账号去获取密码,如果密码没有的话,或者是错误的话,我们让它都跳转错误的页面,如果没有问题,那么我们跳转正确的页面

然后我们先放着不动,我们去把页面创建好,回来再写这个~~

我们先弄个 login.jsp

这里我们的 action 里面填写的是请求地址,这里我们请求我们这个项目中的 /login 方法,这里必须这样写,如果不这样写会出现 404,我们后面会给大家验证的,然后就是 method ,这个是提交类型,我们指定 post

这里我们表单提交后,后面会按照 input 标签中的 name 属性进行获取值,所以需要和我们后台的

这两个东西对应,如果不对应,我们是获取不到的

然后一个按钮进行提交,做完登录页面,再来弄一个成功后的跳转页面,再弄个错误页面

这里我们使用一下 EL 表达式,输出一个 errorInfo 的信息

接着配置一下我们的 web.xml

最后我们回去将 LoginServlet 的方法完善一下

这里注意!要把这个 return 加上去,千万不要忘记了,不然就会出现错误~~~

最后,我们数据库填写一条数据

做完这些之后,我们启动一下 tomcat 测试一下

请求地址:http://localhost:8080/HelloWorld/login.jsp

输入账号密码,我们先输入一个不存在的用户

点击登录,我们看看效果

然后我们换 admin,输入错误密码

最后我们换成正确的账号密码进行登录

OK啊,是没有问题的,这里大家可以再去加一下判断,让这个程序变得更好,比如说,判断一下密码是不是为空,账号是不是为空等

然后我们再来说一下注意的问题,首先是这个登录的请求地址,我们将 /HelloWorld 去掉,然后再来请求

可以看到啊,现在是 /login 了,我们输入正确的账号密码,来看看会怎么样

可以看到啊,出现了 404 页面,这里我们注意看一下地址栏,我们可以发现 /HelloWorld 这个东西没有了,这也是我们请求不到的原因,当然啊,这个东西后期的话会有框架帮我们处理,但是要知道这个问题~~~

大家可以自己好好查查看,有不懂的可以联系我 QQ:2100363119

欢迎大家访问我的网站:https://www.lemon1234.com

可以的话关注一下我的公众号,就在我网站,每天都有更新~~~,无限资源畅游 Java,感谢~

最近小程序也开放了,大家可以扫码进行玩玩看

猜你喜欢

转载自blog.csdn.net/weixin_45908370/article/details/113095744