import java
io
IOException;
import java
io
InputStream;
import
URL;
import javax
servlet
ServletConfig;
import javax
servlet
ServletException;
import javax
servlet
ServletOutputStream;
import javax
servlet
http
HttpServlet;
import javax
servlet
http
HttpServletRequest;
import javax
servlet
http
HttpServletResponse;
/**
* Take any request and proxy it to the given REDIRECT_BASE
* For example
if this servlet lives at
*
*
*
* and is inititialized with the REDIRECT_BASE
*
*
*
* then a GET request like
*
*
*
* will return the results of a GET from
*
*
*
* This is not robust and generalized; it
s simple and quick
*
* @author jdf
*
*/
public class ProxyServlet extends HttpServlet
{
private final static String COPYRIGHT = com
ibm
dogear
Copyright
SHORT;
public static final String REDIRECT_BASE =
com
ibm
bl
servlet
RedirectServlet
redirect_base
;
private String redirectBase;
@Override
public void init(ServletConfig config) throws ServletException
{
super
init(config)
redirectBase = getRequiredParam(REDIRECT_BASE)
}
@Override
protected void doGet(HttpServletRequest req
HttpServletResponse resp) throws IOException
{
String queryString = req
getQueryString()
URL url = new URL(redirectBase + (queryString != null ?
?
+ queryString :
))
copyInputStreamToOutputStream(url
openStream()
resp
getOutputStream())
}
private void copyInputStreamToOutputStream(InputStream in
ServletOutputStream out)
throws IOException
{
try
{
try
{
byte[] buffer = new byte[
];
int n;
while ((n = in
read(buffer)) !=
)
out
write(buffer
n)
}
finally
{
out
close()
}
}
finally
{
in
close()
}
}
protected String getRequiredParam(String param) throws ServletException
{
String result = getServletConfig()
getInitParameter(param)
if (result == null) {
throw new ServletException(getClass() +
requires
+ param +
param
)
}
return result;
}
}
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26982.html