web 后台返回json格式数据的方式(status 406)

1.在类上使用注解 

@RestController
public class HttpComentInterface {

}

2.在方法是使用注解  @ResponseBody

   @RequestMapping(path = "/interface/queryRemote", method = RequestMethod.POST) //可以指定请求方式
    @ResponseBody 
    public RemoteCommentResultData queryCommentPage(@RequestBody QueryCommentParamDTO queryCommentParamDTO, HttpServletRequest request) {
}

3.使用 out

  @RequestMapping(value ="/GetSomeInfos" ,produces = "application/json;charset=UTF-8")
    public ModelAndView getNearestAirport(HttpServletRequest request, HttpServletResponse response)throws Exception {
        logger.info("NearestAirportController.getNearestAirport begin");
        RemoteAirportsData data = nearestAirportService.getNearestAirports();
        response.setContentType("text/html;charset=UTF-8");
        response.setCharacterEncoding("UTF-8");
        String result = JSONObject.fromObject(data).toString();
        response.getWriter().print(result);
        logger.info("NearestAirportController.getNearestAirport end");
        return null;
    }

4.如果出现了 status 406 则是项目中缺少  jackson-core-asl-1.9.12.jar,jackson-mapper-asl-1.9.12.jar 这两个包

引起的原因:
由于设置了@ResponseBody,要把对象转换成json格式,缺少转换依赖的jar包,故此错。

 

也可以用response返回结果,就不用手动去加这两个jar包了

转载于:https://www.cnblogs.com/UncleWang001/p/10790618.html

好的,以下是使用Servlet、jQuery和JSON格式数据实现表单的Ajax验证的示例代码: HTML代码: ```html <form id="myForm" action="#" method="post"> <label for="username">用户名:</label> <input type="text" id="username" name="username"><br> <label for="password">密码:</label> <input type="password" id="password" name="password"><br> <input type="submit" value="提交"> </form> ``` jQuery代码: ```javascript $(function() { $('#myForm').submit(function(event) { event.preventDefault(); // 阻止表单的默认提交行为 var formData = $(this).serialize(); // 将表单数据序列化为字符串 $.ajax({ type: 'POST', url: 'validate', // 后台处理验证的Servlet data: formData, dataType: 'json', // 声明返回数据类型为JSON success: function(data) { // 请求成功时的回调函数 if (data.status === 'success') { alert('验证通过!'); } else { alert('验证失败:' + data.message); } }, error: function(jqXHR, textStatus, errorThrown) { // 请求失败时的回调函数 alert('请求失败:' + textStatus + ',错误信息:' + errorThrown); } }); }); }); ``` Servlet代码: ```java import java.io.IOException; import java.io.PrintWriter; 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 org.json.JSONObject; @WebServlet("/validate") public class ValidationServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("application/json"); PrintWriter out = response.getWriter(); String username = request.getParameter("username"); String password = request.getParameter("password"); if (validate(username, password)) { JSONObject result = new JSONObject(); result.put("status", "success"); out.print(result.toString()); } else { JSONObject result = new JSONObject(); result.put("status", "fail"); result.put("message", "用户名或密码错误"); out.print(result.toString()); } out.flush(); out.close(); } private boolean validate(String username, String password) { // 模拟验证用户名和密码的函数 if (username.equals("admin") && password.equals("123456")) { return true; } else { return false; } } } ``` 以上代码实现了一个简单的表单验证功能,当用户点击提交按钮时,jQuery会将表单数据通过Ajax方式提交给后台Servlet进行验证。后台Servlet根据表单数据进行验证,并将验证结果以JSON格式返回给前端页面,前端页面根据返回数据进行相应的处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值