
在服务器中经常会出现错误,到底是出了些什么问题呢?下面我们就来看一看。
01服务器500错误,一般都是程序上ASP的错误,是服务器内部的错误,很有可能是数据库连接和用户权限的问题,检查一下服务器语句错误问题。
02服务器501错误,这时你可以换一个电脑测一下,还可以用可以用来HttpWebRequest指定一个UserAgent来试试。
03服务器502错误,在出现这种情况时,可以先试着清理缓存或者刷新一下,不行的话可以找程序员们改一下服务器。
04服务器503错误,这个错误出现时大家不必担心,应该是服务器本身在维护或者你可以清理一下CPU占用。
05服务器504错误,这就说明是网关超时了,最好尽快练习网站官方和专业的人,检查电脑间的ip传输情况。
06服务器505错误,服务器不支持请求中所使用的 HTTP 协议版本。如果是服务器问题,就联系服务商协商。
<%dim connuser,conn,strSQLServerName,strSQLDBUserName,strSQLDBPassword,usercenter
strSQLServerName = "服务器名称或地址" '服务器名称或地址
strSQLDBUserName = "sa" '数据库帐号
strSQLDBPassword = "数据库密码" '数据库密码
usercenter="数据库名称" '数据库名称
'-------------------------------------------------------------------Set conn = Server.CreateObject("ADODB.Connection")
strConuser="Driver={SQL Server}Server=.uid="&strSQLDBUserName&"pwd="&strSQLDBPassword&"database="&usercenter&"autotranslate=yes"
conn.Open strConuser
%>
试试这个
import java.io.IOExceptionimport java.io.OutputStreamimport java.lang.reflect.Fieldimport java.text.SimpleDateFormatimport java.util.Dateimport java.util.HashMapimport java.util.Listimport java.util.Mapimport java.util.Map.Entryimport javax.servlet.http.HttpServletResponseimport org.apache.commons.lang3.StringUtilsimport org.joda.time.DateTimeimport com.travelzen.framework.net.http.TZHttpClientimport com.travelzen.tops.front.ota.member.item.CustomerItempublic class CSV {/**
* 目标输出流
*/
private OutputStream stream /**
* 表头
*/
private Map<String,String>fields /**
* 数据源model所有字段map
*/
private static Map<String, Field>fieldMap = new HashMap<>() public CSV(HttpServletResponse response,Map<String,String>fields,String fileName,Class<?>clz) throws IOException{if(response == null || fields == null || fileName == null || clz == null)throw new IllegalArgumentException()
getFieldMap(clz,fieldMap) this.stream = response.getOutputStream() this.fields = fields
response.setContentType("application/octet-streamcharset=GBK")
response.setHeader("Content-Disposition", "attachmentfileName="+ fileName) //写表头,生成指定名字的文件,返回客户端
StringBuilder hb = new StringBuilder() for(Entry<String, String>e : fields.entrySet())
hb.append(e.getValue()+",")
stream.write(hb.substring(0, hb.length() - 1).getBytes("GBK"))
stream.flush()
}/**
* 往表格中插入记录
*/
public void write(List<Object>data) throws IllegalArgumentException, IllegalAccessException, IOException{for(Object o : data){
StringBuilder sb = new StringBuilder()
sb.append("\n") for(String field : fields.keySet()){
Field f = fieldMap.get(field)
f.setAccessible(true)
Object value = f.get(o) if(value == null || StringUtils.isBlank(value.toString())){
sb.append(" ,")
} else if (f.getType() == Date.class) {
sb.append(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(value) + ",")
} else if (f.getType() == DateTime.class) {
sb.append(((DateTime)value).toString("yyyy-MM-dd HH:mm:ss") + ",")
} else {
String tmp = value.toString() if(tmp.contains(","))
tmp = tmp.replace(",", "\",\"")
sb.append(value.toString() + ",")
}
}
stream.write(sb.substring(0, sb.length() - 1).getBytes("GBK"))
stream.flush()
}
}public void close() throws IOException{
stream.close()
}private static <T extends Object>void getFieldMap(Class<T>clz, Map<String, Field>result) {for (Field field : clz.getDeclaredFields()) {
result.put(field.getName(), field)
}if (clz.getSuperclass() != null) {
getFieldMap(clz.getSuperclass(), result)
}
}
}12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
web开发中常见的准备Excel数据需要从数据库查询数据,或者跨系统调用接口查询数据,耗费大量时间,因此未及时向浏览器返回数据,导致504超时。
本工具使用ServletOutputStream分段的往浏览器flush数据。调用方式:先new CSV(),传入指定参数,不断的调用wirte()方法往浏览器写入数据,最后调用close方法关闭流。
本工具导出的文件格式为.csv文件,windows office工具默认编码为ASCI,wps会匹配各种编码,libreOffice calc可以指定编码,故此设置编码为GBK,兼容三种Excel软件,也可根据自身需求设置编码。
本工具只处理了CSV中”,”的转码,对于双引号并未处理。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)