servlet返回json数据到html,Ajax请求Servlet返回文本 json html和XML数据并解析xml及responseText和responseXML的区别...

使用ajax请求时候:

响应的数据类型由ajax设置的接受数据方式决定:

responseText决定响应的数据类型是文本;

responseXML决定响应的数据类型xml文档。当返回xml文档时候Servlet一定要设置response.setContentType("text/xml;charset=utf-8");根据是否需要缓存,可以设置response.setHeader("Cache-control", "no-cache");

响应数据的格式由Servlet设置ContentType决定:

text/xml   xml

text/html  html

text/plain  文本

application/json  json

下面是jsp--servlet  返回文本、xml文档、json、html的代码:

index.jsp

pageEncoding="UTF-8"%>

Insert title here

function getXMLHttpRequest() {

var xmlReq;

if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari

xmlReq = new XMLHttpRequest();

} else {// code for IE6, IE5

xmlReq = new ActiveXObject("Microsoft.XMLHTTP");

}

return xmlReq;

}

//返回文本数据测试

function ajaxText() {

var oReq = getXMLHttpRequest();

oReq.open("POST", "TextServlet", true);

oReq.setRequestHeader("Content-type",

"application/x-www-form-urlencoded"); //提交表单必须

oReq.send("name=我是文本&pwd=123");

oReq.onreadystatechange = function() {

if (oReq.readyState == 4 && oReq.status == 200) {

document.getElementById("myDiv").innerHTML = oReq.responseText; //responseText响应类型是文本

}

}

}

//返回XML文档测试

function ajaxXML() {

var oReq = getXMLHttpRequest();

oReq.open("POST", "HanderServlet", true);

oReq.setRequestHeader("Content-type",

"application/x-www-form-urlencoded"); //提交表单必须

oReq.send("name=我是xml&pwd=111");

oReq.onreadystatechange = function() {

if (oReq.readyState == 4 && oReq.status == 200) {

var xmlObj=oReq.responseXML; //responseXML响应类型是XML文档

var names=xmlObj.documentElement.getElementsByTagName("name");

var name=names[0].firstChild.nodeValue;

var pwds=xmlObj.documentElement.getElementsByTagName("pwd");

var pwd=pwds[0].firstChild.nodeValue;

document.getElementById("myDiv").innerHTML=name+","+pwd;

}

}

}

//返回json文档测试

function ajaxJSON() {

var oReq = getXMLHttpRequest();

oReq.open("POST", "JsonServlet", true);

oReq.setRequestHeader("Content-type",

"application/x-www-form-urlencoded"); //提交表单必须

oReq.send("name=我是json&pwd=111");

oReq.onreadystatechange = function() {

if (oReq.readyState == 4 && oReq.status == 200) {

var resObj=oReq.responseText; //json字符串用文本形式接收

var jsonObj1=eval('('+resObj+')');

var name1=jsonObj1.name;

var pwd1=jsonObj1.pwd;

document.getElementById("myDiv").innerHTML=name1+","+pwd1;

}

}

}

//返回html

function ajaxHTML() {

var oReq = getXMLHttpRequest();

oReq.open("POST", "HtmlServlet", true);

oReq.setRequestHeader("Content-type",

"application/x-www-form-urlencoded"); //提交表单必须

oReq.send("name=我是html&pwd=111");

oReq.onreadystatechange = function() {

if (oReq.readyState == 4 && oReq.status == 200) {

var resObj=oReq.responseText; //html用文本形式接收

document.getElementById("myDiv").innerHTML=resObj;

}

}

}

ajax请求文本

ajax请求XML文档

ajax请求json字符串

ajax请求html

返回文本的Servlet:

package com.ajax.test;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.ServletOutputStream;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class TextServlet extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doPost(request, response);

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

System.out.println("in text");

request.setCharacterEncoding("utf-8");

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

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

System.out.println("name:"+name+",pwd:"+pwd);

//返回文本数据

response.setContentType("text/plain;charset=utf-8");

ServletOutputStream outputStream = response.getOutputStream();

outputStream.write(name.getBytes("utf-8"));

outputStream.write(pwd.getBytes("utf-8"));

outputStream.flush();

outputStream.close();

}

}

返回xml文档的Servlet

package com.ajax.test;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.ServletOutputStream;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class HanderServlet extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doPost(request, response);

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

System.out.println("in xml");

request.setCharacterEncoding("utf-8");

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

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

System.out.println("name:"+name+",pwd:"+pwd);

//返回xml文档

response.setContentType("text/xml;charset=utf-8");

response.setHeader("Cache-control", "no-cache");

ServletOutputStream outputStream = response.getOutputStream();

StringBuffer sb=new StringBuffer();

sb.append("<?xml version='1.0' encoding='utf-8'?>");

sb.append(""+name+""+pwd+"");

outputStream.write(sb.toString().getBytes("utf-8"));

outputStream.flush();

outputStream.close();

}

}

返回json字符串的Servlet

package com.ajax.test;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.ServletOutputStream;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class JsonServlet extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doPost(request, response);

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

System.out.println("in json");

request.setCharacterEncoding("utf-8");

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

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

System.out.println("{'name':"+name+",'pwd':"+pwd+"}");

//返回json字符串数据

response.setContentType("application/json;charset=utf-8");

ServletOutputStream outputStream = response.getOutputStream();

String res="{'name':'"+name+"','pwd':'"+pwd+"'}"; //json字符串要写成"{'name':'tom'}"的形式,里面的key和value也要加''写成字符串的形式

outputStream.write(res.getBytes("utf-8"));

outputStream.flush();

outputStream.close();

}

}

返回html的Servlet

package com.ajax.test;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.ServletOutputStream;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class HtmlServlet extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doPost(request, response);

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

System.out.println("in html");

request.setCharacterEncoding("utf-8");

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

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

System.out.println("name:"+name+",pwd:"+pwd);

//返回html文档

response.setContentType("text/html;charset=utf-8");

response.setHeader("Cache-control", "no-cache");

ServletOutputStream outputStream = response.getOutputStream();

String res=""+name+pwd+"";

outputStream.write(res.getBytes("utf-8"));

outputStream.flush();

outputStream.close();

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值