【JavaWeb】基于Ajax&Json的前后端简单交互方式(Servlet&HTML实现版)

 FindUserServlet类,用于接收Ajax数据和返回一个封装好数据的Map集合到前端中去:

package ajax;

import com.fasterxml.jackson.databind.ObjectMapper;

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 java.io.IOException;
import java.util.HashMap;
import java.util.Map;

@WebServlet("/findUserServlert")
public class FindUserServlert extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //获取传过来的username
        String username = request.getParameter("username");

        //这里一定要设置json格式
        response.setContentType("application/json;charset=utf-8");

        //创建一个map集合用于封装数据
        Map map = new HashMap();

        //判断该用户是否存在
        if("zhangsan".equals(username)){

            //如果已存在的话,就要执行以下内容
            map.put("userExist",true);
            map.put("msg","改用名已注册,请另起一个名字!");

        }else{

            //如果用户名不存在,就可以直接进行注册
            map.put("userExist",false);
            map.put("msg","此账号可以直接注册!");

        }

        //重新发送一下数据
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.writeValue(response.getWriter(),map);

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}

 

HTML、ajax、json部分的前端代码(这里我们指定跳转到findUserServlet中):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="jquery-3.3.1.min.js"></script>
    <script>

        $(document).ready(function(){
            $("#username").blur(function(){
                var username = $("#username").val();
                $.get("findUserServlert",{username:username},function(data){

                    //判断用户的账号是否存在
                    if(data.userExist){
                        $("#span1").css("color","red");
                        //如果存在的话就返回true,然后显示提示内容
                        $("#span1").html(data.msg);
                    }else{
                        $("#span1").css("color","blue");
                        //如果不存在的话就返回false,然后显示提示内容
                        $("#span1").html(data.msg);
                    }
                });
            });
        });


    </script>
</head>
<body>

    <form>
        <input type="text" id="username" placeholder="请输入用户名" name="username">
        <span id="span1"></span>
        <br>
        <input type="password" placeholder="请输入用户名" name="password"><br>
        <input type="submit" value="登录">
    </form>

</body>
</html>

 

 实现的具体效果就是当我们输入的文字内容重复时,直接提示文本内容:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值