在maven项目的servlet使用fastjson无法传送数据给前端

package com.mvc.servlet;

import com.mvc.bean.Goods;

import com.mvc.bean.GoodsItem;

import com.mvc.dao.GoodsDao;

import com.mvc.impl.GoodsDaoImpl;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

import java.io.PrintWriter;

import java.util.HashMap;

import java.util.Map;

import com.alibaba.fastjson.JSON;

import com.alibaba.fastjson.serializer.JSONLibDataFormatSerializer;

import com.alibaba.fastjson.serializer.JSONSerializerMap;

import com.alibaba.fastjson.serializer.SerializerFeature;

import java.io.PrintWriter;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpSession;

import com.mvc.bean.Student;

public class GetGoodsServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html");

PrintWriter out = response.getWriter();

doPost(request, response);

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html");

PrintWriter out = response.getWriter();

//得到编号

String goodsName = request.getParameter("goodsName");

System.out.println(goodsName);

String output = "后台返回的结果加上前台的结果";

Student student = new Student(0, "Aaron", 24);

System.out.println(JSON.toJSONString(student));

response.getWriter().write(JSON.toJSONString(student));

}

}

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Title</title>

</head>

<body>

<script>

function ajax(){

var ajaxData = {

type:arguments[0].type || "GET",

url:arguments[0].url || "",

async:arguments[0].async || "true",

data:arguments[0].data || null,

dataType:arguments[0].dataType || "text",

contentType:arguments[0].contentType || "application/x-www-form-urlencoded",

beforeSend:arguments[0].beforeSend || function(){},

success:arguments[0].success || function(){},

error:arguments[0].error || function(){}

}

ajaxData.beforeSend()

var xhr = createxmlHttpRequest();

xhr.responseType=ajaxData.dataType;

xhr.open(ajaxData.type,ajaxData.url,ajaxData.async);

xhr.setRequestHeader("Content-Type",ajaxData.contentType);

//xhr.send(convertData(ajaxData.data));

xhr.send("goodsName="+"youda");

xhr.onreadystatechange = function() {

console.log(xhr.readyState)

if (xhr.readyState == 4) {

console.log(xhr.status)

if(xhr.status == 200){

console.log(XMLHttpRequest);

ajaxData.success(xhr.response)

}else{

ajaxData.error()

}

}

}

}

function createxmlHttpRequest() {

if (window.ActiveXObject) {

return new ActiveXObject("Microsoft.XMLHTTP");

} else if (window.XMLHttpRequest) {

return new XMLHttpRequest();

}

}

function convertData(data){

if( typeof data === 'object' ){

var convertResult = "" ;

for(var c in data){

convertResult+= c + "=" + data[c] + "&";

}

convertResult=convertResult.substring(0,convertResult.length-1)

return convertResult;

}else{

return data;

}

}

ajax({

type:"POST",

url:"getGoods",

dataType:"json",

data:{"val1":"abc","val2":123,"val3":"456"},

beforeSend:function(){

//some js code

},

success:function(msg){

console.log(msg)

},

error:function(){

console.log("error")

}

})

</script>

<div><button id="getGoods" value="显示全部商品" onclick="getInfoByName()">点击商品全部</button></div>

</body>

</html>

package com.mvc.bean;

public class Student {

private int id;

private String name;

private int age;

/**

* 默认的构造方法必须不能省,不然不能解析

*/

public Student(){

}

public Student(int id,String name,int age) {

this.id = id;

this.name = name;

this.age = age;

}

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

@Override

public String toString() {

return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";

}

}

图片描述

图片描述

回答:

你这个问题和fastjson没太大关系
1.你需要现保证后台的数据能传到前台,比如console.info(xxx)能打印出来
2.第一步搞定后,再把你的对象搞成你的业务数据,就是那个json形式的字符串,剩下的就是前段的json数据处理了

加油,你行滴!

回答:

根据发出来异常

1.首先要解决的是,你没有成功引入fastJson包。rootCase提示NoClassDefFoundError, 可能是部署的时候没打包成功。试下更新下你的依赖?

回答:

异常信息显示找不到FastJSON相关的类,检查一下相关jar包是否已经引入...

以上是 在maven项目的servlet使用fastjson无法传送数据给前端 的全部内容, 来源链接: utcz.com/p/177280.html

回到顶部