oScript = document.getElementById(id);
var
head = document.getElementsByTagName("head").item(0);
if
(oScript) {
head.removeChild(oScript);
}
oScript = document.createElement("script");
var
url = "http:
//127.0.0.1:2012/esb/servlet/HttpClient?randomType=MIX&success=justHandle
oScript.setAttribute("id",id);
oScript.setAttribute("type","text/javascript");
oScript.setAttribute("language","javascript");
head.appendChild(oScript);
}
//jsutHandle 这个函数是反调函数。servlet 代码中会使用 eval 这种方式来执行。
function
justHandle(dd){
alert(dd);
}
servlet 的代码:
代码如下:
protected
void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, java.io.IOException {
Object obj = "test";
ServletOutputStream sos = resp.getOutputStream();
StringBuffer sb =
new
StringBuffer();
resp.setCharacterEncoding("GBK");
resp.setHeader("Charset","GBK");
resp.setContentType("charset=GBK");
//下面那句表明是 javascript 脚本文件
resp.setContentType("text/javascript");
sb.append("eval(/""+paramMap.get("success")+"(/'"+obj.toString()+"/')/")");
try
{
sos.write(sb.toString().getBytes(this.character_encoding));
}
catch
(Exception e) {
System.out.println(e.toString());
} finally {
try
{
sos.close();