判断一个请求是否为同步请求
public static boolean checkRequestIsSync(HttpServletRequest request){
String X_Requested_With = request.getHeader("X-Requested-With");
if (X_Requested_With != null&& X_Requested_With.equals("XMLHttpRequest")) {
return false; //异步请求
}
return true; //同步请求
}
重定向
public static void sendRedirect(HttpServletRequest request,
HttpServletResponse response, String url) throws IOException {
if (!url.startsWith("http")) {
response.sendRedirect(request.getContextPath() + url);
} else {
response.sendRedirect(url);
}
}
预先执行一段js后在执行重定向
public static void sendRedirectInFrame(HttpServletRequest request,
HttpServletResponse response, String url,String js) throws IOException {
StringBuffer basePath = new StringBuffer(200);
basePath.append("<script>");
if(js!=null)
basePath.append(js);
basePath.append("top.location = \"").append(
request.getScheme()).append("://").append(
request.getServerName()).append(":").append(
request.getServerPort()).append(request.getContextPath())
.append(url).append("\"</script>");
InputStream bis = null;
BufferedOutputStream bos = null;
try {
bis = new ByteArrayInputStream(basePath.toString().getBytes());
bos = new BufferedOutputStream(response.getOutputStream());
byte[] buff = new byte[1024 * 1024 * 5];
int bytesRead;
while (-1 != (bytesRead = (bis.read(buff)))) {
bos.write(buff, 0, bytesRead);
}
if (bis != null) {
bis.close();
}
if (bos != null) {
bos.close();
}
response.getOutputStream();
} finally {
if (bis != null)
bis.close();
if (bos != null)
bos.close();
}
}
重定向[iframe]
public static void sendRedirectInFrame(HttpServletRequest request,
HttpServletResponse response, String url) throws IOException {
sendRedirectInFrame(request,response,url,null);
}
获得真实的IP地址
public static String getIpAdd(HttpServletRequest request){
String ip = request.getHeader("x-forwarded-for");
if(ip==null||ip.length()==0||"unknown".equalsIgnoreCase(ip)){
ip = request.getHeader("Proxy-Client-IP");
}
if(ip==null||ip.length()==0||"unknown".equalsIgnoreCase(ip)){
ip = request.getHeader("WL-Proxy-Client-IP");
}
if(ip==null||ip.length()==0||"unknown".equalsIgnoreCase(ip)){
ip = request.getRemoteAddr();
}
return ip;
}