ajax失去焦点后span标签只提示一次

ajax判断用户名不存在,第一次失去焦点时,span标签提示用户名不存在,但是第二次失去焦点时,span标签无法刷新,并且servlet报错

html代码


```html
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>欢迎登录</title>
<link type="text/css" rel="stylesheet" href="style/new_file.css" />
</head>
<body background="photo/dll.jpg" style=" background-repeat:no-repeat background-size:100% 100% background-attachment: fixed" >
<div class="dl">
<h1 class="t123">欢迎登录</h1>
    <form action="http://localhost:8080/2023-04-04_02_JDBC/UsernameServlet"   method="post">
        账户:<input type="text"    id="username" name="username" class="in" /><br />
        <span id="nameshow"></span><br />
        密码:<input type="password"    id="password" name="password" class="in" /><br />
        <span id="pwdshow"></span><br />
        <input type="button" onclick='location.href=("02-zhuce.jsp")' value="注册" class="btn change4"/>
        <input type="submit" value="登录"  id="denglu" class="btn change4"/>
    </form>
    </div>
        <script src="js/jq.js"></script>
        <script>


            $(function(){
                $('#username').blur(function(){
                    $.ajax({
                        url:'http://localhost:8080/2023-04-04_02_JDBC/UsernameServlet',
                        data:{
                            username:$('#username').val(),
                        },
                        type:'post',
                        cache:false,
                        success(result) {
                            if(result==0){
                                $('#nameshow').html('用户名不存在').css('color','red');

                            }    else{
                                $('#nameshow').html('用户名正确').css('color','red');
                            }
                        }
                        
                    });
                });            
            });
            
        </script>
    
        
</body>
</html>




servlet代码

package com.qf.servlet;
 
import java.io.IOException;
 
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 javax.servlet.http.HttpSession;
 
import com.qf.pojo.User;
import com.qf.service.UserService;
import com.qf.service.impl.UserServiceImpl;
 
/**
 * Servlet implementation class CheckNameServlet
 */
@WebServlet("/UsernameServlet")
public class UsernameServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
 
    public UsernameServlet() {
        super(); 
    }
 
    private UserServiceImpl userServiceImpl = new UserServiceImpl();
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        String us = request.getParameter("username");
        String pa = request.getParameter("password");
        int a =1;
     
        User u = userServiceImpl.selectByUsername(us);
        

        if(u == null  ) {  
            response.getWriter().print(0);
            
        }else {
             
            if(a==u.getUser()&&pa.equals(u.getPassword())) {
                HttpSession session = request.getSession();
             session.setAttribute("user", u);
             response.sendRedirect("04-index.jsp");
            }
            // 判断密码是否正确
            if (pa.equals(u.getPassword())) {
                 HttpSession session = request.getSession();
                 session.setAttribute("user", u);
                 response.sendRedirect("03-index.jsp");
            } else {
                response.getWriter().print("<script>alert('密码错误,请重新登陆');window.location.href='http://localhost:8080/2023-04-04_02_JDBC/01-denglu.jsp'</script>");
                
            }
        }
    }
 
 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }
 
}




报错信息



```java
五月 10, 2023 9:44:58 下午 org.apache.catalina.core.StandardWrapperValve invoke
严重: 在路径为[/2023-04-04_02_JDBC]的上下文中,servlet[com.qf.servlet.UsernameServlet]的Servlet.service()引发异常
java.lang.NullPointerException
    at com.qf.servlet.UsernameServlet.doGet(UsernameServlet.java:49)
    at com.qf.servlet.UsernameServlet.doPost(UsernameServlet.java:63)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:514)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:582)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:212)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:156)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:181)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:156)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:682)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:617)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:932)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1695)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
    at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)


doGet方法,第49行:打印下值是否拿到了。。。
if (pa.equals(u.getPassword())) {