关于验证码==null

关于验证码==null

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下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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