Java进阶开发课堂笔记之开发登录功能

开发登录功能

在上一篇中,我们完成了web服务的搭建(参考 Java进阶开发课堂笔记之Web服务搭建),现在可以开始准备开发代码了。
首先,在main文件夹下,创建一个java文件夹,用来存放我们的代码,将这个文件夹设置为Sources Root
Java进阶开发课堂笔记之开发登录功能_第1张图片
其次,我们在java这个文件夹下,创建一个controller的包,新建一个LoginController的类:
Java进阶开发课堂笔记之开发登录功能_第2张图片
此时我们就可以开始准备开发登录功能了。首先,我们先对web.xml中的Servlet进行配置:

  
    loginServlet
    cn.edu.mju.project2.controller.LoginController
  
  
    loginServlet
    /login
  

其中,是要注册的Servlet的名字,是要注册的Servlet的类的地址,要带包路径。是用来配置我们注册的组件的访问路径,里面的包括两个节点,一个是与前面写的Servlet保持一致,另一个是配置这个组件的访问路径。
如果你觉得以上方法太麻烦的话,可以直接在LoginController里面进行配置:

@WebServlet("/login")

Java进阶开发课堂笔记之开发登录功能_第3张图片
此时WebServlet出现了报错,是由于未导入jar包导致的,我们点击Import class即可。
配置好WebServlet后,由于LoginController是要继承HttpServlet的,所以我们要对doGet和doPost进行重写:
doGet:Java进阶开发课堂笔记之开发登录功能_第4张图片
doPost:
Java进阶开发课堂笔记之开发登录功能_第5张图片
提示:如果想要在web界面上显示中文,需要在代码中添加以下两句代码即可(这里用doGet的代码举例):
Java进阶开发课堂笔记之开发登录功能_第6张图片
我们来查看一下目前的结果,运行程序,打开浏览器,输入先前设好的URL:
Java进阶开发课堂笔记之开发登录功能_第7张图片

优化代码

在开发完登录功能后,发现存在许多重复的代码,此时,我们需要优化代码。
代码优化前:
Java进阶开发课堂笔记之开发登录功能_第8张图片
Java进阶开发课堂笔记之开发登录功能_第9张图片
代码优化后:
Java进阶开发课堂笔记之开发登录功能_第10张图片
Java进阶开发课堂笔记之开发登录功能_第11张图片
这样代码就显得比较简洁,以后修改代码的时候,就不会出现一处修改了,而另外一处相同的代码忘记修改的情况。
最后,不要忘记将开发的代码提交到本地仓库,并push到远程仓库。

调用验证码

当我们开发完验证码之后,我们就需要在登录功能中调用验证码。
首先我们在CaptchaController.java也就是验证码代码中创建一个独立的HttpSession。将我们随机生成的验证码存入到这个session中,参考代码:

String code = StrUil.randomString(4);
HttpSession session = req.getSession();
session.setAttribute("code",code);

完成以上以后,我们回到LoginController.java中,我们在doGet中添加验证码的输入框与验证码,参考代码:

 stringBuilder.append("验 证 码:
");

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)