AJAX跨域访问通信代理在网上也说的很多,大多都是用asp.net或php写的
俺没用过DWR不知道有没有实现跨域通信的实例,所以自己在网上查资料写了个这个,也算解了当前的燃眉之急
里面的编码是为JAVA工程和网站数据交换设置的,具体的编码应看情况设置
应用连接:
package
com.stone.common;
import java.io. * ;
import java.net. * ;
import java.util. * ;
import javax.servlet. * ;
import javax.servlet.http. * ;
public class AJAXProxy extends HttpServlet ... {
protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException ...{
doGet(req, res);
}
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException ...{
req.setCharacterEncoding("UTF-8");
res.setCharacterEncoding("gb2312");
res.setContentType("text/html");
PrintWriter out=res.getWriter();
String mac;
String url=null;
StringBuffer params=new StringBuffer();
Enumeration enu = req.getParameterNames();
int total = 0;
while (enu.hasMoreElements()) ...{
// 取得参数名称列表
String paramName=(String)enu.nextElement();
// 处理本请求参数以及发送给第三方服务器的参数
if(paramName.equals("url"))...{
// 第三方服务器地址
url=req.getParameter(paramName);
}else...{
if(total==0)...{
params.append(paramName).append("=").append(URLEncoder.encode(req.getParameter(paramName), "UTF-8"));
} else ...{
params.append("&").append(paramName).append("=").append(URLEncoder.encode(req.getParameter(paramName), "UTF-8"));
}
++total;
}
}
if(url != null)...{
// 使用POST方式向目的服务器发送请求
URL connect = new URL(url.toString());
URLConnection connection = connect.openConnection();
connection.setDoOutput(true);
OutputStreamWriter paramout = new OutputStreamWriter(connection.getOutputStream());
paramout.write(params.toString());
paramout.flush();
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "gb2312"));
String line;
StringBuffer dataSend=new StringBuffer();
while((line = reader.readLine()) != null)...{
out.println(line);
dataSend.append(line);
}
paramout.close();
reader.close();
}
}
}
import java.io. * ;
import java.net. * ;
import java.util. * ;
import javax.servlet. * ;
import javax.servlet.http. * ;
public class AJAXProxy extends HttpServlet ... {
protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException ...{
doGet(req, res);
}
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException ...{
req.setCharacterEncoding("UTF-8");
res.setCharacterEncoding("gb2312");
res.setContentType("text/html");
PrintWriter out=res.getWriter();
String mac;
String url=null;
StringBuffer params=new StringBuffer();
Enumeration enu = req.getParameterNames();
int total = 0;
while (enu.hasMoreElements()) ...{
// 取得参数名称列表
String paramName=(String)enu.nextElement();
// 处理本请求参数以及发送给第三方服务器的参数
if(paramName.equals("url"))...{
// 第三方服务器地址
url=req.getParameter(paramName);
}else...{
if(total==0)...{
params.append(paramName).append("=").append(URLEncoder.encode(req.getParameter(paramName), "UTF-8"));
} else ...{
params.append("&").append(paramName).append("=").append(URLEncoder.encode(req.getParameter(paramName), "UTF-8"));
}
++total;
}
}
if(url != null)...{
// 使用POST方式向目的服务器发送请求
URL connect = new URL(url.toString());
URLConnection connection = connect.openConnection();
connection.setDoOutput(true);
OutputStreamWriter paramout = new OutputStreamWriter(connection.getOutputStream());
paramout.write(params.toString());
paramout.flush();
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "gb2312"));
String line;
StringBuffer dataSend=new StringBuffer();
while((line = reader.readLine()) != null)...{
out.println(line);
dataSend.append(line);
}
paramout.close();
reader.close();
}
}
}