回顾旧知----servlet中返回json数据到jsp页面中,并在jsp页面中通过js获取数据的流程

最近两年,用惯了各种最新的框架,突然发现,最原始的一些基础代码竟然完全忘记了,在一些特别老旧的项目系统中,一些原始的传参方式完全不会了,本次记录一次,基础servlet中通过request返回json数据,并在jsp页面中获取json数据的流程。
首先是访问页面到后台 doget、dopost方法中,这个具体的流程就不赘述了。接下来是封装json数据。

- 用户接收数据和封装状态等信息的实体类

public class SqlResult{
	private boolean success=true;
	private Integer code=200;
	private String message="";
	private Object data;
	public SqlResult() {
		super();
		// TODO Auto-generated constructor stub
	}
	public SqlResult(boolean success, Integer code, String message, Object data) {
		super();
		this.success = success;
		this.code = code;
		this.message = message;
		this.data = data;
	}
	public SqlResult ok() {
		return this;
	}
	public SqlResult ok(Object data) {
		this.data=data;
		return this;
	}
	public SqlResult ok(Integer code,Object data) {
		this.code=code;
		this.data=data;
		return this;
	}
	
	public SqlResult error(Integer code,String message) {
		this.code=code;
		this.message=message;
		return this;
	}
	
	public boolean isSuccess() {
		return success;
	}
	public void setSuccess(boolean success) {
		this.success = success;
	}
	public Integer getCode() {
		return code;
	}
	public void setCode(Integer code) {
		this.code = code;
	}
	public String getMessage() {
		return message;
	}
	public void setMessage(String message) {
		this.message = message;
	}
	public Object getData() {
		return data;
	}
	public void setData(Object data) {
		this.data = data;
	}
	
}

- 用于返回jsp数据的实体类

package com.esunward.plisp.news.provider;

import java.io.IOException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.alibaba.fastjson.JSON;

public class ResponData{
   private String encode="utf-8";

   public ResponData() {
   	super();

   }
   
   public ResponData(String encode) {
   	super();
   	this.encode = encode;
   }
//以下的写法是前台是ajax请求,后台直接给前台返回json数据
   /**
    * @param encode
    * 这个写法前台是ajax请求,直接给页面返回json数据的形式
    */
   public ResponData(HttpServletResponse response,Object sqlResult) {
   	response.setHeader("Content-type", "text/html;charset=utf-8");
   	try {
   		response.getWriter().write(JSON.toJSONString(new SqlResult().ok(sqlResult)));
   	} catch (IOException e) {
   		// TODO Auto-generated catch block
   		e.printStackTrace();
   	}
   }
   
   public void msg(HttpServletResponse response,Object sqlResult) {
   	response.setHeader("Content-type", "text/html;charset=utf-8");
   	try {
   		response.getWriter().write(JSON.toJSONString(new SqlResult().ok(sqlResult)));
   	} catch (IOException e) {
   		// TODO Auto-generated catch block
   		e.printStackTrace();
   	}
   }
   
   public void error(HttpServletResponse response,Object sqlResult) {
   	response.setHeader("Content-type", "text/html;charset=utf-8");
   	try {
   		response.getWriter().write(JSON.toJSONString(new SqlResult().error(-100,(String)sqlResult)));
   	} catch (IOException e) {
   		// TODO Auto-generated catch block
   		e.printStackTrace();
   	}
   }
//以上的写法是前台是ajax请求,后台直接给前台返回json数据
   
//以下的写法是前台是jsp页面请求,后台直接给前台返回jsp数据
   public void error(HttpServletRequest request,HttpServletResponse response,Object sqlResult,String url,Object result) {
   	request.setAttribute("rightbase", request.getParameter("rightbase"));//将前台传递过来的数据再传回去用于页面展示
   	request.setAttribute("jsondata", JSON.toJSONString(new SqlResult().error(-100,(String)sqlResult)));
   	try {
   		response.getWriter().write(JSON.toJSONString(new SqlResult().error(-100,(String)sqlResult)));
   	} catch (IOException e) {
   		// TODO Auto-generated catch block
   		e.printStackTrace();
   	}
   }
   
}
  • 前台获取request里面的json数据的方式

如此,从后台传递过来的json数据可以传递到前台并被解析出来使用了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值