将對象轉換成Json字元串,響應給前台ajax回調函數,調用阿裡巴巴的fastJson包
package com.zyd.util;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSON;
public class JsonUtil {
public static void toJson(Object object,HttpServletResponse response){
//設定響應類型和編碼
response.setContentType("application/json;charset=UTF-8");
//将對象轉換為json字元串
String json = JSON.toJSONString(object);
//得到輸出流
try {
PrintWriter out = response.getWriter();
//響應1JSON字元串
out.write(json);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
字元串判斷是否為空工具類
package com.zyd.util;
/**
* 字元串工具類
* @author Lisa Li
*
*/
public class StringUtil {
public static boolean isEmpty(String str) {
if (str == null || "".equals(str.trim())) {
return true;
}
return false;
}
public static boolean isNotEmpty(String str) {
if (str == null || "".equals(str.trim())) {
return false;
}
return true;
}
}
package com.zyd.filter;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet Filter implementation class EncodeFilter
*/
@WebFilter("/*")
public class EncodeFilter implements Filter {
/**
* Default constructor.
*/
public EncodeFilter() {
// TODO Auto-generated constructor stub
}
/**
* @see Filter#destroy()
*/
public void destroy() {
System.out.println("destroy....");
}
/**
* Tomcat8:
* get請求不處理
* post:request請求:request.setCharacterEncoding("UTF-8");
* response:response.setContentType("text/html;charset=UTF-8");
* Tomcat7以及以下:
* get請求:
* new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
* response:response.setContentType("text/html;charset=UTF-8");
* post一樣
*/
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
//基于Http
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
//設定接受和響應的字元編碼
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
//得到請求方式
String method = request.getMethod();
// 判斷是否是GET請求
if ("GET".equals(method.toUpperCase())) { // GET請求
// 得到伺服器的版本 Apache Tomcat/8.0.45
String serverInfo = request.getServletContext().getServerInfo();
System.out.println(serverInfo);
// 得到伺服器的版本号
String versionStr = serverInfo.substring(serverInfo.indexOf("/")+1, serverInfo.indexOf("/")+2);
// System.out.println(versionStr);
Integer version = Integer.parseInt(versionStr);
// 如果Tomcat的版本是8以下,需要處理亂碼
if (version < 8) {
// 重寫getParameter()方法處理GET亂碼
MyWapper myWrapper = new MyWapper(request);
// 放行
chain.doFilter(myWrapper, response);
return;
}
}
chain.doFilter(request, response);
}
class MyWapper extends HttpServletRequestWrapper{
private HttpServletRequest request;
public MyWapper(HttpServletRequest request) {
super(request);
this.request = request;
}
@Override
public String getParameter(String name) {
String value = "";
try {
// 解決get亂碼
value = new String(request.getParameter(name).getBytes("ISO-8859-1"), "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return value;
}
}
public void init(FilterConfig fConfig) throws ServletException {
System.out.println("init...");
}
}