关于验证码==null

关于验证码==null

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
package com.imooc.register.verify;
 
import java.io.IOException;
import java.util.List;
 
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import com.imooc.register.basics.User;
import com.imooc.service.achieve.UserServiceImpl;
import com.imooc.service.impl.UserService;
 
@WebServlet("/VerifyServlet")
public class VerifyServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
 
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
 
        // 验证验证码:
 
        // 获取session中保存的验证码信息
        String verifyCode1 = (String) request.getSession().getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);
        // 接收前台表单提交的验证码信息
        String verifyCode2 = request.getParameter("verifyCode");
        if (verifyCode2.equals("")) {
            request.setAttribute("faile""请输入验证码!");
            request.getRequestDispatcher("/login.jsp").forward(request, response);
        else if (!verifyCode2.equalsIgnoreCase(verifyCode1)) {
            request.setAttribute("faile""验证码输入不正确!");
            request.getRequestDispatcher("/login.jsp").forward(request, response);
        else {
            // 验证账号密码:
 
            // 获得参数username和password
            String username = request.getParameter("username");
            String password = request.getParameter("password");
            // 进行封装
            User user = new User(username, password);
            // 获得context属性中的userList
            List<User> userList = (List<User>) getServletContext().getAttribute("userList");
            // 初始化接口
            UserService userService = new UserServiceImpl();
            // 调用接口验证username和password
            User existUser = userService.login(userList, user);
            if (existUser == null) {
                // 登录失败
                request.setAttribute("faile""用户名或密码错误!");
//                response.sendRedirect(request.getContextPath()+"/login.jsp");
                request.getRequestDispatcher("/login.jsp").forward(request, response);
            else {
                // 登录成功
                request.getSession().setAttribute("existUser", existUser);
//                request.getRequestDispatcher("/categoryList.jsp").forward(request, response);
                response.sendRedirect(request.getContextPath() + "/categoryList.jsp");
            }
 
        }
 
    }
 
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
 
        doGet(request, response);
    }
 
}

http://img1.sycdn.imooc.com//climg/5e777cea0891d51811590289.jpg

想分的更加细致一些,发现书写   if (verifyCode2==null)  无法赋值,似乎文本框不填东西  默认有值

当写 if (verifyCode2.equals(""))时   正常运行


这是为什么?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,是的, null不等同于“”如:,String str=null和String str="";

null:是指对象的引用并不指向任何的对象。
“”:是指空字符串,str指向一个空串。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

好帮手慕小尤 2020-03-23 13:47:17

同学你好,当没有为input设置默认值时,默认是空的字符串,也就是(""),所以需要equals("")进行判断。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 清梦_Eva #1
    那是不是意味着 null不等同于“”? null和“”的具体区别在哪?
    2020-03-23 14:59:57
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码