如何用JAVA实现这样一个简单的URL转发应用

问题描述

需求:用户在外网访问一个网站如www.sample1.com,此网址会将请求转发到我指定IP的机子上,这台机子在收到请求后,需要判断此网址,然后重定向到另一个网站如www.sample2.com,最终用户打开的是www.sample2.com这个网站。这样一个简单需求,我尝试过通过域名服务商提供的域名管理功能完成域名转发,但这个功能他们说被政府禁了,完成不了,于是做A记录,将网址 1(www.sample1.com)解析到指定IP的服务器,通过这个服务器再做转发的工作,这就是整个需求的背景。(不知这个背景是否问题:))现在主要想解决服务器端的问题,目前有下面几种解决方案:1:部署APACHE2:用JAVA程序监听80端口,然后在收到请求后,发送另一个网站的网址给用户我现在更倾向于第2种解决方案,但不知道用JAVA的什么包来做,怎么判断来访的域名,然后重定向到另一个网址。如有其它更简单方便的解决方案,也请告知,谢谢! 问题补充:cloverprince 写道

解决方案

用户访问的时候,HTTP头的Host字段是用户想要访问的域名。如果要重定向,向用户返回HTTP 301状态。然后,用HTTP头的Location字段向用户提供新的URL。如果是Servlet,可以用HttpServletRequest.getHeader("Host")得到用户请求的域名。如果等于www.sample1.com,就执行重定向。用HttpServletRequest.getRequestURL()获得请求的URL。不过这个URL不含query部分(问号后面的部分),用getQueryString()获得。然后,用java.net.URI类重新构造这个URL,修改host部分,改成www.sample2.com。得到新的URL后,发给用户就行了。
解决方案二:
用apache可以的,没必要自已写。自已写的话,首先需要解析请求头的host字段,然后把请求报文做转发,还是比较麻烦的,一个比较大的请求,需要转发好几次

时间: 2024-12-21 19:33:35

如何用JAVA实现这样一个简单的URL转发应用的相关文章

求如何用JAVA来做一个简单的程序????急。。。

问题描述 我想用JAVA开发一个简单的读磁条卡上的信息的程序,磁条卡上有卡号,积分等信息,刷卡机与电脑的USB口相连.请大家帮忙呀.如可以解决,我再额外给分. 解决方案 解决方案二:听气啦挺难的哟.你这功能不都是人家的POS系统了吗?????解决方案三:刷卡机应该要提供相关的API吧?不然你怎么获得刷卡机刷出的相关信息?或者刷卡机应该有个自带的软件的那个软件有没有相关的API如果都不提供,怎么编程啊--解决方案四: 解决方案五:难道楼主的意思刷卡机也要自己做?OMG...解决方案六:没看太明白,

中文字符-如何用C语言编写一个简单的输入法程序,要求可以输入汉字。

问题描述 如何用C语言编写一个简单的输入法程序,要求可以输入汉字. 不太清楚汉字在计算机中是如何存储的,想知道例如微软的智能ABC以及搜狗输入法是怎样实现拼音拼写下的汉字输入. 解决方案 首先要有一个汉字的编码库,比如GB2312编写的是拼音输入法的话,还要建立一个拼音与汉字对应的数据库然后根据用户输入的拼音,提示出对应的汉字(汉字的优先顺序由数据库决定,同时还可以学习该用户的使用习惯)如果输入法还支持智能联想输入的话,还要加入词库(也有优先级),这样可以根据前一个字来推断出下一个可能的字 解决

java代码-我用Java 写的一个简单截图小工具 但是出现一些在重截时出现bug 跪求大神

问题描述 我用Java 写的一个简单截图小工具 但是出现一些在重截时出现bug 跪求大神 /**在这里贴上我注释满满的代码 求一语道破 求建议 求批评 没有贴main 方法 随便写个main方法便可运行 */ ` package com.subimaga; import java.awt.AWTException; import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Cursor; import java.

java web新闻管理系统-谁用java web做一个简单的新闻管理系统啊,急用!!!

问题描述 谁用java web做一个简单的新闻管理系统啊,急用!!! 增删改,分页,有前台和后台.后台就是管理员的增删改,前台就是显示新闻的标题和内容.用oracle数据库链接.有的请发在我邮箱825091682@qq.com.谢谢了 解决方案 smarty实现简单的新闻管理系统smarty实现简单新闻管理系统 解决方案二: 不用框架,仅用java web

初学java,自己用java写了一个简单的注册登录程序,没报错但有问题,希望能帮忙指点。

问题描述 初学java,自己用java写了一个简单的注册登录程序,没报错但有问题,希望能帮忙指点. import java.util.Scanner; class Yanzheng{ private String n; private String p; public void setNa(String na){ this.n = na; } public void setPa(String pa){ this.p = pa; } public String getNa(){ return n;

java 自学 新手-一个简单的Java 计算问题

问题描述 一个简单的Java 计算问题 输出结果总是0,大牛们,可不可以告诉我错在哪里了!代码如下package HelloWorld;import java.util.Scanner;public class Tax { public static void main(String[] args) { double a = 0.0b=0.0;//定义工资为a个人所得税为b; System.out.println(""请输入您的月工资,我们将严密计算您的个人所得税!"&quo

如何用node.js实现一个简单的web服务器

node.js实现web服务器还是比较简单的,我了解node.js是从<node入门>开始的,如果你不了解node.js也可以看看! 我根据那书一步一步的练习完了,也的确大概了解了node.js,不过里面写的路由的地方总感觉不方便,十一放假最后一天,试着写了个简单的web服务器,现在分享记录于此! http模块已提供了基本功能,所以我主要解决两个问题,1是静态资源的处理,2是动态资源的路由. 静态资源在node.js里的意思是不变的,如图片.前端js.css.html页面等. 动态资源我们一般

JAVA如何做一个简单的网址导航

问题描述 只是几固定的网址而已了,刚开始学JAVA想让自己桌面上有个自己写的东东了.呵呵.自己硬着头皮写了一个,请您看看看得清晰不?如何才能让他更简便了.谢谢package wangzhi;import java.awt.*;import java.io.IOException;import java.net.URISyntaxException;import javax.swing.*;import java.awt.event.ActionEvent;import java.awt.even

求助刚学习java想编写一个简单的游戏

问题描述 我想编写一个搓点的游戏,游戏规则大概是这样的,每人抽两张牌,分别是1~13,如果抽到的两张牌的加起来,计算的是个位的数字加起来的点数,抽到K和9计算结果=3+9=2点.因为数只要超过了十就只计算个位数字,例如抽到J和Q而计算结果=11+12=3点 解决方案 解决方案二:你就写撒解决方案三:这个...去网上找找扫雷或者贪吃蛇的代码吧解决方案四:.........