简介
我在java中创建代理服务器。每当用户在浏览器中输入未知主机(URL)时,代理服务器通过执行以下代码来处理UnknownHostException
:
try {
Process p=Runtime.getRuntime().exec("cmd /c start http://www.mysite.com/unknownhosterror.htm");
}
catch(IOException io) {
System.out.println("Error");
}
这些代码行的作用是显示一个包含“此页面可以”的html文件 不显示。“每当用户输入不存在的URL时。
问题
上面的代码打开一个新标签,显示www.mysite.com/unknownhosterror.htm的内容。我想要的是重定向到它。
例如,我在URL栏中写了www.nosuchsite.com。假设没有这样的网站,它将自动重定向到www.mysite.com/unknownhosterror.htm并显示“此页面无法显示。”。
我该怎么做?
编辑注意:我不使用Servlet
。
答案 0 :(得分:0)
我可能误解了你的意思但是如果你确实有一个代理服务器,那么当代理服务器检测到UnknownHostException
时,你应该能够将301 redirect发回给浏览器。
在对浏览器的回复中,您需要在回复的标题中添加以下行:
HTTP/1.1 301 Moved Permanently
Location: http://www.mysite.com/unknownhosterror.htm
如何将其添加到标题中在很大程度上取决于您处理请求的方式。如果您显示一些代理处理程序代码,我可以提供更多信息。