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

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here











返回文本的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("");
		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();			
	}

}



你可能感兴趣的:(javaweb)