使用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
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();
}
}
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();
}
}