Java进阶开发课堂笔记之开发登录功能
2020-07-18 04:45
99 查看
开发登录功能
在上一篇中,我们完成了web服务的搭建(参考 Java进阶开发课堂笔记之Web服务搭建),现在可以开始准备开发代码了。
首先,在main文件夹下,创建一个
java文件夹,用来存放我们的代码,将这个文件夹设置为
Sources Root:
其次,我们在
java这个文件夹下,创建一个
controller的包,新建一个
LoginController的类:
此时我们就可以开始准备开发登录功能了。首先,我们先对web.xml中的Servlet进行配置:
<servlet> <servlet-name>loginServlet</servlet-name> <servlet-class>cn.edu.mju.project2.controller.LoginController</servlet-class> </servlet> <servlet-mapping> <servlet-name>loginServlet</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping>
其中,
<Servlet-name>是要注册的Servlet的名字,
<Servlet-class>是要注册的Servlet的类的地址,要带包路径。
<Servlet-mapping>是用来配置我们注册的组件的访问路径,里面的包括两个节点,一个是
<Servlet-name>与前面写的
Servlet保持一致,另一个是
<url-pattern>配置这个组件的访问路径。
如果你觉得以上方法太麻烦的话,可以直接在
LoginController里面进行配置:
@WebServlet("/login")
此时WebServlet出现了报错,是由于未导入jar包导致的,我们点击
Import class即可。
配置好WebServlet后,由于
LoginController是要继承
HttpServlet的,所以我们要对doGet和doPost进行重写:
doGet:
doPost:
提示:如果想要在web界面上显示中文,需要在代码中添加以下两句代码即可(这里用doGet的代码举例):
我们来查看一下目前的结果,运行程序,打开浏览器,输入先前设好的URL:
优化代码
在开发完登录功能后,发现存在许多重复的代码,此时,我们需要优化代码。
代码优化前:
代码优化后:
这样代码就显得比较简洁,以后修改代码的时候,就不会出现一处修改了,而另外一处相同的代码忘记修改的情况。
最后,不要忘记将开发的代码提交到本地仓库,并push到远程仓库。
调用验证码
当我们开发完验证码之后,我们就需要在登录功能中调用验证码。
首先我们在
CaptchaController.java也就是验证码代码中创建一个独立的
HttpSession。将我们随机生成的验证码存入到这个
session中,参考代码:
String code = StrUil.randomString(4); HttpSession session = req.getSession(); session.setAttribute("code",code);
完成以上以后,我们回到
LoginController.java中,我们在
doGet中添加验证码的输入框与验证码,参考代码:
stringBuilder.append("验 证 码:<input type='text' name='valueCode''value=''><img src='/captcha' width='80' height='40'><br>");
在
doPost中定义一个字符串
valueCode来存储
req传递的参数,也就是我们的验证码。参考代码:
String valueCode = req.getParameter(“valueCode”);
此时我们要把用户输入的验证码与生成的验证码进行对比,我们先定义一个
saveCode来存储我们生成的验证码,参考代码:
String saveCode = (String) req.getSession.getAtttribute("code");
我们开始对验证码进行对比,首先我们判断验证么输入是否为空,若验证码为空,则对比没有意义。我们在工具类(具体查看工具类那章)中创建一个
isBank方法来判断输入是否为空。参考代码:
public static void idBank(String str){ if(str==null||ste.equals("")){ return true; } else{ return false ; } }
判断不为空,之后我们对输入验证码与生成验证码比对,若一致,判断账号密码是否一致;若不一致,则返回“当前账号和密码错误”。
相关文章推荐
- Java进阶开发课堂笔记之开发验证码功能
- Java进阶开发课堂笔记之三层结构
- Java进阶开发课堂笔记之定义工具类
- 基于ThinkPHP的开发笔记3-登录功能(转)
- Extjs4开发笔记(四)&#8212;&#8212;实现登录功能
- JFinal使用笔记3-注册和登录功能开发记录
- java web开发一个帐号同一时间只能一个人登录的功能
- 大数据开发进阶笔记——HBase的常用原子操作Java代码
- APP登录功能的Java服务端开发
- 易课寄在线购课系统开发笔记(二十九)--完成用户登录功能
- java程序员菜鸟进阶(十)Extjs4常用功能(一)――extjs开发环境的配置和表单的使用
- 基于SSM框架的web应用登录功能开发笔记
- Java软件开发学习笔记(三)
- [ASP][扩展控件开发]控制输入数字型的TEXTBOX开发笔记 (一)--功能目标
- 凤凰浴火 JBuilder 2006新功能赏析-Java基础-Java-编程开发
- java第9天课堂笔记 (Set)
- JAVA GUI 开发---简单登录界面
- Java 课堂笔记 01
- 【Java插件开发】Java用commons-email-1.1.jar实现发邮件功能
- java基础课堂笔记1